Posting ini akan berguna untuk dua kategori orang: perekrut TI dan pengembang pemula yang ingin belajar bagaimana menulis program sederhana untuk memecahkan masalah praktis.
Tugas: kita mengetahui profil pengguna di GitHub, kita perlu mencari email dari pengguna ini
Ide untuk menulis bot datang kepada saya setelah seorang kolega berbagi dengan saya cara perekrut TI menyelesaikan masalah ini:
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
Bagian utama sudah siap. Tetap menambahkan baris berikut:
#
while True:
try:
print(' ...')
bot.infinity_polling(True)
except Exception as e:
print(' ')
time.sleep(15)
Bot pencarian email kami sudah siap, Anda dapat memulai dan menggunakannya. Versi percobaan tersedia di @GitSorcerBot
Jika pengguna memposting komit dan meninggalkan email mereka, bot akan menampilkan hasilnya: