Ответы пользователя по тегу AIOgram
  • Как фильтровать нецензурную лексику в telegram боте?

    vabka
    @vabka
    Токсичный шарпист
    Никак. Самый надёжный способ - постмодерация.
    Если кому-то из получателей не понравилось манера общения - блокировать отправку конкретному получателю.

    Если систематически жалуются разные получатели - вводить бан насовсем.

    Даже если ты сможешь сделать идеальный фильтр для пяти слов, который не будет давать ложных срабатываний - всё равно есть целая куча не менее грубых слов и выражений, которые матом не считаются
    Ответ написан
    Комментировать
  • Можно ли написать пользователю через бота если раньше не было взаимодействия?

    vabka
    @vabka
    Токсичный шарпист
    Нельзя.
    Но ты можешь сделать так, чтобы перед входом в группу нужно было повзаимодействовать с ботом.
    Например через капчу или через "запросить у администратора доступ в группу"
    Ответ написан
    Комментировать
  • Как реализовать перенос строки MarkdownV2?

    vabka
    @vabka
    Токсичный шарпист
    В базе данных перенос должен быть в сыром виде. Если вставляешь запись руками, то попробуй shift+enter нажать.

    Если вставляешь через код, то тогда \n без экранирования.

    Если хочешь, чтобы перенос сохранился после рендера md, то Vindicar дал ответ.
    Одинарный перенос в md игнорируется
    Ответ написан
    1 комментарий
  • Как использовать on_startup в боте телеграмм?

    vabka
    @vabka
    Токсичный шарпист
    1. У тебя ошибка в SQL-синтаксисе: CREATE TABLE IF NOTE EXISTS
    2. Что мешает тебе вызывать bd_start непосредственно перед запуском бота? Что-то типа:
    async def main():
        await bd_start() # так
        bot = Bot(token=config.BOT_TOKEN, parse_mode=ParseMode.HTML)
        dp = Dispatcher(storage=MemoryStorage())
        dp.include_router(router)
        await bot.delete_webhook(drop_pending_updates=True)
        await dp.start_polling(bot, allowed_updates=dp.resolve_used_update_types(), on_startup=on_startup)
    Ответ написан
    1 комментарий
  • Что такое пулинг стейт?

    vabka
    @vabka
    Токсичный шарпист
    Никакого "пулинг Стейт" в aiogram нет.
    Вероятно, вам сказали что-то другое.

    Чтобы бот автоматически поднимался при сбое - это совершенно независимая от aiogram вещь, которую можно настроить, например, через systemd.

    Чтобы при этом бот "помнил" в каком состоянии он находился перед сбоем - нужно сохранять состояние в какую-нибудь базу данных.

    Для сохранения состояния в aiogram есть FSM, но это не значит, что тебе нельзя ещё и самостоятельно что-то реализовать.
    Ответ написан
    Комментировать
  • Как реализовать добавление даты и времени в SQLite3 через бота на aiogram?

    vabka
    @vabka
    Токсичный шарпист
    Дату и время в sqlite можно сохранить двумя вариантами:
    Как строку - удобно и ничего не нужно будет выдумывать.
    Как число (Unix time) - компактно и можно будет нормально фильтроваться, но нужно будет конвертировать.


    И чтобы дата и время не повторялись в бд

    Уникальный индекс.

    Телеграм и python к вопросу отношения не имеют.
    Ответ написан