-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathview.py
131 lines (105 loc) · 3.86 KB
/
view.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#
# CODE FROM: https://github.com/python-telegram-bot/python-telegram-bot/blob/master/examples/inlinekeyboard2.py
#
import controller
import logging
import os
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update
from telegram.ext import (
Updater,
CommandHandler,
CallbackQueryHandler,
ConversationHandler,
CallbackContext,
)
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
logger = logging.getLogger(__name__)
# Stages
FIRST, SECOND = range(2)
# Callback data
ETSIINF, ALUCHE, COLONIA, MONCLOA = range(4)
def start(update: Update, context: CallbackContext) -> int:
user = update.message.from_user
logger.info("%s ha usado el Bot :3", user.first_name)
keyboard = [
[
InlineKeyboardButton("ETSIINF", callback_data=str(ETSIINF)),
InlineKeyboardButton("ALUCHE", callback_data=str(ALUCHE)),
],
[
InlineKeyboardButton("COLONIA", callback_data=str(COLONIA)),
InlineKeyboardButton("MONCLOA", callback_data=str(MONCLOA)),
]
]
reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text("¿Donde te encuentras?", reply_markup=reply_markup)
return FIRST
def start_over(update: Update, context: CallbackContext) -> int:
query = update.callback_query
query.answer()
keyboard = [
[
InlineKeyboardButton("ETSIINF", callback_data=str(ETSIINF)),
InlineKeyboardButton("ALUCHE", callback_data=str(ALUCHE)),
],
[
InlineKeyboardButton("COLONIA", callback_data=str(COLONIA)),
InlineKeyboardButton("MONCLOA", callback_data=str(MONCLOA)),
]
]
reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text("¿Donde te encuentras?", reply_markup=reply_markup)
return FIRST
def etsiinf(update: Update, context: CallbackContext) -> int:
query = update.callback_query
query.answer()
query.edit_message_text(
text = controller.busInfo("etsiinf")
)
return FIRST
def aluche(update: Update, context: CallbackContext) -> int:
query = update.callback_query
query.answer()
query.edit_message_text(
text = controller.busInfo("aluche")
)
return FIRST
def colonia(update: Update, context: CallbackContext) -> int:
query = update.callback_query
query.answer()
query.edit_message_text(
text = controller.busInfo("colonia")
)
return FIRST
def moncloa(update: Update, context: CallbackContext) -> int:
query = update.callback_query
query.answer()
query.edit_message_text(
text = controller.busInfo("moncloa")
)
return FIRST
def end(update: Update, context: CallbackContext) -> int:
query = update.callback_query
query.answer()
query.edit_message_text(text="Hasta la próxima :D")
return ConversationHandler.END
def main() -> None:
updater = Updater(os.environ["etsiinfBOT"])
dispatcher = updater.dispatcher
conv_handler = ConversationHandler(
entry_points=[CommandHandler('start', start)],
states={
FIRST: [
CallbackQueryHandler(etsiinf, pattern='^' + str(ETSIINF) + '$'),
CallbackQueryHandler(aluche, pattern='^' + str(ALUCHE) + '$'),
CallbackQueryHandler(colonia, pattern='^' + str(COLONIA) + '$'),
CallbackQueryHandler(moncloa, pattern='^' + str(MONCLOA) + '$'),
]
},
fallbacks=[CommandHandler('start', start)],
)
dispatcher.add_handler(conv_handler)
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()