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