Этот вопрос закрыт для ответов, так как повторяет вопрос Как сделать рассылку для пользователей в телеграм боте?
@Swek09

Рассылка в telegram bot через базу данных?

Как сделать рассылку для пользователей в Телеграм боте?
Ну например я пишу так: /Команда Текст. После этого всем пользователям отправляется сообщение Текст.

Но команда доступа должна быть только у админа.

Id которого будет находиться в переменной admin = 'id администратора, id 2 администратора'

Бот должен отправлять сообщения всем пользователям в базе данных Sqlite3 по Телеграм id в базе это User_id
У бота есть кнопка "Рассылка" Нужно при её нажатии включать или выключать рассылку например:
bot.send_message(message.chat.id,'Рассылка вкл.')
bot.send_message(message.chat.id,'Рассылка выкл.')
Вот код бота:
import sqlite3
import telebot
from telebot import types


token='Тут токен'
bot=telebot.TeleBot(token)
conn = sqlite3.connect('db/Database.db', check_same_thread=False)
cursor = conn.cursor()




def db_table_val(User_id: int, User_name: str, User_surname: str, Username: str):
  cursor.execute('INSERT INTO Users (User_id, User_name, User_surname, Username) VALUES (?, ?, ?, ?)', (User_id, User_name, User_surname, Username))
  conn.commit()
  


@bot.message_handler(commands=['start'])
def button_message(message):
    markup=types.ReplyKeyboardMarkup(resize_keyboard=True)

    item1=types.KeyboardButton("Рассылка")
    markup.add(item1)

    us_id = message.from_user.id
    us_name = message.from_user.first_name
    us_sname = message.from_user.last_name
    username = message.from_user.username
    user = cursor.execute('SELECT * FROM users WHERE User_id=?', (int(us_id),)).fetchall();
    if user:
        bot.send_message(message.chat.id,'Не беспокойтесь. Вы существуете.')
    else:
        db_table_val(User_id=us_id, User_name=us_name, User_surname=us_sname, Username=username)
@bot.message_handler(content_types='text')
def message_reply(message):


    if message.text=="Рассылка":
        if #если Значение Distribution в базе данных равен TRUE то:
             #если админ начнёт рассылку с команды /send то отправлять сообщение
        elif #если Значение Distribution  в базе данных равен FALSE то:
             #если админ начнёт рассылку с команды /send то пользователю ничего не придёт
          
        
bot.infinity_polling(none_stop=True)

Вот Бд:
62d981e3d1dad392059341.png
  • Вопрос задан
  • 920 просмотров
Ваш ответ на вопрос

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

Потому что уже есть похожий вопрос.
Похожие вопросы