Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import telebot
- import requests
- APPID = 'd699d894ac2c53930be1ee0df5f8d64d'
- TOKEN = '833600167:AAFs3BiDmCGOc_kTqFyssj0nUmrOnT-wr9Y'
- bot = telebot.TeleBot(TOKEN)
- cities = {"абакан": "Abakan",
- "альметьевск": "Almetyevsk",
- "анадырь": "Anadyr",
- "анапа": "Anapa",
- "архангельск": "Arkhangelsk",
- "астрахань": "Astrakhan",
- "барнаул": "Barnaul",
- "белгород": "Belgorod",
- "беслан": "Beslan",
- "бийск": "Biysk",
- "биробиджан": "Birobidzhan",
- "благовещенск": "Blagoveshchensk",
- "бологое": "Bologoye",
- "брянск": "Bryansk",
- "великий новгород": "Velikiy Novgorod",
- "великий устюг": "Velikiy Ustyug",
- "владивосток": "Vladivostok",
- "владикавказ": "Vladikavkaz",
- "владимир": "Vladimir",
- "волгоград": "Volgograd",
- "вологда": "Vologda",
- "воркута": "Vorkuta",
- "воронеж": "Voronezh",
- "гатчина": "Gatchina",
- "гдов": "Gdov",
- "геленджик": "Gelendzhik",
- "горно-алтайск": "Gorno-Altaysk",
- "грозный": "Grozny",
- "гудермес": "Gudermes",
- "гусь-хрустальный": "Gus-Khrustalny",
- "дзержинск": "Dzerzhinsk",
- "дмитров": "Dmitrov",
- "дубна": "Dubna",
- "ейск": "Yeysk",
- "екатеринбург": "Yekaterinburg",
- "елабуга": "Yelabuga",
- "елец": "Yelets",
- "ессентуки": "Yessentuki",
- "златоуст": "Zlatoust",
- "иваново": "Ivanovo",
- "ижевск": "Izhevsk",
- "иркутск": "Irkutsk",
- "йошкар-ола": "Yoshkar-Ola",
- "казань": "Kazan",
- "калининград": "Kaliningrad",
- "калуга": "Kaluga",
- "кемерово": "Kemerovo",
- "кисловодск": "Kislovodsk",
- "комсомольск-на-амуре": "Komsomolsk-on-Amur",
- "котлас": "Kotlas",
- "краснодар": "Krasnodar",
- "красноярск": "Krasnoyarsk",
- "курган": "Kurgan",
- "курск": "Kursk",
- "кызыл": "Kyzyl",
- "лениногорск": "Leninogorsk",
- "ленск": "Lensk",
- "липецк": "Lipetsk",
- "луга": "Luga",
- "любань": "Lyuban",
- "люберцы": "Lyubertsy",
- "магадан": "Magadan",
- "майкоп": "Maykop",
- "махачкала": "Makhachkala",
- "миасс": "Miass",
- "минеральные воды": " Mineralnye Vody",
- "мирный": "Mirny",
- "москва": "Moscow",
- "мурманск": "Murmansk",
- "муром": "Murom",
- "мытищи": "Mytishchi",
- "набережные челны": " Naberezhnye Chelny",
- "надым": "Nadym",
- "нальчик": "Nalchik",
- "назрань": "Nazran",
- "нарьян-мар": "Naryan-Mar",
- "находка": "Nakhodka",
- "нижневартовск": "Nizhnevartovsk",
- "нижнекамск": "Nizhnekamsk",
- "нижний новгород": "Nizhny Novgorod",
- "нижний тагил": "Nizhny Tagil",
- "новокузнецк": "Novokuznetsk",
- "новосибирск": "Novosibirsk",
- "новый уренгой": "Novy Urengoy",
- "норильск": "Norilsk",
- "обнинск": "Obninsk",
- "октябрьский": "Oktyabrsky",
- "омск": "Omsk",
- "оренбург": "Orenburg",
- "орехово-зуево": "Orekhovo-Zuyevo",
- "орёл": "Oryol",
- "пенза": "Penza",
- "пермь": "Perm",
- "петрозаводск": "Petrozavodsk",
- "петропавловск-камчатский": "Petropavlovsk-Kamchatsky",
- "подольск": "Podolsk",
- "псков": "Pskov",
- "пятигорск": "Pyatigorsk",
- "ростов-на-дону": "Rostov-on-Don",
- "рыбинск": "Rybinsk",
- "рязань": "Ryazan",
- "салехард": "Salekhard",
- "самара": "Samara",
- "санкт-петербург": "Saint Petersburg",
- "саранск": "Saransk",
- "саратов": "Saratov",
- "северодвинск": "Severodvinsk",
- "смоленск": "Smolensk",
- "соль-илецк": "Sol-Iletsk",
- "сочи": "Sochi",
- "ставрополь": "Stavropol",
- "сургут": "Surgut",
- "сыктывкар": "Syktyvkar",
- "тамбов": "Tambov",
- "тверь": "Tver",
- "тобольск": "Tobolsk",
- "тольятти": "Tolyatti",
- "томск": "Tomsk",
- "туапсе": "Tuapse",
- "тула": "Tula",
- "тында": "Tynda",
- "тюмень": "Tyumen",
- "улан-уде": "Ulan-Ude",
- "ульяновск": "Ulyanovsk",
- "уфа": "Ufa",
- "хабаровск": "Khabarovsk",
- "ханты-мансийск": "Khanty-Mansiysk",
- "чебаркуль": "Chebarkul",
- "чебоксары": "Cheboksary",
- "челябинск": "Chelyabinsk",
- "череповец": "Cherepovets",
- "черкесск": "Cherkessk",
- "чистополь": "Chistopol",
- "чита": "Chita",
- "шадринск": "Shadrinsk",
- "шатура": "Shatura",
- "шуя": "Shuya",
- "элиста": "Elista",
- "энгельс": "Engels",
- "южно-сахалинск": "Yuzhno-Sakhalinsk",
- "якутск": "Yakutsk",
- "ярославль": "Yaroslavl"}
- def weather(city):
- try:
- res = requests.get("http://api.openweathermap.org/data/2.5/weather",
- params={'q': (city + ',ru'), 'units': 'metric', 'lang': 'ru', 'APPID': APPID})
- data = res.json()
- answer = str(data['weather'][0]['description']) + '\n' + str(data['main']['temp']) + ' ℃'
- except Exception as e:
- answer = "Exception (weather): " + str(e)
- return answer
- def coord(lat, lon):
- try:
- res = requests.get("http://api.openweathermap.org/data/2.5/weather",
- params={'lat': str(lat), 'lon': str(lon), 'units': 'metric', 'lang': 'ru', 'APPID': APPID})
- data = res.json()
- answer = str(data['weather'][0]['description']) + '\n' + str(data['main']['temp']) + ' ℃' + '\n' + str(data['name'])
- except Exception as e:
- answer = "Exception (weather): " + str(e)
- return answer
- @bot.message_handler(commands=['start'])
- def handle_start(message):
- user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
- user_markup.row('/start', '/stop')
- #user_markup.row('Погода')
- bot.send_message(message.from_user.id, "Напишите нужный вам город или отправьте геопозицию и получите сводку погоды.", reply_markup = user_markup)
- @bot.message_handler(commands=['stop'])
- def handle_stop(message):
- hide_markup = telebot.types.ReplyKeyboardRemove()
- bot.send_message(message.from_user.id, "...", reply_markup = hide_markup)
- @bot.message_handler(content_types=['location'])
- def handle_location(message):
- answer = coord(message.location.latitude, message.location.longitude)
- bot.send_message(message.from_user.id, answer)
- @bot.message_handler(content_types=['text'])
- def handle_text(message):
- msgl = message.text.lower()
- # if msgl == "погода в москве":
- if msgl in cities:
- city = cities[msgl] #из словаря берем инглиш название и даем функции
- answer = weather(city)
- bot.send_message(message.from_user.id, answer)
- else:
- bot.send_message(message.chat.id, "города нет в списке")
- bot.polling(none_stop = True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement