Size: a a a

2020 July 25

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Alex Gorev
Добрый день, программисты ;)
Есть вопрос. Как перевести fавтомат (FSM) из одного состояния в другое используя inline-кнопки?
С обычной клавиатурой нет проблем, она отправляет текст, другое состояние (хендлер) ожидает текст, всё хорошо.
А как быть с callback_data? В content_types я не нашёл что-то похожее на query или callback
Вопрос у тебя похоже совсем не о том, с чего начинается.
Ты хотел спросить: как отловить нажатие на инлайн кнопку

Для этого нужен другой хендлер
@dp.callback_query_handler(text="колбек дата здесь")
источник

AG

Alex Gorev in aiogram [ru]
Возможно, я неверно изъяснился.
Про query_handler я знаю, обрабатываю нажатия других inline-кнопок, это не проблема.
Мой вопрос состоит в том, как переключить состояние автомата через нажатие inline-кнопки.
Насколько я понимаю из примеров в интернете, состояние автомата "ждёт" ответа пользователя: в виде текста, локации, файла, или  другого представления данных
Мне же нужно переключить автомат inline-кнопкой, то есть в данном случае представлением данных служит callback_data. Но автомат в состоянии не умеет ждать callback_data.
В query_handler я могу переключить состояние автомата на следующее. Но оно не запуститься, пока я не пришлю какой-то ответ. Бот всё равно ждёт от меня "ответа", который, по сути, в случае с inline-кнопкой, является callback_data-ой.
Сложно описать эту ситуацию ;)
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Alex Gorev
Возможно, я неверно изъяснился.
Про query_handler я знаю, обрабатываю нажатия других inline-кнопок, это не проблема.
Мой вопрос состоит в том, как переключить состояние автомата через нажатие inline-кнопки.
Насколько я понимаю из примеров в интернете, состояние автомата "ждёт" ответа пользователя: в виде текста, локации, файла, или  другого представления данных
Мне же нужно переключить автомат inline-кнопкой, то есть в данном случае представлением данных служит callback_data. Но автомат в состоянии не умеет ждать callback_data.
В query_handler я могу переключить состояние автомата на следующее. Но оно не запуститься, пока я не пришлю какой-то ответ. Бот всё равно ждёт от меня "ответа", который, по сути, в случае с inline-кнопкой, является callback_data-ой.
Сложно описать эту ситуацию ;)
dp.current_state()?
источник

А

Айван in aiogram [ru]
Alex Gorev
Возможно, я неверно изъяснился.
Про query_handler я знаю, обрабатываю нажатия других inline-кнопок, это не проблема.
Мой вопрос состоит в том, как переключить состояние автомата через нажатие inline-кнопки.
Насколько я понимаю из примеров в интернете, состояние автомата "ждёт" ответа пользователя: в виде текста, локации, файла, или  другого представления данных
Мне же нужно переключить автомат inline-кнопкой, то есть в данном случае представлением данных служит callback_data. Но автомат в состоянии не умеет ждать callback_data.
В query_handler я могу переключить состояние автомата на следующее. Но оно не запуститься, пока я не пришлю какой-то ответ. Бот всё равно ждёт от меня "ответа", который, по сути, в случае с inline-кнопкой, является callback_data-ой.
Сложно описать эту ситуацию ;)
"Как переключить состояние автомата через нажатие inline-кнопки"
Так-же как и из любого другого handler'a:
await state.set_state('state_group:state_name')
источник

zu

zmey uroboros in aiogram [ru]
Щ изначально ты о деньгах 6н
источник

ЕП

Евгений Петров... in aiogram [ru]
zmey uroboros
Щ изначально ты о деньгах 6н
похмелье?
источник

ЕП

Евгений Петров... in aiogram [ru]
У кого-нибудь вообще работает отправка файлов с кастомным превью?
Пытаюсь отправить PDF с превьюхой. Сама картинка весит 7 килобайт, размер 128x128 (попадает под критерии от телеги). Но в итоге превью нет.

@dp.message_handler(commands="doc")
async def cmd_doc(message: types.Message):
   await bot.send_document(message.chat.id,
                           caption="mycaption",
                           document=types.InputFile("sample.pdf"),
                           thumb=types.InputFile("pdf-icon.jpg"))
источник

AR

Alex RootJunior in aiogram [ru]
Евгений Петров
У кого-нибудь вообще работает отправка файлов с кастомным превью?
Пытаюсь отправить PDF с превьюхой. Сама картинка весит 7 килобайт, размер 128x128 (попадает под критерии от телеги). Но в итоге превью нет.

@dp.message_handler(commands="doc")
async def cmd_doc(message: types.Message):
   await bot.send_document(message.chat.id,
                           caption="mycaption",
                           document=types.InputFile("sample.pdf"),
                           thumb=types.InputFile("pdf-icon.jpg"))
Давно не проверял но раньше не все клиенты  умели отображать кастомное превью для всех типов файлов/медиа
источник

ЕП

Евгений Петров... in aiogram [ru]
С тем кодом, что выше, превью НЕ отображается в Telegram Desktop, Telegram Android, Telegram iOS
Косяк на серверной стороне?
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Что я делаю не так? почему в from_user не попадает объект юзера?

PS пишу тест для фильтра
источник

D

Dima in aiogram [ru]
<Юрий> 👨‍🔬 Чебышев
Что я делаю не так? почему в from_user не попадает объект юзера?

PS пишу тест для фильтра
Особенности
источник

D

Dima in aiogram [ru]
Оно не даст
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
как-то можно обойти?
источник

T

Tishka17 in aiogram [ru]
Dima
Оно не даст
Ват?
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Tishka17
Ват?
ну как видишь и правда не даёт
источник

T

Tishka17 in aiogram [ru]
Вот нахрен так делать? :(
источник

F

Fᴏʀᴅᴇɴ in aiogram [ru]
<Юрий> 👨‍🔬 Чебышев
как-то можно обойти?
msg = types.Message(**json_data)
msg.from_user
источник

T

Tishka17 in aiogram [ru]
Опять смешивают структуру и её парсинг
источник

D

Dima in aiogram [ru]
Я не так понял наверное, я чето сначало подумал, что речь о том, чтобы в объекты айограма чето свое пихать и через эс_жсон брать
источник

T

Tishka17 in aiogram [ru]
Бесит
источник