Ответы пользователя по тегу Telegram
  • Как отправлять сообщения по расписанию с aiogram?

    sotanodroid
    @sotanodroid
    Python/Golang developer
    Ты можешь использовать функцию EventLoop call_at: https://docs.python.org/3/library/asyncio-eventloo...

    К примеру тебе надо отправлять сообщение с определенным интервалом.

    Получаем из текущего событийного цикла время, прибавляем к нему интервал -- это будет время вызова функции.
    Далее создаем задачу на вызов в это время.
    Функция call_at принимает параметр времени, когда вызвать функцию, и саму функцию вторым аргументом. Третьим и дале еаргументами можно передать аргументы для вызываемой функции.

    loop = asyncio.get_event_loop()
    delay = 100.0
    
    async def my_func():
        # твоя логика с отправкой сообщений тут
        when_to_call = loop.time() + delay  # delay -- промежуток времени в секундах.
        loop.call_at(when_to_call, my_callback)
    
    def my_callback():
        asyncio.ensure_future(my_func())


    Таким образом ты зациклишь вызов своей функции по интервалу.
    Не забудь так же что твой событийный цикл в этом случае должен работать бесконечно: https://docs.python.org/3/library/asyncio-eventloo...
    Ответ написан
    1 комментарий
  • Как получить данные из БД и вывести в телеграм бота?

    sotanodroid
    @sotanodroid
    Python/Golang developer
    Необходимо сделать запрос к самой базе.
    В зависимости от СУБД базы в этом тебе помогут различные библиотеки.
    например для Postgres подойдет psycopg2 .

    В документации приведены примеры использования модуля.

    import psycopg2
    
    # Создание подключения к базе
    conn = psycopg2.connect("dbname=test user=postgres")  #  Можно использовать формат DSN
    
    # Создание курсора для выполнения операций с бд
    cur = conn.cursor()
    
    # Выполняешь запрос к бд
    cur.execute("SELECT * FROM my_bd;")
    cur.fetchone()
    # выведет например (1, 100, "abc'def"), можно присвоить переменной 
    
    # После использования необходимо закрыть подключение и курсор.
    cur.close()
    сonn.close()
    Ответ написан
    1 комментарий
  • Как брать информацию с другого сайта для Telegram-бота?

    sotanodroid
    @sotanodroid
    Python/Golang developer
    Все зависит от сайта.

    Если этот сайт предоставляет API -- то тогда можно будет делать к нему запросы. Как правило если есть открытый API -- у него будет и документация, как его использовать. В нем можно будет получать информацию.

    Запросы делать через библиотеку requests
    Ответ написан
    Комментировать