Задать вопрос
@aygizyulbarisov
Учусь программированию

Как заставить бота считать сколько сделал он рассылок по пользователям?

Библиотека pyTelegramBotAPI

Пишу админский панель для своего телеграмм бота, и возникла такая проблема, не могу заставить бота считать количество рассылок который он отправил всем пользователей.

Код такой:

@bot.callback_query_handler(func=lambda call: call.data == 'add_send') #Это после нажатие Inline кнопки
def callback_inline(call):

        msg = bot.send_message(call.message.chat.id, 'Отправьте текст:')

        bot.register_next_step_handler(msg, text)  #Здесь я отправил боту текст который надо разослать по пользователям

def text(message):
   
    conn = sqlite3.connect('users.db')
    cursor = conn.cursor()
    cursor.execute("SELECT id FROM login_id")
    results = cursor.fetchall()
    for result in results:
        try:

            bot.send_message(result[0], message.text)        #идёт рассылка
            bot.send_message(message.chat.id, 'Рассылка')  #приходит админу после каждой отправки 
        except:
            pass                                                                     #здесь пропускает если бота пользователь заблокировал


Вот отправляю скрин как получается:63ca59f5e8315699685302.jpeg

Было сделано рассылка, это тестовый бот у которого 3 пользователя. И вот я делаю рассылку и он отправляет слово "Рассылка" 3 раза, а мне нужно чтобы бот отправил примерно так: "Рассылка 3" одним сообщением. Цифра 3 это количество пользователей которые получили это сообщение.

Если в моём вопросе что то не понятно, спрашивайте, я мигом отвечу.
  • Вопрос задан
  • 120 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Что то вроде этого?
Попробуй:
count = 0
def text(message):
    global count
    conn = sqlite3.connect('users.db')
    cursor = conn.cursor()
    cursor.execute("SELECT id FROM login_id")
    results = cursor.fetchall()
    for result in results:
        try:
            bot.send_message(result[0], message.text)
            count += 1
        except:
            pass
    bot.send_message(message.chat.id, 'Рассылка ' + str(count))


Бот должен отправить сообщение админу (рассылка "число") после рассылки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы