def create_coeff_leagues_keyboard(callback: CallbackData): country_keyboard = InlineKeyboardMarkup(row_width=1) for league in coeff_manager.get_leagues(): country_keyboard.insert(InlineKeyboardButton( text=str(coeff_manager.emojize_league(league) + ' ' + coeff_manager.translate_league(league)), callback_data=callback.new(league_name=league, round="cur") )) country_keyboard.insert(InlineKeyboardButton( text=emojize(":leftwards_arrow_with_hook: Назад"), callback_data=callback.new(league_name="cancel", round="cur") )) return country_keyboard
def create_player_back_keyboard(callback: CallbackData): player_back_keyboard = InlineKeyboardMarkup(row_width=1) player_back_button = InlineKeyboardButton( text=emojize(":leftwards_arrow_with_hook: Назад"), callback_data=callback.new(league_name="back_to_list")) player_back_keyboard.add(player_back_button) return player_back_keyboard
def create_coeff_back_keyboard(callback: CallbackData, league_name: str, cur_round: bool): coeff_back_keyboard = InlineKeyboardMarkup(row_width=2) coeff_back_button = InlineKeyboardButton( text=emojize(":leftwards_arrow_with_hook: Назад"), callback_data=callback.new(league_name="back_to_list", round="cur") ) if cur_round: coeff_round_button = InlineKeyboardButton( text=emojize("➡️ Cледующий тур"), callback_data=callback.new(league_name=league_name, round="next") ) else: coeff_round_button = InlineKeyboardButton( text=emojize("⬅️ Текущий тур"), callback_data=callback.new(league_name=league_name, round="cur") ) coeff_back_keyboard.add(coeff_back_button, coeff_round_button) return coeff_back_keyboard
def create_sources_back_keyboard(callback: CallbackData): sources_back_keyboard = InlineKeyboardMarkup(row_width=1) sources_back_button = InlineKeyboardButton( text=emojize(":leftwards_arrow_with_hook: Назад"), callback_data=callback.new(league_name="back_to_list", name="None", url="None", action="None")) sources_back_keyboard.add(sources_back_button) return sources_back_keyboard
def create_sources_league_keyboard(callback: CallbackData, league_name: str): league_keyboard = InlineKeyboardMarkup(row_width=1) sources_add_button = InlineKeyboardButton( text=emojize(":newspaper: Добавить источник"), callback_data=callback.new(league_name=league_name, action="add")) league_keyboard.add(sources_add_button) sources_delete_button = InlineKeyboardButton( text=emojize(":wastebasket: Удалить источник"), callback_data=callback.new(league_name=league_name, action="delete")) league_keyboard.add(sources_delete_button) sources_back_button = InlineKeyboardButton( text=emojize(":leftwards_arrow_with_hook: Назад"), callback_data=callback.new(league_name="back_to_list", action="None")) league_keyboard.add(sources_back_button) return league_keyboard
async def test_cb(self): cb = CallbackData('simple', 'action') assert cb.new('x') == 'simple:x' assert cb.new(action='y') == 'simple:y' assert cb.new('') == 'simple:' assert (await cb.filter().check(CallbackQuery(data='simple:'))) == { 'callback_data': { '@': 'simple', 'action': '' } } assert (await cb.filter().check(CallbackQuery(data='simple:x'))) == { 'callback_data': { '@': 'simple', 'action': 'x' } } assert (await cb.filter(action='y').check( CallbackQuery(data='simple:x'))) is False
async def test_cb_zero(self): cb = CallbackData('zero') assert cb.new() == 'zero' assert (await cb.filter().check(CallbackQuery(data='zero'))) == { 'callback_data': { '@': 'zero' } } assert (await cb.filter().check(CallbackQuery(data='zero:'))) is False assert (await cb.filter().check(CallbackQuery(data='bla'))) is False
async def test_cb_double(self): cb = CallbackData('double', 'pid', 'action') assert cb.new('123', 'x') == 'double:123:x' assert cb.new(pid=456, action='y') == 'double:456:y' assert cb.new('', 'z') == 'double::z' assert cb.new('789', '') == 'double:789:' assert (await cb.filter().check(CallbackQuery(data='double::'))) == { 'callback_data': { '@': 'double', 'pid': '', 'action': '' } } assert (await cb.filter().check(CallbackQuery(data='double:x:'))) == { 'callback_data': { '@': 'double', 'pid': 'x', 'action': '' } } assert (await cb.filter().check(CallbackQuery(data='double::y'))) == { 'callback_data': { '@': 'double', 'pid': '', 'action': 'y' } } assert (await cb.filter(action='x').check(CallbackQuery(data='double:123:x') )) == { 'callback_data': { '@': 'double', 'pid': '123', 'action': 'x' } }
from aiogram.utils.callback_data import CallbackData from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton select_style_callback = CallbackData('select', 'name') ########################## ## 21 Style Options ## ########################## select_style_1 = InlineKeyboardMarkup(inline_keyboard=[[ InlineKeyboardButton(text='✅ Oil Paint', callback_data='ignore_style'), InlineKeyboardButton(text='Oil Paint 2', callback_data=select_style_callback.new( name='oil_painting_2')), InlineKeyboardButton(text='Watercolor >', callback_data=select_style_callback.new( name='watercolor_painting')) ], [InlineKeyboardButton(text='Select style', callback_data='accept_style')]]) select_style_2 = InlineKeyboardMarkup(inline_keyboard=[[ InlineKeyboardButton(text='Oil Paint', callback_data=select_style_callback.new( name='oil_painting')), InlineKeyboardButton(text='✅ Oil Paint 2', callback_data='ignore_style'), InlineKeyboardButton(text='Watercolor >', callback_data=select_style_callback.new( name='watercolor_painting')), ], [InlineKeyboardButton(text='Select style', callback_data='accept_style')]]) select_style_3 = InlineKeyboardMarkup(inline_keyboard=[[ InlineKeyboardButton(text='< Oil Paint 2',
async def send_humor_value(call: types.CallbackQuery): menu_kb_inl = types.InlineKeyboardMarkup(resize_keyboard=True) button_inl_random = types.KeyboardButton(text='Ещё', callback_data='humor_value') menu_kb_inl.add(button_inl_random) await call.message.answer(mods.humor(), reply_markup=menu_kb_inl ) # +'Тут скоро будут шутки-прибаутки') '''MENU''' cb = CallbackData("post", "id", "action") button = types.InlineKeyboardButton(text="Лайкнуть", callback_data=cb.new(id=5, action="like")) @dp.callback_query_handler(cb.filter()) async def callbacks(call: types.CallbackQuery, callback_data: dict): post_id = callback_data["id"] action = callback_data["action"] @dp.message_handler(lambda message: message.text == 'foq_u') async def foq_u(message: types.Message): await message.reply('foq_u!') ''' ECHO ''' """
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton from aiogram.utils.callback_data import CallbackData enter_code_callback = CallbackData("enter_code", "state") enter_code_keyboard = InlineKeyboardMarkup(inline_keyboard=[[ InlineKeyboardButton("Ввести реферальный код", callback_data=enter_code_callback.new(state="ok")) ]])
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton from config import URL_APPLES, URL_PEAR from aiogram.utils.callback_data import CallbackData buy_callback = CallbackData("buy", "item_name", "quantity") choice = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text='отмена', callback_data="cancel")], [ InlineKeyboardButton(text='выбор2', callback_data=buy_callback.new(item_name="pear", quantity=1)), InlineKeyboardButton(text='выбор3', callback_data="buy:apple:5") ] ], resize_keyboard=True) pear_keyboard = InlineKeyboardMarkup(inline_keyboard=[[ InlineKeyboardButton(text='купи тут', callback_data=URL_PEAR) ]])
from aiogram.types import ( InlineKeyboardButton, InlineKeyboardMarkup, ) from aiogram.utils.callback_data import CallbackData from app.utils import uchar cd_settings = CallbackData('settings_menu', 'action', 'data') cb_cancel = cd_settings.new(action='cancel', data='void') btn_cancel = InlineKeyboardButton('Отмена', callback_data=cb_cancel) def kb_settings() -> InlineKeyboardMarkup: """Return keyboard with list of settings.""" return InlineKeyboardMarkup(inline_keyboard=[ [ InlineKeyboardButton( f'{uchar.GLOBE} Часовой пояс', callback_data=cd_settings.new(action='tz', data=False), ) ], ]) def kb_settings_tz() -> InlineKeyboardMarkup: return InlineKeyboardMarkup(inline_keyboard=[ [ InlineKeyboardButton( 'Изменить часовой пояс', callback_data=cd_settings.new(action='tz-change', data=False),
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton from aiogram.utils.callback_data import CallbackData inline_callback_data_1 = CallbackData("inline_buttons_1", "type") inline_buttons_1 = InlineKeyboardMarkup(row_width=2) inline_buttons_1.insert( InlineKeyboardButton(text="Edit Name", callback_data=inline_callback_data_1.new(type="edit_name"))) inline_buttons_1.insert( InlineKeyboardButton(text="Edit Description", callback_data=inline_callback_data_1.new(type="edit_description"))) inline_buttons_1.insert( InlineKeyboardButton(text="Edit About", callback_data=inline_callback_data_1.new(type="edit_about"))) inline_buttons_1.insert( InlineKeyboardButton(text="Edit Botpic", callback_data=inline_callback_data_1.new(type="edit_botpic"))) inline_buttons_1.insert( InlineKeyboardButton(text="Edit Commands", callback_data=inline_callback_data_1.new(type="edit_commands"))) inline_buttons_1.insert( InlineKeyboardButton(text="<<Back to Bot", callback_data=inline_callback_data_1.new(type="back_to_bot"))) inline_callback_data_2 = CallbackData("inline_buttons_2", "items_id") inline_callback_data_3 = CallbackData("inline_buttons_3", "type", "items_id") def get_keyboard(items_id): inline_buttons_3 = InlineKeyboardMarkup(inline_keyboard=[ [ InlineKeyboardButton(text="купить товар" , callback_data=inline_callback_data_2.new(items_id=f"{items_id}")) ], [ InlineKeyboardButton(text="👍"
import requests from aiogram import Dispatcher, types from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton, CallbackQuery from aiogram.utils.callback_data import CallbackData from apscheduler.schedulers.asyncio import AsyncIOScheduler from bs4 import BeautifulSoup from ai_ohto.bot import dp from ai_ohto.utils.db_api import db_helpers news_callback = CallbackData("act", "title") main_news_callback = CallbackData("act", "title") news_keyboard = InlineKeyboardMarkup() yes_button = InlineKeyboardButton(text="yes", callback_data=news_callback.new("yes")) no_button = InlineKeyboardButton(text="no", callback_data=news_callback.new("no")) news_keyboard.insert(yes_button) news_keyboard.insert(no_button) async def change_news_status(message: types.Message): """ To send news or not :param message: :return: """ await message.answer("By clicking on the buttons below, you can decide whether or not to send you news", reply_markup=news_keyboard) async def yes_status(call: CallbackQuery):
chat_name=chat_title, # disconnect is builtin command, should not be shown commands=", ".join(f"<code>/{cmd}</code>" for cmd in connected_data['command'] if cmd != "disconnect")) else: text = '' text += strings['select_chat_to_connect'] markup = InlineKeyboardMarkup(row_width=1) for chat_id in reversed(connected_data['history'][-3:]): chat = await db.chat_list.find_one({'chat_id': chat_id}) markup.insert( InlineKeyboardButton( chat['chat_title'], callback_data=connect_to_chat_cb.new(chat_id=chat_id))) await message.reply(text, reply_markup=markup) # Callback for prev. function @register(connect_to_chat_cb.filter(), f='cb', allow_kwargs=True) async def connect_chat_keyboard_cb(message, callback_data=False, **kwargs): chat_id = int(callback_data['chat_id']) chat = await db.chat_list.find_one({'chat_id': chat_id}) await def_connect_chat(message.message, message.from_user.id, chat_id, chat['chat_title'], edit=True)
import calendar from datetime import datetime from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton from aiogram.utils.callback_data import CallbackData from aiogram.types import CallbackQuery # setting callback_data prefix and parts calendar_callback = CallbackData('dialog_calendar', 'act', 'year', 'month', 'day') ignore_callback = calendar_callback.new("IGNORE", -1, -1, -1) # for buttons with no answer class DialogCalendar: months = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ] def __init__(self, year: int = datetime.now().year, month: int = datetime.now().month): self.year = year self.month = month async def start_calendar(self, year: int = datetime.now().year ) -> InlineKeyboardMarkup: inline_kb = InlineKeyboardMarkup(row_width=5) # first row - years
else: await message.reply(strings['welcomesecurity_invalid_arg']) return await db.greetings.update_one( {'chat_id': chat_id}, {'$set': {'chat_id': chat_id, 'welcome_security': { 'enabled': True, 'level': level}}}, upsert=True ) await get_greetings_data.reset_cache(chat_id) buttons = InlineKeyboardMarkup() buttons.add( InlineKeyboardButton( strings["no_btn"], callback_data=wlcm_sec_config_cancel.new( user_id=message.from_user.id, level=level ) ), InlineKeyboardButton( strings["yes_btn"], callback_data=wlcm_sec_config_proc.new( chat_id=chat_id, user_id=message.from_user.id, level=level ) ) ) await message.reply( strings['ask_for_time_customization'].format( time=format_timedelta( convert_time( get_str_key("JOIN_CONFIRM_DURATION") ), locale=strings['language_info']['babel']
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton from aiogram.utils.callback_data import CallbackData post_callback = CallbackData("create_post", "action") confirmation_keyboard = InlineKeyboardMarkup( inline_keyboard=[ [ InlineKeyboardButton(text="Отправить", callback_data=post_callback.new(action="post")), InlineKeyboardButton(text="Отменить", callback_data=post_callback.new(action="cancel")) ] ] )
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup from aiogram.utils.callback_data import CallbackData start_callback = CallbackData('choice', 'choice_status') start_choice = InlineKeyboardMarkup(inline_keyboard=[[ InlineKeyboardButton(text='Поехали!', callback_data=start_callback.new( choice_status='yes')), ], [InlineKeyboardButton(text='Отменить', callback_data="cancel")]]) q3_callback = CallbackData('choice', 'choice_status') q3_choice = InlineKeyboardMarkup(inline_keyboard=[[ InlineKeyboardButton(text='Да', callback_data=q3_callback.new(choice_status='yes')), InlineKeyboardButton(text='Нет', callback_data=q3_callback.new(choice_status='no')) ]]) q5_callback = CallbackData('choice', 'accom_type') q5_choice = InlineKeyboardMarkup( inline_keyboard=[[ InlineKeyboardButton(text='Квартира', callback_data=q5_callback.new(accom_type='flat')), InlineKeyboardButton(text='Апартаменты', callback_data=q5_callback.new( accom_type='apartment')) ], [ InlineKeyboardButton(text='Пентхаус', callback_data=q5_callback.new( accom_type='penthouse'))
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton from aiogram.utils.callback_data import CallbackData ITEM_NAME = 'item_name' ITEM_DESCRIPTION = 'item_description' ITEM_PRICE = 'item_price' ITEM_PHOTO_ID = 'item_photo_id' change_item_callback = CallbackData("change_item", "component") confirm_item_callback = CallbackData("confirm_item_callback", "state") confirm_item_keyboard = InlineKeyboardMarkup(inline_keyboard=[ [ InlineKeyboardButton( "Сохранить✅", callback_data=confirm_item_callback.new(state="ok")) ], [InlineKeyboardButton("🛠Изменить🛠", callback_data="default")], [ InlineKeyboardButton("Название", callback_data=change_item_callback.new( component=ITEM_NAME)), InlineKeyboardButton("Описание", callback_data=change_item_callback.new( component=ITEM_DESCRIPTION)), InlineKeyboardButton("Цену", callback_data=change_item_callback.new( component=ITEM_PRICE)), InlineKeyboardButton("Фото", callback_data=change_item_callback.new( component=ITEM_PHOTO_ID)), ] ])
from aiogram.types import InlineKeyboardButton as Button from aiogram.utils.callback_data import CallbackData from aiogram import types cb = CallbackData('post', 'params', 'action') # post:<id>:<action> weekly_menu = [ Button('Обычный', callback_data=cb.new('common', action='get_weekly')), Button('Бизнес', callback_data=cb.new('business', action='get_weekly')), Button('Любовный', callback_data=cb.new('love', action='get_weekly')), Button('Здоровья', callback_data=cb.new('health', action='get_weekly')), Button('Автомобильный', callback_data=cb.new('car', action='get_weekly')), Button('Красоты', callback_data=cb.new('beauty', action='get_weekly')), Button('Эротический', callback_data=cb.new('erotic', action='get_weekly')), Button('Ювелирный', callback_data=cb.new('gold', action='get_weekly')), ] def daily_types_btns(day): return [ Button('Обычный', callback_data=cb.new(day + ',common', action='get_daily')), Button('Любовный', callback_data=cb.new(day + ',love', action='get_daily')), Button('Бизнес', callback_data=cb.new(day + ',business', action='get_daily')), Button('Кулинарный', callback_data=cb.new(day + ',cooking', action='get_daily')), Button('Здоровья', callback_data=cb.new(day + ',health', action='get_daily')), Button('Эротический',
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton from aiogram.utils.callback_data import CallbackData buy_callback = CallbackData("buy", "item_name") btn = InlineKeyboardMarkup(inline_keyboard=[[ InlineKeyboardButton(text="Товары", callback_data=buy_callback.new(item_name="goods")) ]]) section_callback = CallbackData("section", "item_name1") goods_keyboard = InlineKeyboardMarkup(inline_keyboard=[ [ InlineKeyboardButton(text="для детей c 1 мес до 2 лет", callback_data=section_callback.new( item_name1="for_little")) ], [ InlineKeyboardButton(text="для детей с 3 года до 14 лет", callback_data=section_callback.new( item_name1="for_middle")) ], [ InlineKeyboardButton(text="для взрослых", callback_data=section_callback.new( item_name1="for_adult")) ], [ InlineKeyboardButton(text="все товары", callback_data=section_callback.new(
from aiogram.utils.callback_data import CallbackData rooms_callback = CallbackData('chose_rooms', 'number_of_rooms') start_subscription = CallbackData('subscription', 'action') def start_keys(): return InlineKeyboardMarkup( inline_keyboard=[ [InlineKeyboardButton(text="✅Aktywuj wyszukiwanie", callback_data=start_subscription.new(action='next'))], [InlineKeyboardButton(text="✉️Skontaktuj się z deweloperem", url='telegram.me/dimazmn')]]) final_keys = InlineKeyboardMarkup( inline_keyboard=[ [InlineKeyboardButton(text="✅Aktywuj wyszukiwanie", callback_data=start_subscription.new(action='next'))], [InlineKeyboardButton(text="📤️Poleć znajomym", switch_inline_query='Cześć! Szukasz mieszkania we Wrocławiu?' 'Mogę Ci w tym pomoc.')], [InlineKeyboardButton(text="✉️Skontaktuj się z deweloperem", url='telegram.me/dimazmn')] ]) def rooms_key(): return InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text='Kawalerka', callback_data='number_of_rooms:one')], [InlineKeyboardButton(text='2 pokoje', callback_data='number_of_rooms:two')], [InlineKeyboardButton(text='3 pokoje', callback_data='number_of_rooms:three')], [InlineKeyboardButton(text='4 pokoje i więcej', callback_data='number_of_rooms:four')], [InlineKeyboardButton(text='⬅️Wstecz', callback_data='back')] ])
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton from aiogram.utils.callback_data import CallbackData lang = CallbackData("lang", "short_name", "name") choose_lang = InlineKeyboardMarkup(inline_keyboard=[[ InlineKeyboardButton(text="Анлгийский", callback_data=lang.new(short_name="en", name="Анлгийский")), InlineKeyboardButton(text="Французкий", callback_data=lang.new(short_name="fr", name="Французкий")) ]])
"Monet": "style_monet", "Vangogh": "style_vangogh", "Summer2Winter": "summer2winter_yosemite", "Winter2Summer": "winter2summer_yosemite", } READY_STYLE_ACTION_LIST = [ v for k, v in ALL_STYLES_DICT.items() if v != PLAIN_NST_ACTION ] cmd_factory = CallbackData("command", "action") process_markup.add( InlineKeyboardButton( PROCESS_BUTTON_NAME, callback_data=cmd_factory.new(action=PROCESS_ACTION), )) for style, style_action in ALL_STYLES_DICT.items(): all_style_markup.add( InlineKeyboardButton( style, callback_data=style_factory.new(action=style_action, style_name=style), )) S3_BUCKET_WITH_RESULTS_NAME = os.environ["S3_BUCKET_WITH_RESULTS_NAME"] S3_RESULTS_PREFIX = os.environ["S3_RESULTS_PREFIX"] NST_ENDPOINT = urljoin(os.environ["ML_SERVER_HOST_ADDR"], "run-style-transfer")
from aiogram.utils.callback_data import CallbackData from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup post_callback = CallbackData('create_post', 'action') confirmation_keyborad = InlineKeyboardMarkup( inline_keyboard=[ [ InlineKeyboardButton(text='Опубликовать пост', callback_data=post_callback.new(action='post')), InlineKeyboardButton(text='Отклонить пост', callback_data=post_callback.new(action='cancel')) ] ] ) confirmation_keyborad2 = InlineKeyboardMarkup( inline_keyboard=[ [ InlineKeyboardButton(text='Отправить', callback_data=post_callback.new(action='post')), InlineKeyboardButton(text='Отменить отправку', callback_data=post_callback.new(action='cancel')) ] ] ) response_keyboard = InlineKeyboardMarkup( inline_keyboard=[ [
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton from aiogram.utils.callback_data import CallbackData post_callback = CallbackData("create_post", "action") confirm_keyboard = InlineKeyboardMarkup(inline_keyboard=[[ InlineKeyboardButton(text="Publicate post", callback_data=post_callback.new(action="post")), InlineKeyboardButton(text="Decline post", callback_data=post_callback.new(action="cancel")) ]])
await db.greetings.update_one({'chat_id': chat_id}, { '$set': { 'chat_id': chat_id, 'welcome_security': { 'enabled': True, 'level': level } } }, upsert=True) await get_greetings_data.reset_cache(chat_id) buttons = InlineKeyboardMarkup() buttons.add( InlineKeyboardButton(strings["no_btn"], callback_data=wlcm_sec_config_cancel.new( user_id=message.from_user.id, level=level)), InlineKeyboardButton(strings["yes_btn"], callback_data=wlcm_sec_config_proc.new( chat_id=chat_id, user_id=message.from_user.id, level=level))) await message.reply( strings['ask_for_time_customization'].format(time=format_timedelta( convert_time(get_str_key("JOIN_CONFIRM_DURATION")), locale=strings['language_info']['babel'])), reply_markup=buttons) @register(wlcm_sec_config_cancel.filter(), f='cb', allow_kwargs=True) @chat_connection(admin=True) @get_strings_dec("greetings")
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton from aiogram.utils.callback_data import CallbackData burn_set_menu_callback = CallbackData("burn_set_menu", "action") burn_set_menu = InlineKeyboardMarkup(inline_keyboard=[[ InlineKeyboardButton( "Сжечь🔥️", callback_data=burn_set_menu_callback.new(action="burn")), InlineKeyboardButton( "Отменить🔻", callback_data=burn_set_menu_callback.new(action="cancel")) ]])