Exemple #1
0
async def handle_callback(cq: types.CallbackQuery):
    data = json.loads(cq.as_json())
    chat_id = data.get("message").get("chat").get("id")
    message_id = data.get("message").get("message_id")
    callback_data = data.get("data")

    if callback_data is None:
        return

    is_media = callback_data.startswith("media")
    is_target = callback_data.startswith("target")

    if is_media:
        _, id = callback_data.split(":", 1)
        updated_media = await db.update_media(chat_id, int(id))
        await bot.edit_message_text(
            f"*Выбрать СМИ*\nВыбрано источников: {len(updated_media)}",
            chat_id,
            message_id,
        )
        await bot.edit_message_reply_markup(
            chat_id,
            message_id,
            reply_markup=get_media_keyboard_markup(updated_media))
        return
    if is_target:
        _, target = callback_data.split(":", 1)
        updated_targets = await db.update_targets(chat_id, target)
        updated_targets_count = len(updated_targets)
        if updated_targets_count == 0:
            await bot.edit_message_text("Нет ни одной цели", chat_id,
                                        message_id)
            try:
                await bot.edit_message_reply_markup(chat_id,
                                                    message_id,
                                                    reply_markup=None)
            except MessageNotModified:
                pass
        else:
            await bot.edit_message_text(
                f"Число целей: {updated_targets_count}", chat_id, message_id)
            await bot.edit_message_reply_markup(
                chat_id,
                message_id,
                reply_markup=get_targets_keyboard_markup(updated_targets),
            )
        return
Exemple #2
0
async def unknow_query_handler(query: types.CallbackQuery):
    logger.info('Got this callback data: {}', query.data)
    logger.info('Got this query.as_json: {}', query.as_json())
    await query.answer("Don't know what to do))")