# Telegram HlebetsBot
import pyowm
import telebot
import random
import config
from telebot import types
owm = pyowm.OWM('...', language = "ru")
bot = telebot.TeleBot(config.TOKEN)
@bot.message_handler(commands=['start'])
def welcome(message):
sti = open('/contents/sticker.webp', 'rb')
bot.send_sticker(message.chat.id, sti)
#keyboard
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton("Случайное число")
item2 = types.KeyboardButton("Погода")
markup.add(item1, item2)
bot.send_message(message.chat.id, "Привет, {0.first_name}!\nЯ - <b>{1.first_name}</b>, твой Телеграм асистент, есть вопрос обратись ко мне, я с радостью помогу.".format(message.from_user, bot.get_me()),
parse_mode = 'html', reply_markup = markup)
@bot.message_handler(content_types =['text'])
def lalala(message):
if message.chat.type == 'private':
if message.text == 'Случайное число':
bot.send_message(message.chat.id, str(random.randint(0, 100)))
elif message.text == 'Погода':
bot.send_message(message.chat.id, "Введите название города")
observation = owm.weather_at_place(message.text)
w = observation.get_weather()
temp = w.get_temperature('celsius')["temp"]
answer = "В " + message.text + " сейчас " + w.get_detailed_status() + "\n"
answer += "Температура в районе " + str(temp) + "\n\n"
if temp < 10:
answer += "Сейчас достаточно достаточно холодно, одень куртку"
elif temp < 20:
answer += "Сейчас прохладно, возьми что нибудь полегче чем куртка"
else:
answer += "Сейчас тепло, одень что нибудь легкое"
#bot.reply_to(message, message.)
bot.send_message(message.chat.id, answer)
# RUN
if __name__ == '__main__':
bot.polling( none_stop = True )
Ошибка из терминала:
Traceback (most recent call last):
File "telebot.py", line 10, in
bot = telebot.TeleBot(config.TOKEN)
AttributeError: module 'config' has no attribute 'TOKEN'
Коментарий к ошибке: файл config.py у меня есть в той же папке и токен тоже.
Что нужно с погодой:
При нажатии на кнопку погода спрашивает город но я не пойму как сделать так чтобы она считывала название города (которое напишет юзер) и говорила данные о погоде, а при ошибке выдавала что-то типа (город не найден).