-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path04_tg_keyboard.py
63 lines (47 loc) · 1.77 KB
/
04_tg_keyboard.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler
from constants import TG_API_KEY
# Handler del comando
def meme(update, context):
keyboard = [
[
InlineKeyboardButton('Opzione 😏', callback_data='1'),
InlineKeyboardButton('Opzione 😯', callback_data='2'),
InlineKeyboardButton('Opzione 😮', callback_data='3'),
InlineKeyboardButton('Opzione 😵', callback_data='4')
]
]
reply_markup = InlineKeyboardMarkup(keyboard)
try:
# Invio il meme
context.bot.send_photo(
chat_id=update.message.chat_id,
photo=open('vince/full.png', 'rb')
)
# Imposto la tastiera
update.message.reply_text('Scegli la tua opzione:', reply_markup=reply_markup)
except Exception as e:
print(e)
# Handler delle opzioni
def button(update, context):
query = update.callback_query
try:
# Rimpiazzo i bottoni con la scelta effettuata
query.edit_message_text(text='Selezionata l\'opzione: {0}'.format(query.data))
# Invio il meme corrispondente
context.bot.send_photo(
chat_id=update.effective_chat.id,
photo=open('vince/{0}.png'.format(query.data), 'rb')
)
except Exception as e:
print(e)
# Inizializzo l'updater che resta in ascolto dei messaggi
updater = Updater(token=TG_API_KEY, use_context=True)
dispatcher = updater.dispatcher
# Aggiungo gli handler per il comando start e le opzioni
updater.dispatcher.add_handler(CommandHandler('meme', meme))
updater.dispatcher.add_handler(CallbackQueryHandler(button))
# Inizio l'ascolto
updater.start_polling()
# Rimango in attesa per l'uscita
updater.idle()