def allergens_handler(update: Update, context: CallbackContext): number_name = client.get_allergens(config.endpoint) allergens_chooser = InlineKeyboardMarkup(inline_keyboard=[[ InlineKeyboardButton(text=name, callback_data=f"A{number}") ] for number, name in number_name.items()]) context.bot.send_message( update.message.chat_id, emojize("Wähle Deine Allergene aus. :index_pointing_up:"), reply_markup=allergens_chooser, )
def callback_handler(update: Update, context: CallbackContext): query = update.callback_query if query: if query.data.startswith("A"): allergen_number = query.data.lstrip("A") name = client.get_allergens(config.endpoint)[allergen_number] context.bot.answer_callback_query(query.id, text=f"„{name}” usgewählt.") allergens = user_db.allergens_of(query.message.chat_id) allergens.add(allergen_number) user_db.set_allergens_for(query.message.chat_id, allergens) logging.info(f"Set {query.message.chat_id} allergens to {allergens}") else: name = client.get_mensas(config.endpoint)[int(query.data)] context.bot.answer_callback_query( query.id, text=f"„{name}“ ausgewählt.", ) user_db.set_mensa_for(query.message.chat_id, query.data) logging.info(f"Set {query.message.chat_id} mensa to {query.data}")
def info_handler(update: Update, context: CallbackContext): number_name = client.get_allergens(config.endpoint) code_name = client.get_mensas(config.endpoint) myallergens = user_db.allergens_of(update.message.chat_id) mymensa = user_db.mensa_of(update.message.chat_id) subscribed = user_db.is_subscriber(update.message.chat_id) subscription_filter = (user_db.menu_filter_of(update.message.chat_id) or "kein Filter") context.bot.send_message( update.message.chat_id, "*MENSA*\n{mensa}\n\n*ABO*\n{subscription}\n\n*ALLERGENE*\n{allergens}" .format( mensa=code_name[mymensa] if mymensa is not None else "keine", allergens="\n".join(number_name[number] for number in myallergens), subscription=emojize( (":thumbs_up:" if subscribed else ":thumbs_down:") + " ({})".format(subscription_filter)), ), parse_mode=ParseMode.MARKDOWN, )
def callback_handler(update: Update, context: CallbackContext): query = update.callback_query if query: if query.data.startswith("A"): allergen_number = query.data.lstrip("A") name = client.get_allergens(config.endpoint)[allergen_number] context.bot.answer_callback_query( query.id, text=emojize(f"„{name}” ausgewählt. :heavy_check_mark:")) allergens = user_db.allergens_of(query.message.chat_id) allergens.add(allergen_number) user_db.set_allergens_for(query.message.chat_id, allergens) logging.info("Set {}.allergens to {}".format( query.message.chat_id, allergens)) else: name = client.get_mensas(config.endpoint)[int(query.data)] context.bot.answer_callback_query( query.id, text=emojize( "„{}“ ausgewählt. :heavy_check_mark:".format(name)), ) user_db.set_mensa_for(query.message.chat_id, query.data) logging.info("Set {}.mensa to {}".format(query.message.chat_id, query.data))