pip install python-telegram-bot
pip install python-sqlite3
import sqlite3
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
# Функция, которая срабатывает при получении команды /start
def start(update, context):
user = update.message.from_user
conn = sqlite3.connect('subscribers.db')
c = conn.cursor()
c.execute("SELECT * FROM subscribers WHERE user_id=?", (user.id,))
if c.fetchone() is None:
# Если пользователя нет в базе данных, то добавляем его
c.execute("INSERT INTO subscribers (user_id, username) VALUES (?, ?)", (user.id, user.username))
conn.commit()
update.message.reply_text('Вы подписаны на рассылку!')
else:
update.message.reply_text('Вы уже подписаны на рассылку!')
conn.close()
# Функция, которая срабатывает при получении команды /stop
def stop(update, context):
user = update.message.from_user
conn = sqlite3.connect('subscribers.db')
c = conn.cursor()
c.execute("SELECT * FROM subscribers WHERE user_id=?", (user.id,))
if c.fetchone() is not None:
# Если пользователь найден в базе данных, то удаляем его
c.execute("DELETE FROM subscribers WHERE user_id=?", (user.id,))
conn.commit()
update.message.reply_text('Вы отписаны от рассылки!')
else:
update.message.reply_text('Вы не были подписаны на рассылку!')
conn.close()
# Функция, которая срабатывает при получении любого сообщения
def echo(update, context):
# Получаем список всех подписчиков из базы данных
conn = sqlite3.connect('subscribers.db')
c = conn.cursor()
c.execute("SELECT * FROM subscribers")
subscribers = c.fetchall()
conn.close()
# Отправляем сообщение рассылки всем подписчикам
for subscriber in subscribers:
context.bot.send_message(subscriber[0], update.message.text)
# Функция, которая срабатывает при получении команды /help
def help(update, context):
update.message.reply_text('Список доступных команд:\n\n/start - подписаться на рассылку\n/stop - отписаться от рассылки\n/help - показать список команд')
Ну а дальше сами