Задать вопрос
@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))


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

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

Похожие вопросы
SpectrumData Екатеринбург
от 200 000 до 300 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
AST Москва
До 350 000 ₽
18 янв. 2025, в 10:04
50000 руб./за проект
18 янв. 2025, в 09:18
5500 руб./за проект
18 янв. 2025, в 07:20
50000 руб./за проект