from telegram import Update, ReplyKeyboardMarkup, KeyboardButton from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext import sqlite3 conn = sqlite3.connect('bot_database.db') cursor = conn.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS schedules ( user_id INTEGER PRIMARY KEY, schedule TEXT ) ''') conn.commit() # Ваш токен бота TOKEN = 'ВАШ_ТОКЕН_БОТА' def start(update: Update, context: CallbackContext): keyboard = [ [KeyboardButton(text="Добавить расписание"), KeyboardButton(text="Посмотреть все расписания")] ] reply_markup = ReplyKeyboardMarkup(keyboard) update.message.reply_text('Добро пожаловать! Выберите действие:', reply_markup=reply_markup) def add_schedule(update: Update, context: CallbackContext): user_id = update.effective_user.id text = update.message.text.split(" ", maxsplit=1)[1] save_schedule(user_id, text) update.message.reply_text(f'Ваше расписание успешно сохранено!') def view_schedules(update: Update, context: CallbackContext): cursor.execute("SELECT * FROM schedules") rows = cursor.fetchall() message = "\n".join([f"{row[0]} : {row[1]}" for row in rows]) update.message.reply_text(message or "Нет сохраненных расписаний.") def save_schedule(user_id, schedule): cursor.execute("REPLACE INTO schedules (user_id, schedule) VALUES (?, ?)", (user_id, schedule)) conn.commit() def main(): updater = Updater(token=TOKEN, use_context=True) dispatcher = updater.dispatcher dispatcher.add_handler(CommandHandler("start", start)) dispatcher.add_handler(MessageHandler(Filters.regex(r'^Добавить расписание$'), add_schedule)) dispatcher.add_handler(MessageHandler(Filters.regex(r'^Посмотреть все расписания$'), view_schedules)) updater.start_polling() updater.idle() if __name__ == "__main__": main()
Создай вначале бота в BotFather, затем пишешь ему команду /token, выбираешь созданного бота, получаешь токен и вставляешь его следующую строчку вместо 'ВАШ_ТОКЕН_БОТА':