¿Cómo encuentro el correo electrónico de un usuario de GitHub y escribo un bot de Telegram para resolver este problema?

Meme de Internet
Meme de Internet

Esta publicación será útil para dos categorías de personas: reclutadores de TI y desarrolladores novatos que desean aprender a escribir programas simples para resolver problemas prácticos.





Tarea: conocemos el perfil de usuario en GitHub, necesitas encontrar el correo electrónico de este usuario





La idea de escribir un bot se me ocurrió después de que un colega compartiera conmigo la forma en que los reclutadores de TI resuelven este problema:





1. https://api.github.com/users/ /events/public









2. Ctrl+F "@"







3. ,





Este es el resultado de la búsqueda y la dirección de correo electrónico encontrada.

EmailOnGitHub Chrome Store Python:





import requests, telebot, time

tkn = '___'
bot = telebot.TeleBot(tkn)


#   /start 

@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id, ',     email     .     ,   ,    ')
                            

#    -        
#        email_finder

@bot.message_handler(content_types=['text'])
def send_text(message):

    bot.send_message(message.chat.id, email_finder(message.text))
      
      



, , , , email_finder.





, . :





#      ,       
#    ,    email   

def email_finder(nick):
    rawlist, newlist = [], []

    #    ,       

    url = f'https://api.github.com/users/{nick}/events/public'
    r = requests.get(url)

    #   
    #    -    ,  

    if r.status_code == 200:
        print('status 200 - OK')

        #   ,    ,     
        #      "  "

        if not r.json():
            return ' .   email.'

    elif url_status == 404:
        return '     '
    else:
        return ' '

    #    

    for element in r.json():
        if element['type'] == 'PushEvent':
            for commit in element['payload']['commits']:
            
                #       
                email = commit['author']['email']
                rawlist.append(email)
    f_list = '  : \n'

    #        

    for i in rawlist:
        if i not in newlist:
            newlist.append(i)
    for element in newlist:
        f_list = f_list + element + '\n'

    return f_list
      
      



La parte principal está lista. Queda por agregar las siguientes líneas:





#    

while True:
    try:
        print(' ...')
        bot.infinity_polling(True)

    except Exception as e:
        print(' ')
        time.sleep(15)
      
      



Nuestro bot de búsqueda de correo está listo, puede iniciarlo y usarlo. Una versión de prueba está disponible en @GitSorcerBot

Si el usuario publicó confirmaciones y dejó su correo, el bot generará el resultado:












All Articles