from aiogram_dialog.widgets.kbd import Button, Group from aiogram_dialog.widgets.text import Const group = Group( Button(Const("Crawl"), id="crawl"), Button(Const("Go"), id="go"), Button(Const("Run"), id="run"), Button(Const("Fly"), id="fly"), Button(Const("Teleport"), id="tele"), keep_rows=False, width=2, )
Format("✓ {item[0]}"), Format("{item[0]}"), "mselect", itemgetter(0), items, ) dialog1 = Dialog( Window( Const("Hello, {name}!"), Format("Hello, {name}!\n", when=lambda data, w, m: data["age"] > 18), Format("Now: {now}"), Progress("progress", 10), Progress("progress2", 10, filled="🟩"), Group( Button(Format("{name}"), "b1"), Button(Const("Is it Fun?"), "b2", on_click=fun), Checkbox(Const("Yes"), Const("No"), "check"), width=100, ), select, radio, multiselect, Button(Format("{now}"), "b3"), Row(Button(Progress("progress", 5), "b3"), Button(Progress("progress2", 5, filled="🟩"), "b4")), Next(), MessageInput(input_fun), getter=get_data, state=Register.hello, ), Window( Const("Выберите время начала"), Group(*[
async def get_data(**kwargs): return { "name": "Tishka17", "extended": False, } def is_tishka17(data: Dict, widget: Whenable, manager: DialogManager): return data.get("name") == "Tishka17" window = Window( Multi( Const("Hello"), Format("{name}", when="extended"), sep=" " ), Group( Row( Button(Const("Wait"), id="wait"), Button(Const("Ignore"), id="ignore"), when="extended", ), Button(Const("Admin mode"), id="nothing", when=is_tishka17), ), state=MySG.main, getter=get_data, )
async def on_reset_name(c: CallbackQuery, button: Button, manager: DialogManager): manager.context.set_data("name", None) main_menu = Dialog( Window( Multi( Format("Hello, {name}", when="name"), Const("Hello, unknown person", when=lambda data, whenable, manager: not data["name"]), ), Group( Start(Const("Enter name"), id="set", state=NameSG.input), Button(Const("Reset name"), id="reset", on_click=on_reset_name, when="name")), state=MainSG.main, getter=get_main_data, ), on_process_result=process_result, ) async def start(m: Message, dialog_manager: DialogManager): await dialog_manager.start(MainSG.main, reset_stack=True) async def main(): # real main
items, multiple=True ) dialog1 = Dialog(Window( Multi( Const("Hello, {name}!"), Format("Hello, {name}!", when=lambda data, w, m: data["age"] > 18), sep="\n\n", ), Group( Group( Button(Format("{name}"), "b1"), Button(Const("Is it Fun?"), "b2", on_click=fun), Checkbox(Const("Yes"), Const("No"), "check"), keep_rows=False ), select, multiselect, Button(Const("3. {name}"), "b3"), Next(), ), getter=get_data, state=Register.hello, on_message=input_fun, ), Window(Const("Выберите время начала"), Group( Group(*[ Button(Const(f"{h % 24:2}:{m:02}"), f"{h}:{m}") for h in range(20, 26) for m in range(0, 60, 15) ], keep_rows=False, width=4),
from aiogram_dialog.widgets.kbd import Button, Group, Row from aiogram_dialog.widgets.text import Const group = Group( Row( Button(Const("Go"), id="go"), Button(Const("Run"), id="run"), ), Button(Const("Fly"), id="fly"), )
if m.content_type['PHOTO']: print("оп у нас тут фоточка образовалась") await manager.start(Broadcast.broadcast_image, m.photo[0].file_id, reset_stack=False) else: await m.answer(text="Прикрепите фотографию") broadcast = Dialog( Window( Format("<b>Следующие роли получат рассылку:</b>" "\n• {selected}"), types_kbd, Group(Button(Const("Отмена"), id="Cancel", on_click=on_finish), Next(Const("Далее")), width=2, keep_rows=False), getter=get_data, state=Broadcast.broadcast_type, ), Window( Format("<b>Следующие роли получат рассылку:</b>" "\n• {selected}" "\n\n<b>Текст рассылаемого сообщения:</b>" "\n{text}" "\n\n<i>Поддерживается встроенное в Telegram форматирование!" "\nМаксимальное кол-во символов: 4096</i>"), Url(Const("Про форматирование"), Const("https://lifehacker.ru/formatirovanie-teksta-v-telegram/")), Button(Const("Отмена"), id="Cancel", on_click=on_finish), Group(Back(Const("Назад")),
Multi( Const("Hello, {name}!"), Format("Hello, {name}!\n", when=lambda data, w, m: data["age"] > 18), Format("Now: {now}"), Progress("progress", 10), Progress("progress2", 10, filled="🟩"), sep="\n", ), Group( Group(Button(Format("{name}"), "b1"), Button(Const("Is it Fun?"), "b2", on_click=fun), Checkbox(Const("Yes"), Const("No"), "check"), keep_rows=False), select, radio, multiselect, Button(Format("{now}"), "b3"), Row(Button(Progress("progress", 5), "b3"), Button(Progress("progress2", 5, filled="🟩"), "b4")), Next(), ), getter=get_data, state=Register.hello, on_message=input_fun, ), Window(Const("Выберите время начала"), Group( Group(*[ Button(Const(f"{h % 24:2}:{m:02}"), f"{h}_{m}") for h in range(20, 26) for m in range(0, 60, 15)