Size: a a a

2020 February 19

D

Dmitri in aiogram [ru]
Tahir
Доброе утро. мой бот тянет из апи список городови показывает инлайн кнопками, в зависимости от выбора юзера я использую ИД города в качестве callback_data
при выборе города из апи тянется список улиц города и опять отображается как инлайн кнопки и в этом случае я использую в качестве callback_data ид этих улиц. Проблема в том что в БД ид городов и улиц совпадают, потому что они в разных таблицах. Получается что мой отдельный метод по отлавливанию callback_data не понимает ИД которое пришло это ИД города или улицы.  Подскажите как можно решить такую задачку?
в смысле?)
А ловить отдельным колбэками не варик уже что ли?
источник

T

Tahir in aiogram [ru]
Dmitri
в смысле?)
А ловить отдельным колбэками не варик уже что ли?
@dp.callback_query_handler()
async def callback_object_query(query: types.CallbackQuery):
   await query.answer()
   await bot.send_message(query.from_user.id, f"выбран город - {query.data}")


как здесь отдельно отловить?
источник

Forevka ÐΞV in aiogram [ru]
Tahir
Доброе утро. мой бот тянет из апи список городови показывает инлайн кнопками, в зависимости от выбора юзера я использую ИД города в качестве callback_data
при выборе города из апи тянется список улиц города и опять отображается как инлайн кнопки и в этом случае я использую в качестве callback_data ид этих улиц. Проблема в том что в БД ид городов и улиц совпадают, потому что они в разных таблицах. Получается что мой отдельный метод по отлавливанию callback_data не понимает ИД которое пришло это ИД города или улицы.  Подскажите как можно решить такую задачку?
три стула
добавить идентификатор в коллбек дату
поменять бд
юзать машину состояний
источник

DS

Daniil Shuhari in aiogram [ru]
Друзья, а можете накидать ваших реп с ботами? Особо интересуют всякие заебистые случаи, колбэки и т д. Образования для, вдохновения ради
источник

q

quavo in aiogram [ru]
Daniil Shuhari
Друзья, а можете накидать ваших реп с ботами? Особо интересуют всякие заебистые случаи, колбэки и т д. Образования для, вдохновения ради
на гитхабе айограма есть пример бота
источник

D

Dmitri in aiogram [ru]
Tahir
@dp.callback_query_handler()
async def callback_object_query(query: types.CallbackQuery):
   await query.answer()
   await bot.send_message(query.from_user.id, f"выбран город - {query.data}")


как здесь отдельно отловить?
ну ты шо, орешь?
ты ж вроде старенький

callbackdat уникальный засетить не?

get-city-id_{city_id}
get-street-id_{street_id}

?
источник

T

Tahir in aiogram [ru]
Forevka ÐΞV
три стула
добавить идентификатор в коллбек дату
поменять бд
юзать машину состояний
ну да, эти варианты я знаю, думал может еще какой вариант есть отловить колбэк
источник

Forevka ÐΞV in aiogram [ru]
Tahir
ну да, эти варианты я знаю, думал может еще какой вариант есть отловить колбэк
алекс дал тебе фабрику коллбеков, юзай
источник

T

Tahir in aiogram [ru]
Forevka ÐΞV
алекс дал тебе фабрику коллбеков, юзай
спасибо
источник

D

Dmitri in aiogram [ru]
@dp.callback_query_handler(lambda call: 'get-city-id_' in call.data, state='*')
async def get_city_id(query: types.CallbackQuery):
   await query.answer()
   await bot.send_message(query.from_user.id, f"выбран город - {query.data}")


@dp.callback_query_handler(lambda call: 'get-street-id_' in call.data, state='*')
async def get_street_id(query: types.CallbackQuery):
   await query.answer()
   await bot.send_message(query.from_user.id, f"выбрана улица - {query.data}")
источник

T

Tahir in aiogram [ru]
Dmitri
ну ты шо, орешь?
ты ж вроде старенький

callbackdat уникальный засетить не?

get-city-id_{city_id}
get-street-id_{street_id}

?
да и так можно, делать уникальными колбэки путем конкатенации, я наверное так и сделаю, псасибо
источник

D

Dmitri in aiogram [ru]
Tahir
да и так можно, делать уникальными колбэки путем конкатенации, я наверное так и сделаю, псасибо
не понимаю зачем тебе конкатенация

Тебе на этапе отлова улицы нужно понимать в каком городе? Тогда так и пиши)
Тогда да, передавай в клаву с улицами еще и город
источник

DS

Daniil Shuhari in aiogram [ru]
Dmitri
@dp.callback_query_handler(lambda call: 'get-city-id_' in call.data, state='*')
async def get_city_id(query: types.CallbackQuery):
   await query.answer()
   await bot.send_message(query.from_user.id, f"выбран город - {query.data}")


@dp.callback_query_handler(lambda call: 'get-street-id_' in call.data, state='*')
async def get_street_id(query: types.CallbackQuery):
   await query.answer()
   await bot.send_message(query.from_user.id, f"выбрана улица - {query.data}")
А можно из коллбэк хэндлера отправлять сообщения? О боги, ура
источник

D

Dmitri in aiogram [ru]
Tahir
да и так можно, делать уникальными колбэки путем конкатенации, я наверное так и сделаю, псасибо
если с НП работаешь, то там у всего есть свой уникальный id по системе))))
источник

D

Dmitri in aiogram [ru]
Daniil Shuhari
А можно из коллбэк хэндлера отправлять сообщения? О боги, ура
а шо тебе мешало до этого?😂
источник

DS

Daniil Shuhari in aiogram [ru]
Я не мог понять как айди передать, вернее откуда его взять
источник

DS

Daniil Shuhari in aiogram [ru]
Не знал что он в атрибуте query лежит
источник

D

Dmitri in aiogram [ru]
Daniil Shuhari
Я не мог понять как айди передать, вернее откуда его взять
ну или так как выше
или query.message.chat.id
источник

DS

Daniil Shuhari in aiogram [ru]
Dmitri
ну или так как выше
или query.message.chat.id
Просто спасение, огромнейше благодарю. Не представляешь как я заебался писать обработчик сообщения который по ключевому слову выдаёт следующий вопрос теста. Наговнокодил(
источник

D

Dmitri in aiogram [ru]
Daniil Shuhari
Просто спасение, огромнейше благодарю. Не представляешь как я заебался писать обработчик сообщения который по ключевому слову выдаёт следующий вопрос теста. Наговнокодил(
бывает) все мы учимся)
источник