Exemple #1
0
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,
)
Exemple #2
0
    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(*[
Exemple #3
0

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,
)
Exemple #4
0
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
Exemple #5
0
    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),
Exemple #6
0
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"),
)
Exemple #7
0
    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("Назад")),
Exemple #8
0
     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)