@mcjohnyx
Чел..

Как сделать рассылку в вк боте каждый день в определенное время?

Всем привет.
Пишу бота, который должен всем в определенное время присылать текст.
Логика ответов уже есть. А так же привязка к бд, чтобы оттуда брать user_id.
Вот куски кода из моего бота:
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
from vk_api.utils import get_random_id
import sqlite3
import time
from datetime import datetime as dt

token = токен
vk_session = vk_api.VkApi(token=token)
vk = vk_session.get_api()
longpool = VkBotLongPoll(vk_session, id группы)

__connection = None
def get_connection():  # Производится соединение с базой
    global __connection
    if __connection is None:
        __connection = sqlite3.connect('name.db')
    return __connection
def get_id(): #Проход по колонке user_id с пользователями из таблицы user || Возвращает список с кортежами с пользователями
    conn = get_connection()
    c = conn.cursor()
    c.execute('SELECT user_id FROM user')
    res = c.fetchall()
    return res

def send_message(user_id):
    vk.messages.send(
                user_id = user_id,
                message =ТЕКСТ,
                random_id = get_random_id() 
    )

while True:
    if dt.now().strftime('%H:%M') == 'Ч:М': #Ч-час, М-минута -- время отправки сообщений
        list_with_id = get_id() #
        for id in list_with_id:
            send.message(int(id[0]))
        time.sleep(60)
    for event in longpool.listen():
        #Логика бота

Может быть ошибка в коде, или я тупой. Как все таки реализовать рассылку в боте?
ПОЖАЛУЙСТА не предлагайте всякие рассылки с помощью callback и т.д. Рассылка должна происходить из этого кода.
Спасибо заранее.
  • Вопрос задан
  • 1482 просмотра
Пригласить эксперта
Ответы на вопрос 1
@anerev
Оно не работает потому что for event in longpool.listen():
Обращается к бесконечному генератору и поэтому проверка времени происходит только один раз, при запуске
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы