Comment trouver l'e-mail d'un utilisateur GitHub et écrire un robot Telegram pour résoudre ce problème?

Meme d'Internet
Meme d'Internet

Cet article sera utile à deux catégories de personnes: les recruteurs informatiques et les développeurs novices qui souhaitent apprendre à écrire des programmes simples pour résoudre des problèmes pratiques.





Tâche: nous connaissons le profil utilisateur sur GitHub, nous devons trouver l'email de cet utilisateur





L'idée d'écrire un bot m'est venue après qu'un collègue m'a partagé la façon dont les recruteurs informatiques résolvent ce problème:





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









2. Ctrl+F "@"







3. ,





Voici le résultat de la recherche et l'adresse e-mail trouvée

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 partie principale est prête. Il reste à ajouter les lignes suivantes:





#    

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

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



Notre robot de recherche de courrier est prêt, vous pouvez le démarrer et l'utiliser. Une version d'essai est disponible sur @GitSorcerBot

Si l'utilisateur a publié des validations et laissé son courrier, le bot affichera le résultat:












All Articles