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. ,
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: