Exemplo n.º 1
0
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,
    )
Exemplo n.º 2
0
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}")
Exemplo n.º 3
0
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,
    )
Exemplo n.º 4
0
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))