Python:
import telebot
from telebot import *
from pyowm import OWM
import pyowm
from pyowm.utils.config import get_default_config
#Токен от BotFather
PanOpt = telebot.TeleBot('Токен')
#Приветственное сообщение (/start)
@PanOpt.message_handler(commands=["start"])
def start(message, res = False):
# Добавление клавиатуры
keyboard = types.ReplyKeyboardMarkup(row_width=3, resize_keyboard=True)
Sayhi = types.KeyboardButton('Привет!')
Weather = types.KeyboardButton('Погода')
Antivirus = types.KeyboardButton('Антивирус')
keyboard.add(Sayhi,Weather,Antivirus)
# Приветственное сообщение (/start)
PanOpt.send_message(message.chat.id, 'Кажется, контакт стабилен, чем я могу быть полезен?',
reply_markup = keyboard)
# Ответ пользователю на встроенные кнопки
@PanOpt.message_handler(content_types=["text"])
def answer_user(message):
if message.text == 'Привет!':
keyboard = types.InlineKeyboardMarkup(row_width=2)
Yesbutton = types.InlineKeyboardButton('Да',callback_data ='Yes')
Nobutton = types.InlineKeyboardButton('Нет',callback_data ='No')
keyboard.add(Yesbutton,Nobutton)
PanOpt.send_message(message.chat.id, 'Привет, землянин! Моё имя - ПанОптикум.\nЯ - бот, созданный упростить выполнение твоих земных задач!\nХочешь узнать что я умею?',
reply_markup = keyboard)
@PanOpt.callback_query_handler(func = lambda c: c.data == 'Yes' or c.data == 'No')
def more_information (call):
if call.data == 'Yes':
PanOpt.send_message(call.message.chat.id, 'Хоть я и прилетел на землю недавно, местные обитатели уже успели меня кое-чему научить:\n1)Предсказывать погоду\n2)Проверять файлы на вирусы')
if call.data == 'No':
PanOpt.send_message(call.message.chat.id, 'Надеюсь, ты сам разберёшься.\nВ любом случае - ещё заглядывай')
if message.text == 'Погода':
weather_keyboard = types.InlineKeyboardMarkup(row_width=1)
btn_yes = types.InlineKeyboardButton('Да', callback_data = 'Samara')
btn_no = types.InlineKeyboardButton('Другой город', callback_data= 'Another city')
weather_keyboard.add(btn_yes,btn_no)
config_dict = get_default_config()
config_dict['language'] = 'ru'
owm = OWM('Токен', config_dict) # Токен OpenWeatherMap
PanOpt.send_message(message.chat.id,'О, это я люблю!''\n'
'Когда-то я работал синоптиком у себя на планете, и могу сказать, довольно точно предсказывал погоду' '\n'
'Вы живёте в Самаре?', reply_markup = weather_keyboard)
@PanOpt.callback_query_handler(func = lambda c: c.data == 'Samara' or c.data == 'Another city')
def weather(call):
if call.data == 'Samara':
place = 'Самара'
mgr = owm.weather_manager()
observation = mgr.weather_at_place(place)
w = observation.weather
t = w.temperature("celsius")
t1 = t['temp']
t2 = t['feels_like']
t3 = t['temp_max']
t4 = t['temp_min']
wi = w.wind()['speed']
humi = w.humidity
cl = w.clouds
st = w.status
dt = w.detailed_status
ti = w.reference_time('iso')
pr = w.pressure['press']
vd = w.visibility_distance
PanOpt.send_message(call.message.chat.id, 'Погода в Самаре:''\n'
'\n'
+ 'Температура в данный момент: ' + str (t1) + '°C' '\n'
+ 'Максимальная температура: ' + str (t3) + '°C' '\n'
+ 'Минимальная температура: ' + str (t4) + '°C' '\n'
+ 'Ощущается как: ' + str (t2) + '°C' '\n'
+ '\n'
+ 'Скорость ветра: ' + str (wi) + ' м/с' '\n'
+ 'Влажность: ' + str (humi) + ' мм.рт.ст' '\n'
+ 'Статус: ' + str (dt))
if call.data == 'Another city':
PanOpt.send_message(message.chat.id, 'Введите нужный город:')
PanOpt.polling(none_stop = True)
Вложения
Последнее редактирование модератором: