Size: a a a

2019 December 21

AR

Alex RootJunior in aiogram [ru]
вызывать Bot.set_current(bot) перед тем как скармливать диспетчеру апдейт.
источник

d

djigit0s in aiogram [ru]
как можно записать значение в State. У меня есть класс
class URL(StatesGroup):
 url_list = State()
и мне надо в url_list записать значение, как это можно сделать из функции?
источник

ПС

Павел Стельмах in aiogram [ru]
def set_value(self, value):
   self.url_list.State_method(value)
?=)
источник

G

Gabben in aiogram [ru]
djigit0s
как можно записать значение в State. У меня есть класс
class URL(StatesGroup):
 url_list = State()
и мне надо в url_list записать значение, как это можно сделать из функции?
данные не привязаны к статусам, поэтому в статусы ничего нельзя записать
источник

d

djigit0s in aiogram [ru]
Gabben
данные не привязаны к статусам, поэтому в статусы ничего нельзя записать
я наверно не так объяснил задачу. У меня есть список url и я хотел их записать в inline kb в callback_data, не получается так больше 64 байт. Думал их записать машину состояний, а в inline kb записать номера индексов и по этим индексам уже читать из FMS сами url, но не знаю как список url записать в FMS
источник

F

Fernet in aiogram [ru]
а глобальный словарь не проканает? где ключ - мд5 от урла - его в калбак и значение словаря сам урл
источник

D

Dmitri in aiogram [ru]
Fernet
а глобальный словарь не проканает? где ключ - мд5 от урла - его в калбак и значение словаря сам урл
давай еще пизже идею -_-
источник

d

djigit0s in aiogram [ru]
Fernet
а глобальный словарь не проканает? где ключ - мд5 от урла - его в калбак и значение словаря сам урл
можно, но один момент не ясен, если ботом будут пользоваться одновременно несколько человек колизий не будут с глобальным словарем?
источник

D

Dmitri in aiogram [ru]
djigit0s
я наверно не так объяснил задачу. У меня есть список url и я хотел их записать в inline kb в callback_data, не получается так больше 64 байт. Думал их записать машину состояний, а в inline kb записать номера индексов и по этим индексам уже читать из FMS сами url, но не знаю как список url записать в FMS
у тебя урлы существуют в пределах какого-то этапа, или это данные которые в целом постоянные у тебя?
источник

F

Fernet in aiogram [ru]
ну одинаковый урл = одинаковый мд5 как то логично
источник

D

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

d

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

D

Dmitri in aiogram [ru]
djigit0s
в пределах одного этапа, пока пользователь не выберет нужный
ну так в state.set_data() их запихни и все
источник

G

Gabben in aiogram [ru]
djigit0s
я наверно не так объяснил задачу. У меня есть список url и я хотел их записать в inline kb в callback_data, не получается так больше 64 байт. Думал их записать машину состояний, а в inline kb записать номера индексов и по этим индексам уже читать из FMS сами url, но не знаю как список url записать в FMS
@dp.message_handler()
async def test(message: types.Message, state: FSMContext):
   urls = {...}
   await state.update_data({"urls": urls})
источник

D

Dmitri in aiogram [ru]
индексы раздай через enumerate, если тебе на кнопочки их посадить нужно, в дикт и в дату
источник

G

Gabben in aiogram [ru]
Dmitri
давай еще пизже идею -_-
md5(md5())
источник

d

djigit0s in aiogram [ru]
Gabben
@dp.message_handler()
async def test(message: types.Message, state: FSMContext):
   urls = {...}
   await state.update_data({"urls": urls})
один момент не могу догнать откуда берется переменная state? Просто вот эту операцию await state.update_data({"urls": urls}) мне надо выполнить в своей функции где нет handler
источник

G

Gabben in aiogram [ru]
djigit0s
один момент не могу догнать откуда берется переменная state? Просто вот эту операцию await state.update_data({"urls": urls}) мне надо выполнить в своей функции где нет handler
из фильтра, который включен по умолчанию
источник

AR

Alex RootJunior in aiogram [ru]
djigit0s
один момент не могу догнать откуда берется переменная state? Просто вот эту операцию await state.update_data({"urls": urls}) мне надо выполнить в своей функции где нет handler
передается из фильтров в качестве аргумента хендлеру
источник

ПС

Павел Стельмах in aiogram [ru]
callback_data = "get_url, url_number"
-callback_handler-
func, url_number = callback_data.split(',')
словарь_с_функциями.get(func)(url_number)
источник