Ответы пользователя по тегу Python
  • Телеграм бот на Aiogram - как совместить работу entities и parse_mode?

    @fork995
    Информация о форматировании также содержится в массиве entities.
    Так например выглядит текстовое сообщение, написанное курсивом, одно слово в середине bold.

    "entities": [
       {
        "offset": 0,
        "length": 7,
        "type": "italic"
       },
       {
        "offset": 7,
        "length": 9,
        "type": "italic"
       },
       {
        "offset": 7,
        "length": 4,
        "type": "bold"
       }
      ]
     }
    }

    Поэтому если в посте изначально было форматирование, то его можно сохранить.
    Посмотрите дебаггером или просто принтом, что в entities до правки и что после, именно редактирование причина косяка. Надо дописать ссылку в массив, при этом не испортив то, что было. и parse_mode тут не нужен, в таком случае
    Ответ написан
  • Как сделать команду в клавиатуре aiogram без слэша?

    @fork995
    Функция:

    async def cmd_start(message: types.Message):
    if message.text in ['/start', 'start']:
    …………..

    Регистрация хэндлера:
    def register_handlers(dp: Dispatcher):
    dp.register_message_handler(cmd_start, commands=['/start', 'start'])

    Только непонятно зачем там декоратор. Либо он, либо регистрация
    Ответ написан
  • Как выполнить функцию в определенное время через aiogram и aioschedule?

    @fork995
    Советую взять другой шедулер,

    from apscheduler import AsyncIOScheduler

    Вот этот обычно в ботах используется.

    scheduler = AsyncIOScheduler(timezone=…..)

    Задача добавляется так:

    scheduler.add_job(get_weather, 'cron', day_of_week='mon-sun', hour=09, minute=00, end_date='2025-10-13')
    И затем scheduler.start(), только перед стартом поллинга.
    Рабочий вариант, проверено. Если сделать привязку к бд, то задачи можно добавлять «на горячую».
    Ответ написан
    3 комментария
  • Как исправить ошибку в sqlite3?

    @fork995
    Посмотреть бы весь код…
    Проблема думаю в том, что контекстный менеджер закрывает соединение с бд.
    Вынесите соединение за пределы контекстного менеджера, например создав класс, с атрибутом connect(путь) и созданием таблицы в init, а всё, что связано с работой с бд сделайте в виде методов класса.
    Потом создав экземпляр вызывайте методы для добавления/извлечения данных, через with
    Ответ написан
    Комментировать