Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2 / кр

.docx
Скачиваний:
1
Добавлен:
16.05.2025
Размер:
37.35 Кб
Скачать

from tables import Anime from database import create_table, Session def create_db(): create_table() session = Session() # Создаем объекты Anime и добавляем их в базу данных anime1 = Anime( anime_id='1', anime_name_r='Наруто', anime_name_e='Naruto', release_date=2002, genre='сёнен', episodes_number=720, rating=4.3 ) session.add(anime1) anime2 = Anime( anime_id='2', anime_name_r='Дороро', anime_name_e='Dororo', release_date=2019, genre='сёнен', episodes_number=24, rating=4.6 ) session.add(anime2) session.commit() session.close()

import sqlite3 from telegram.ext import Updater, CommandHandler, MessageHandler, Filters # Подключение к базе данных conn = sqlite3.connect('test.db') cur = conn.cursor() # Создание таблицы для хранения сообщений cur.execute('''CREATE TABLE IF NOT EXISTS messages (id INTEGER PRIMARY KEY AUTOINCREMENT, chat_id INTEGER, message TEXT)''') conn.commit() # Обработчик команды /start def start(update, context): context.bot.send_message(chat_id=update.effective_chat.id, text="Привет, я бот!") # Обработчик текстовых сообщений def echo(update, context): # Сохраняем сообщение в базу данных cur.execute("INSERT INTO messages (chat_id, message) VALUES (?, ?)", (update.effective_chat.id, update.message.text)) conn.commit() # Отвечаем на сообщение context.bot.send_message(chat_id=update.effective_chat.id, text=update.message.text) # Создание бота и добавление обработчиков updater = Updater(token='YOUR_TOKEN', use_context=True) dispatcher = updater.dispatcher dispatcher.add_handler(CommandHandler('start', start)) dispatcher.add_handler(MessageHandler(Filters.text, echo)) # Запуск бота updater.start_polling() updater.idle()

import random import sqlite3 from sqlalchemy import and_ from tables import Anime, Profile from telegram.ext import Updater, CommandHandler, MessageHandler, filters, ConversationHandler from telegram import ReplyKeyboardMarkup, KeyboardButton # Подключение к базе данных conn = sqlite3.connect('test.db') cur = conn.cursor() # Создание таблицы для хранения сообщений cur.execute('''CREATE TABLE IF NOT EXISTS messages (id INTEGER PRIMARY KEY AUTOINCREMENT, chat_id INTEGER, message TEXT)''') conn.commit() # Создаем кнопки button1 = KeyboardButton('Поиск по жанру') button2 = KeyboardButton('Поиск по году выпуска') button3 = KeyboardButton('Поиск названию(рус)') button4 = KeyboardButton('Поиск названию(англ)') button5 = KeyboardButton('Рандомное аниме') # Создаем клавиатуру markup = ReplyKeyboardMarkup([[button1], [button2], [button3], [button4], [button5]], resize_keyboard=True) # Обработчик команды /start def start(update, context): context.bot.send_message(chat_id=update.effective_chat.id, text="Привет, я Аниме-бот. Выбери кнопку!", reply_markup=markup) # Состояния диалога GENRE = 0 # Обработчик команды /search def search_button1(update, context): update.message.reply_text("Введите жанр аниме:") return GENRE # Обработка введенного жанра def search_genre(update, context): # Показываем пользователю, что бот что-то делает context.bot.send_chat_action(chat_id=update.effective_chat.id, action=ChatAction.TYPING) # Получаем введенный жанр genre = update.message.text # Подключаемся к базе данных conn = sqlite3.connect('NarutoWorld.db') cur = conn.cursor() # Получаем данные по жанру из таблицы cur.execute("SELECT * FROM Anime WHERE genre=?", (genre,)) results = cur.fetchall() # Отправляем результат пользователю if len(results) == 0: update.message.reply_text("По вашему запросу ничего не найдено.") else: for row in results: update.message.reply_text(f"Название на русском: {row[0]}\nНазвание на английском: {row[1]}\nГод выпуска: {row[2]}\nЖанр: {row[3]}\nКоличество эпизодов: {row[4]}\nРейтинг: {row[5]}") # Закрываем соединение с базой данных conn.close() # Состояния диалога YEAR = 0 # Обработчик команды /search def search_button2(update, context): update.message.reply_text("Введите год выпуска:") return GENRE # Обработка введенного жанра def search_release_date(update, context): # Показываем пользователю, что бот что-то делает context.bot.send_chat_action(chat_id=update.effective_chat.id, action=ChatAction.TYPING) # Получаем введенный жанр release_date = update.message.text # Подключаемся к базе данных conn = sqlite3.connect('NarutoWorld.db') cur = conn.cursor() # Получаем данные по жанру из таблицы cur.execute("SELECT * FROM Anime WHERE release_date=?", (release_date,)) results = cur.fetchall() # Отправляем результат пользователю if len(results) == 0: update.message.reply_text("По вашему запросу ничего не найдено.") else: for row in results: update.message.reply_text(f"Название на русском: {row[0]}\nНазвание на английском: {row[1]}\nГод выпуска: {row[2]}\nЖанр: {row[3]}\nКоличество эпизодов: {row[4]}\nРейтинг: {row[5]}") # Закрываем соединение с базой данных conn.close() # Состояния диалога NAME_R = 0 # Обработчик команды /search def search_button3(update, context): update.message.reply_text("Введите название на русском языке:") return NAME_R # Обработка введенного жанра def search_name_r(update, context): # Показываем пользователю, что бот что-то делает context.bot.send_chat_action(chat_id=update.effective_chat.id, action=ChatAction.TYPING) # Получаем введенный жанр name_r = update.message.text # Подключаемся к базе данных conn = sqlite3.connect('NarutoWorld.db') cur = conn.cursor() # Получаем данные по жанру из таблицы cur.execute("SELECT * FROM Profile WHERE name_r=?", (name_r,)) results = cur.fetchall() # Отправляем результат пользователю if len(results) == 0: update.message.reply_text("По вашему запросу ничего не найдено.") else: for row in results: update.message.reply_text(f"Название на русском: {row[0]}\nГод выпуска: {row[1]}\nЖанр: {row[2]}\nКоличество эпизодов: {row[3]}\nРейтинг: {row[4]}\nИзображение: {row[5]}\nОписание: {row[6]}") # Закрываем соединение с базой данных conn.close() # Состояния диалога NAME_E = 0 # Обработчик команды /search def search_button4(update, context): update.message.reply_text("Введите название на английском языке:") return NAME_E # Обработка введенного жанра def search_name_e(update, context): # Показываем пользователю, что бот что-то делает context.bot.send_chat_action(chat_id=update.effective_chat.id, action=ChatAction.TYPING) # Получаем введенный жанр name_e = update.message.text # Подключаемся к базе данных conn = sqlite3.connect('NarutoWorld.db') cur = conn.cursor() # Получаем данные по жанру из таблицы cur.execute("SELECT * FROM Profile WHERE name_e=?", (name_e,)) results = cur.fetchall() # Отправляем результат пользователю if len(results) == 0: update.message.reply_text("По вашему запросу ничего не найдено.") else: for row in results: update.message.reply_text(f"Название на английском: {row[0]}\nГод выпуска: {row[1]}\nЖанр: {row[2]}\nКоличество эпизодов: {row[3]}\nРейтинг: {row[4]}\nИзображение: {row[5]}\nОписание: {row[6]}") # Закрываем соединение с базой данных conn.close() # функция-обработчик для нажатия кнопки "Рандомное аниме" def button5(update, context): # отправляем пользователю сообщение с клавиатурой context.bot.send_message(chat_id=update.effective_chat.id, text="Нажмите кнопку \"Рандомное аниме\", чтобы получить случайное аниме.", markup=markup) def search_random(update, context): # Показываем пользователю, что бот что-то делает context.bot.send_chat_action(chat_id=update.effective_chat.id, action=ChatAction.TYPING) # Подключаемся к базе данных conn = sqlite3.connect('NarutoWorld.db') cur = conn.cursor() # выбираем случайное аниме из списка cur.execute("SELECT * FROM Profile ORDER BY RANDOM() LIMIT 1") result = cur.fetchone() # отправляем пользователю сообщение с выбранным аниме context.bot.send_message(chat_id=update.message.chat_id, text=f"Случайное аниме: {result[1]}") # Закрываем соединение с базой данных conn.close() # Обработчик текстовых сообщений def echo(update, context): # Сохраняем сообщение в базу данных cur.execute("INSERT INTO messages (chat_id, message) VALUES (?, ?)", (update.effective_chat.id, update.message.text)) conn.commit() # Отвечаем на сообщение context.bot.send_message(chat_id=update.effective_chat.id, text=update.message.text) # Создание бота и добавление обработчиков updater = Updater(token='6026074224:AAF78rEoWNcKJqVVR1RfkrxhE_T1JG2jFm0', use_context=True) dispatcher = updater.dispatcher dispatcher.add_handler(CommandHandler('start', start)) dispatcher.add_handler(MessageHandler(Filters.text, echo)) # Запуск бота updater.start_polling() updater.idle()

import sqlite3 import database from telegram.ext import Updater, CommandHandler, MessageHandler, filters from telegram import ReplyKeyboardMarkup, KeyboardButton # Подключение к базе данных conn = sqlite3.connect('NarutoWorld') cur = conn.cursor() # Создание таблицы для хранения сообщений cur.execute('''CREATE TABLE IF NOT EXISTS messages (id INTEGER PRIMARY KEY AUTOINCREMENT, chat_id INTEGER, message TEXT)''') conn.commit() # Создаем кнопки button1 = KeyboardButton('Поиск по жанру') button2 = KeyboardButton('Поиск по году выпуска') button3 = KeyboardButton('Поиск названию(рус)') button4 = KeyboardButton('Поиск названию(англ)') button5 = KeyboardButton('Рандомное аниме') # Создаем клавиатуру markup = ReplyKeyboardMarkup([[button1], [button2], [button3], [button4], [button5]], resize_keyboard=True) # Обработчик команды /start def start(update, context): context.bot.send_message(chat_id=update.effective_chat.id, text="Привет, я Аниме-бот. Выбери кнопку!", reply_markup=markup) # Состояния диалога GENRE = 0 # Обработчик команды /search def search_button1(update): update.message.reply_text("Введите жанр аниме:") return GENRE # Обработка введенного жанра def search_genre(update, context): # Отправляем пользователю сообщение о том, что бот начал поиск update.message.reply_text("Подождите, идет поиск...") # Получаем введенный жанр genre = update.message.text # Подключаемся к базе данных conn = sqlite3.connect('NarutoWorld.db') cur = conn.cursor() # Получаем данные по жанру из таблицы cur.execute("SELECT * FROM Anime WHERE genre=?", (genre,)) results = cur.fetchall() # Удаляем сообщение о том, что бот начал поиск context.bot.delete_message(chat_id=update.message.chat_id, message_id=update.message.message_id) # Отправляем результат пользователю if len(results) == 0: update.message.reply_text("По вашему запросу ничего не найдено.") else: for row in results: update.message.reply_text(f"Название на русском: {row[0]}\nНазвание на английском: {row[1]}\nГод выпуска: {row[2]}\nЖанр: {row[3]}\nКоличество эпизодов: {row[4]}\nРейтинг: {row[5]}") # Закрываем соединение с базой данных conn.close() # Состояния диалога YEAR = 0 # Обработчик команды /search def search_button2(update): update.message.reply_text("Введите год выпуска:") return YEAR # Обработка введенного жанра def search_release_date(update, context): # Отправляем пользователю сообщение о том, что бот начал поиск update.message.reply_text("Подождите, идет поиск...") # Получаем введенный жанр release_date = update.message.text # Подключаемся к базе данных conn = sqlite3.connect('NarutoWorld.db') cur = conn.cursor() # Получаем данные по жанру из таблицы cur.execute("SELECT * FROM Anime WHERE release_date=?", (release_date,)) results = cur.fetchall() # Удаляем сообщение о том, что бот начал поиск context.bot.delete_message(chat_id=update.message.chat_id, message_id=update.message.message_id) # Отправляем результат пользователю if len(results) == 0: update.message.reply_text("По вашему запросу ничего не найдено.") else: for row in results: update.message.reply_text(f"Название на русском: {row[0]}\nНазвание на английском: {row[1]}\nГод выпуска: {row[2]}\nЖанр: {row[3]}\nКоличество эпизодов: {row[4]}\nРейтинг: {row[5]}") # Закрываем соединение с базой данных conn.close() # Состояния диалога NAME_R = 0 # Обработчик команды /search def search_button3(update): update.message.reply_text("Введите название на русском языке:") return NAME_R # Обработка введенного жанра def search_name_r(update, context): # Отправляем пользователю сообщение о том, что бот начал поиск update.message.reply_text("Подождите, идет поиск...") # Получаем введенный жанр name_r = update.message.text # Подключаемся к базе данных conn = sqlite3.connect('NarutoWorld.db') cur = conn.cursor() # Получаем данные по жанру из таблицы cur.execute("SELECT * FROM Profile WHERE name_r=?", (name_r,)) results = cur.fetchall() # Удаляем сообщение о том, что бот начал поиск context.bot.delete_message(chat_id=update.message.chat_id, message_id=update.message.message_id) # Отправляем результат пользователю if len(results) == 0: update.message.reply_text("По вашему запросу ничего не найдено.") else: for row in results: update.message.reply_text(f"Название на русском: {row[0]}\nГод выпуска: {row[1]}\nЖанр: {row[2]}\nКоличество эпизодов: {row[3]}\nРейтинг: {row[4]}\nИзображение: {row[5]}\nОписание: {row[6]}") # Закрываем соединение с базой данных conn.close() # Состояния диалога NAME_E = 0 # Обработчик команды /search def search_button4(update): # Отправляем пользователю сообщение о том, что бот начал поиск update.message.reply_text("Подождите, идет поиск...") # Обработка введенного жанра def search_name_e(update, context): # Показываем пользователю, что бот что-то делает context.bot.send_chat_action(chat_id=update.effective_chat.id, action=CommandHandler.TYPING) # Получаем введенный жанр name_e = update.message.text # Подключаемся к базе данных conn = sqlite3.connect('NarutoWorld.db') cur = conn.cursor() # Получаем данные по жанру из таблицы cur.execute("SELECT * FROM Profile WHERE name_e=?", (name_e,)) results = cur.fetchall() # Удаляем сообщение о том, что бот начал поиск context.bot.delete_message(chat_id=update.message.chat_id, message_id=update.message.message_id) # Отправляем результат пользователю if len(results) == 0: update.message.reply_text("По вашему запросу ничего не найдено.") else: for row in results: update.message.reply_text(f"Название на английском: {row[0]}\nГод выпуска: {row[1]}\nЖанр: {row[2]}\nКоличество эпизодов: {row[3]}\nРейтинг: {row[4]}\nИзображение: {row[5]}\nОписание: {row[6]}") # Закрываем соединение с базой данных conn.close() # функция-обработчик для нажатия кнопки "Рандомное аниме" def button5(update, context): # отправляем пользователю сообщение с клавиатурой context.bot.send_message(chat_id=update.effective_chat.id, text="Нажмите кнопку \"Рандомное аниме\", чтобы получить случайное аниме.", markup=markup) def search_random(update, context): # Показываем пользователю, что бот что-то делает context.bot.send_chat_action(chat_id=update.effective_chat.id, action=CommandHandler.TYPING) # Подключаемся к базе данных conn = sqlite3.connect('NarutoWorld.db') cur = conn.cursor() # выбираем случайное аниме из списка cur.execute("SELECT * FROM Profile ORDER BY RANDOM() LIMIT 1") result = cur.fetchone() # отправляем пользователю сообщение с выбранным аниме context.bot.send_message(chat_id=update.message.chat_id, text=f"Случайное аниме: {result[1]}") # Закрываем соединение с базой данных conn.close() # Основная функция def main(): # создание бота updater = Updater("6026074224:AAF78rEoWNcKJqVVR1RfkrxhE_T1JG2jFm0", use_context=True) # получение диспетчера команд dp = updater.dispatcher # добавление обработчиков команд dp.add_handler(CommandHandler('start', start)) dp.add_handler(CommandHandler('/search_genre', search_button1)) dp.add_handler(CommandHandler('/search_release_date', search_button2)) dp.add_handler(CommandHandler('/search_name_r', search_button3)) dp.add_handler(CommandHandler('/search_name_e', search_button4)) dp.add_handler(CommandHandler('/search_random', button5)) dp.add_handler(MessageHandler(filters.text & ~filters.command, search_genre), GENRE) dp.add_handler(MessageHandler(filters.text & ~filters.command, search_release_date), YEAR) dp.add_handler(MessageHandler(filters.text & ~filters.command, search_name_r), NAME_R) dp.add_handler(MessageHandler(filters.text & ~filters.command, search_name_e), NAME_E) dp.add_handler(CommandHandler('/random_anime', search_random)) # добавление обработчика неизвестных команд def unknown(update, context): context.bot.send_message(chat_id=update.message.chat_id, text="Команда не найдена.") dp.add_handler(CommandHandler('unknown', unknown)) # запуск бота updater.start_polling() # остановка бота при нажатии Ctrl+C updater.idle() if __name__ == '__main__': database.create_table() main()

напиши код телеграмм бота у которого есть 5 кнопок(Поиск по названию(рус), Поиск по названию(англ), Поиск по жанру, Поиск по году выпуска, Рандомное аниме) Суть кода должна быть в том чтобы пользователь нажимал на кнопку Поиск по названию(рус) и открывалось аниме по его запросу из таблицы Profile, или нажимал на кнопку Поиск по жанру и открывалось аниме по его запросу из таблицы Anime, или нажимал на кнопку Рандомное аниме и открывалось случайное аниме из таблицы Profile

import sqlite3 from telegram import ReplyKeyboardMarkup, KeyboardButton from telegram.ext import Updater, CommandHandler, MessageHandler, Filters # Подключение к базе данных conn = sqlite3.connect('naruto_world.db') cursor = conn.cursor() # Создание кнопок для клавиатуры reply_keyboard = [['Поиск по названию(рус)', 'Поиск по названию(англ)', 'Поиск по жанру', 'Поиск по году выпуска', 'Рандомное аниме']] markup = ReplyKeyboardMarkup(reply_keyboard, one_time_keyboard=True) # Функция для обработки команды /start def start(update, context): update.message.reply_text('Привет! Я аниме-бот. Выбери кнопку', reply_markup=markup) # Функция для обработки текстовых сообщений def search(update, context): query = update.message.text conn = sqlite3.connect('naruto_world.db') cursor = conn.cursor() if 'рус' in query: cursor.execute(f"SELECT * FROM Profile WHERE name_r LIKE '%{query}%'") elif 'англ' in query: cursor.execute(f"SELECT * FROM Profile WHERE name_e LIKE '%{query}%'") elif 'жанр' in query: cursor.execute(f"SELECT * FROM Anime WHERE genre LIKE '%{query}%'") elif 'год' in query: cursor.execute(f"SELECT * FROM Anime WHERE year = {query}") else: update.message.reply_text('Извините, я не могу понять ваш запрос. Попробуйте еще раз.') return result = cursor.fetchall() if len(result) == 0: update.message.reply_text('К сожалению, по вашему запросу ничего не найдено') return for row in result: update.message.reply_text(f'{row[1]} ({row[2]}) - {row[3]}') # command handler for /random_anime def random_anime(update, context): # select a random anime from the database and send it to the user cursor.execute("SELECT name FROM Anime ORDER BY RANDOM() LIMIT 1") anime = cursor.fetchone()[0] update.message.reply_text(f'Random anime: {anime}') # Функция для обработки неизвестных команд def unknown(update, context): update.message.reply_text("Извините, я не понимаю эту команду.") # Создание и запуск бота def main(): updater = Updater('6026074224:AAF78rEoWNcKJqVVR1RfkrxhE_T1JG2jFm0', use_context=True) dp = updater.dispatcher dp.add_handler(CommandHandler('start', start)) dp.add_handler(MessageHandler(Filters.text, search)) dp.add_handler(MessageHandler(Filters.command, unknown)) dp.add_handler(CommandHandler('random_anime', random_anime)) updater.start_polling() updater.idle() if __name__ == '__main__': main()

import sqlite3 from telegram.ext import Updater, CommandHandler, MessageHandler, Filters # Подключение к базе данных conn = sqlite3.connect('Naruto_World.db', check_same_thread=False) cursor = conn.cursor() # Функция для поиска аниме в таблице Anime по названию на русском или английском языках def search_anime_name(name_r, lang): query = f"SELECT anime_name_r, release_date, genre, episodes_number, rating FROM Anime WHERE {lang} LIKE '%{name_r}%'" cursor.execute(query) result = cursor.fetchall() return result # Функция для поиска аниме в таблице Anime по названию на русском или английском языках def search_anime(name_e, lang): query = f"SELECT anime_name_e, release_date, genre, episodes_number, rating FROM Anime WHERE {lang} LIKE '%{name_e}%'" cursor.execute(query) result = cursor.fetchall() return result # Функция для поиска аниме в таблице Anime по названию на русском или английском языках def search_anime_genre(genre, lang): query = f"SELECT anime_name_r, anime_name_e, release_date, genre, episodes_number, rating FROM Anime WHERE {lang} LIKE ?" cursor.execute(query, ('%' + genre + '%',)) result = cursor.fetchall() return result # Функция для поиска аниме в таблице Anime по названию на русском или английском языках def search_anime_year(year, lang): query = f"SELECT anime_name_r, anime_name_e, release_date, genre, episodes_number, rating FROM Anime WHERE {lang} LIKE ?" cursor.execute(query, ('%' + year + '%',)) result = cursor.fetchall() return result # Функция для выбора случайного аниме из таблицы Anime def get_random_anime(): query = f"SELECT anime_name_r, anime_name_e, release_date, genre, episodes_number, rating FROM Anime ORDER BY RANDOM() LIMIT 1" cursor.execute(query) result = cursor.fetchone() return result # Обработчик команды /start def start(update, context): context.bot.send_message(chat_id=update.effective_chat.id, text="Привет! Я аниме-бот. Введи /help для получения списка команд.") # Обработчик команды /help def help(update, context): context.bot.send_message(chat_id=update.effective_chat.id, text="Список команд:\n/search_rus - Поиск по названию(рус)\n/search_eng - Поиск по названию(англ)\n/search_genre - Поиск по жанру\n/search_year - Поиск по году выпуска\n/random_anime - Рандомное аниме") # Обработчик команды /search_rus def search_rus(update, context): context.bot.send_message(chat_id=update.effective_chat.id, text="Введите название аниме на русском языке:") context.user_data['lang'] = 'anime_name_r' # Обработчик команды /search_eng def search_eng(update, context): context.bot.send_message(chat_id=update.effective_chat.id, text="Введите название аниме на английском языке:") context.user_data['lang'] = 'anime_name_e' # Обработчик команды /search_genre def search_genre(update, context): context.bot.send_message(chat_id=update.effective_chat.id, text="Введите жанр аниме:") context.user_data['lang'] = 'genre' # Обработчик команды /search_year def search_year(update, context): context.bot.send_message(chat_id=update.effective_chat.id, text="Введите год выпуска аниме:") context.user_data['lang'] = 'release_date' # Обработчик сообщений с названием аниме def process_search(update, context): value = update.message.text if 'lang' in context.user_data: lang = context.user_data['lang'] result = search_anime_name(value, lang) if result: formatted_results = [f"Название: {result[i][0]}\nГод выпуска: {result[i][1]}\nЖанр: {result[i][2]}\nКоличество эпизодов: {result[i][3]}\nРейтинг: {result[i][4]}" for i in range(len(result))] context.bot.send_message(chat_id=update.effective_chat.id, text=f"Результаты поиска:\n\n" + "\n\n".join(formatted_results)) else: context.bot.send_message(chat_id=update.effective_chat.id, text="Ничего не найдено.") elif 'lang' in context.user_data: lang = context.user_data['lang'] result = search_anime(lang, value) if result: formatted_results = [f"Название на русском: {result[i][0]}\nНазвание на английском: {result[i][1]}\nГод выпуска: {result[i][2]}\nЖанр: {result[i][3]}\nКоличество эпизодов: {result[i][4]}\nРейтинг: {result[i][5]}" for i in range(len(result))] context.bot.send_message(chat_id=update.effective_chat.id, text=f"Результаты поиска:\n\n" + "\n\n".join(formatted_results)) else: context.bot.send_message(chat_id=update.effective_chat.id, text="Ничего не найдено.") else: context.bot.send_message(chat_id=update.effective_chat.id, text="Ничего не найдено.") # Обработчик команды /random_anime def random_anime(update, context): result = get_random_anime() if result: formatted_result = f"Название на русском: {result[0]}\nНазвание на английском: {result[1]}\nГод выпуска: {result[2]}\nЖанр: {result[3]}\nКоличество эпизодов: {result[4]}\nРейтинг: {result[5]}" context.bot.send_message(chat_id=update.effective_chat.id, text=f"Случайное аниме:\n{formatted_result}") else: context.bot.send_message(chat_id=update.effective_chat.id, text="Ничего не найдено.") # Создание и запуск бота def main(): updater = Updater(token='6013058301:AAE8qfFm_rbvfsXZ6GruwSAF_tmvwtU5bDM', use_context=True) dispatcher = updater.dispatcher dispatcher.add_handler(CommandHandler('start', start)) dispatcher.add_handler(CommandHandler('help', help)) dispatcher.add_handler(CommandHandler('search_rus', search_rus)) dispatcher.add_handler(CommandHandler('search_eng', search_eng)) dispatcher.add_handler(CommandHandler('search_genre', search_genre)) dispatcher.add_handler(CommandHandler('search_year', search_year)) dispatcher.add_handler(CommandHandler('random_anime', random_anime)) dispatcher.add_handler(MessageHandler(Filters.text & (~Filters.command), process_search)) updater.start_polling() updater.idle() if __name__ == '__main__': main()

Соседние файлы в папке 2