на какой-то запрос, можно ли получить на эту анимацию какую-то уникальную ссылку, которая не протухнет и не пропадёт?
По file_id можно отправить анимацию, но file_id протухает. Как получить file_id по unique_id не понял.
файл айди протухает? За какое время?
У тебя file_id "протухает" ровно по одной причине: ты в своём боте используешь file_id, полученный ДРУГИМ ботом
То-то же, хуйня какая-то
Кстати, я прикрутил Fluent ещё и к файл айди. Теперь можно делать например так: class DefaultHandlers(BasicHandlerGroup): """ Handlers for second-basic commands """ router = ModRouter(name="DefaultHandlers!") @router.message(Command(commands=['start'])) async def cmd_start(self, m: Message, stuff: DataHub): """ Start command """ await m.answer_animation(stuff.start.animation()) if m.from_user.username: await m.answer(stuff.start.text.username(username=m.from_user.username)) else: await m.answer(stuff.start.text())
Я так хендлеры задаю
А чем это отличается от обычного размещения роутера в модуле?
Ничем. Но мне так удобнее. Правда в тройке большинство причин для создания такого модуля исчезло, так что это порт с 2 на 3.
много обращений к тексту, хз
ну тут кому как удобна
Можно конечно и getitem переопределить, но тогда уходит преимущество твоего варианта
Не сразу заметил, но всё же. Оказалось удобно использовать запросы к БД. Скажем, тебе надо в нескольких хендлерах (их роутеры связаны друг за другом) вызвать одинаковый запрос к БД. В классе с роутером создаёшь метод, затем его наследники получают возможность использовать его с минимальным расширением. Удобно.
Я просто выделяю всю работу с бд в отдельные классы (паттерн репозиторий) Мне не нравится смешивать логику запросов и отображения в хендлерах.
А в чём профит репозиториев?
почему у тебя в базовом репозитории нет основных crud операций?
Логика работы с бд собрана в одном месте, легче тестировать
а в чем отличие от dao
Не везде нужны базовые круд операции )
ладно, а чем он в твоём случае отличается от dao?
Я честно пытался изучить отличия, мне даже в чатах объясняли уже где-то. И всё ещё я не вижу разницы между ними, мне кажется это как с шавермой и шаурмой:)
а хз, если чесно я в dao особо не вникал )) Ну и в примере наверное не совсем корректный пример репозитория, я с репозитория сейчас возвращаю уже объекты бизнес логики которые не всегда мапятся напрямую в одну таблицу, например как здесь. А dao наверное больше про прямое отображение таблицы и объекта, поправь если ошибаюсь
А что делает exception_mapper?
Мапит ошибки алхимии в ошибки domain слоя, пока не придумал как лучше это сделать
Прикольно, давно думаю об этом, но всё никак не начну)
Обсуждают сегодня