/
waitingstarman
/
TownTravelPythonBot
Обзор
Документация
Войти
/
waitingstarman
/
TownTravelPythonBot
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
bot
64 строки
4 KB
waitingstarman
create bot
07 май 2024, 15:12
07 май 2024, 15:12
4c85c67
Код
Авторство
О чём код?
import telebot from telebot import types import requests TOKEN = '7058861183:AAEtDlU-RsIeEeKWAdi8Ols_E5pa_O6uydg' WEB_APP_URL = 'https://script.google.com/macros/s/AKfycbz86sZOxA4Fb0YZ8PWp4G6yHRjDX5jXLnErjbJHF5fC_NGc9ZylzK3mlSeiaIGTRAmc/exec' bot = telebot.TeleBot(TOKEN) # Генерация клавиатур def generate_keyboard(buttons, row_width=2, back_button=True): keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=row_width) for button in buttons: keyboard.add(types.KeyboardButton(button)) if back_button: keyboard.add(types.KeyboardButton('Назад')) return keyboard # Обработка команды start @bot.message_handler(commands=['start']) def send_welcome(message): welcome_text = "Привет! Я - прототип бота TownTravel и я точно знаю, как тебе хорошо провести время в Москве!" bot.send_message(message.chat.id, welcome_text, reply_markup=generate_keyboard(['Старт', 'Наши Соц Сети', 'Помощь'], row_width=3, back_button=False)) # Обработка кнопки Назад @bot.message_handler(func=lambda message: message.text == 'Назад') def handle_back(message): send_welcome(message) # Основная логика бота @bot.message_handler(func=lambda message: True) def handle_message(message): if message.text == 'Старт': bot.send_message(message.chat.id, "Выбери, что тебя интересует сейчас", reply_markup=generate_keyboard(['События Москвы', 'Маршруты'])) elif message.text == 'Наши Соц Сети': links = { 'ВКонтакте': "https://vk.com/towntravell", 'Инстаграм': "https://www.instagram.com/yourtowntravel?igsh=NGVhN2U2NjQ0Yg==&utm_source=qr", 'Телеграм': "https://t.me/towntravelcom" } bot.send_message(message.chat.id, "Выберите социальную сеть:", reply_markup=generate_keyboard(['ВКонтакте', 'Инстаграм', 'Телеграм'], row_width=1)) elif message.text in ['ВКонтакте', 'Инстаграм', 'Телеграм']: bot.send_message(message.chat.id, links[message.text], reply_markup=generate_keyboard(['Наши Соц Сети'], back_button=True)) elif message.text == 'Помощь': bot.send_message(message.chat.id, "За помощью обратитесь к @waitingstarman", reply_markup=generate_keyboard(['Старт'], back_button=False)) elif message.text == 'Маршруты': bot.send_message(message.chat.id, "Ой, эта функция ещё не добавлена(", reply_markup=generate_keyboard(['Старт'], back_button=False)) elif message.text == 'События Москвы': bot.send_message(message.chat.id, "Выбери: платные или бесплатные?", reply_markup=generate_keyboard(['Платные', 'Бесплатные'])) elif message.text in ['Платные', 'Бесплатные']: bot.send_message(message.chat.id, "Выбери интересующую тебя тему", reply_markup=generate_keyboard(['Развлечения', 'Культура', 'Наука и Технологии'])) elif message.text in ['Развлечения', 'Культура', 'Наука и Технологии']: # Здесь выполняется запрос к Google Apps Script try: response = requests.get(f"{WEB_APP_URL}?type={message.text}") if response.status_code == 200: data = response.json() events_info = "\n".join([f"{event['name']}: {event['date']}" for event in data]) bot.send_message(message.chat.id, "События:\n" + events_info) else: bot.send_message(message.chat.id, "Произошла ошибка при получении данных.") except Exception as e: bot.send_message(message.chat.id, f"Произошла ошибка: {e}") bot.infinity_polling()