Advertisement
viking_unet

Untitled

Jun 11th, 2020
958
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.88 KB | None | 0 0
  1. import telebot
  2. import config
  3. import random
  4.  
  5. from telebot import types
  6. import requests
  7. from bs4 import BeautifulSoup as BS
  8.  
  9. # парсер погоды по имени города
  10. def get_weather(city):
  11.  
  12.     r = requests.get('https://sinoptik.ua/погода-%s' % city.lower())
  13.     html = BS(r.content, 'html.parser')
  14.      
  15.     for el in html.select('#content'):
  16.         t_min = el.select('.temperature .min')[0].text
  17.         t_max = el.select('.temperature .max')[0].text
  18.         text = el.select('.wDescription .description')[0].text
  19.         # вероятно возвратит значения за первый день (сегодня) из недельного
  20.         return '%s %s %s' % (t_min, t_max, text)
  21.  
  22. def prepare_main_keyboard():
  23.     markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
  24.     item1 = types.KeyboardButton("🎲 Рандомный экзаменационный вопрос")
  25.     item2 = types.KeyboardButton("😊 Нажми сюда перед экзаменом")
  26.     item3 = types.KeyboardButton("⏱ Дата экзамена")
  27.     item4 = types.KeyboardButton("☁ Погода в Гродно")
  28.     markup.add(item1, item2, item3, item4)
  29.     return markup
  30.  
  31. bot = telebot.TeleBot(config.TOKEN)
  32.  
  33. @bot.message_handler(commands=['start'])
  34. def welcome(message):
  35.     sti = open('static/welcome.webp', 'rb')
  36.     bot.send_sticker(message.chat.id, sti)
  37.     bot.send_message(message.chat.id,"Здарова студент!, {0.first_name}!\nЯ - <b>{1.first_name}</b>, бот созданный чтобы  дать тебе экзаменационный вопрос.".format(message.from_user, bot.get_me()),
  38.                      parse_mode='html', reply_markup=prepare_main_keyboard())
  39. city_list = ['Концептуальные и методологические основания Digital социологии', 'Объект и предмет Диджетал социологии', 'Основные термины, понятия и методы Дитжитал социологии']
  40.  
  41. @bot.message_handler(content_types=['text'])
  42. def lalala(message):
  43.     if message.chat.type == 'private':
  44.         if message.text == '⏱ Дата экзамена':
  45.             return bot.send_message(message.chat.id, '[Cубота,13 числа в 16 40,Октябрьская 5,209 аудитория.Экзамен проходит  письменной форме]')
  46.         if message.text == '🎲 Рандомный экзаменационный вопрос':
  47.             return bot.send_message(message.chat.id, str(random.choice(city_list)))
  48.         elif message.text == '😊 Нажми сюда перед экзаменом':
  49.             markup = types.InlineKeyboardMarkup(row_width=2)
  50.             item1 = types.InlineKeyboardButton("Да", callback_data='yes')
  51.             item2 = types.InlineKeyboardButton("Нет", callback_data='no')
  52.             markup.add(item1, item2)
  53.             return bot.send_message(message.chat.id, 'Готов к экзамену?', reply_markup=markup)
  54.         elif message.text == '☁ Погода в Гродно':
  55.             return bot.send_message(message.chat.id, get_weather('Гродно'))
  56.         else:
  57.             return bot.send_message(message.chat.id, 'Я не знаю что ответить 😢')
  58.  
  59. @bot.callback_query_handler(func=lambda call: True)
  60. def callback_inline(call):
  61.     try:
  62.         if call.message:
  63.             if call.data == 'yes':
  64.                 return bot.send_message(call.message.chat.id, 'Тогда удачи тебе 😊', reply_markup=prepare_main_keyboard())
  65.             elif call.data == 'no':
  66.                 return bot.send_message(call.message.chat.id, 'Я думаю ты справишься,вопросы не сложные 😢', reply_markup=prepare_main_keyboard())
  67.         else:
  68.             return bot.send_message(call.message.chat.id, 'не понял, повтори')
  69.     except Exception as err:
  70.         print(err)
  71.  
  72. # RUN
  73. bot.polling(none_stop=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement