Пишу телеграм-бота, после запуска выдает эту ошибку: "@dp.message_handler(commands=["start"]) TypeError: message_handler() missing 1 required positional argument: 'self'." Смотрел разные попытки решения проблемы, так ничего и не помогло.
Вот сам код:
import requests
import datetime
from config import tg_bot_token, open_weather_token
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
bot = Bot(token=tg_bot_token)
dp = Dispatcher
@dp.message_handler(commands=["start"])
async def get_weather(message: types.Message):
await message.reply("Привет! Напиши мне город, солнце)")
@dp.message_handler()
async def get_weather(message: types.Message):
try:
r = requests.get(
f"https://api.openweathermap.org/data/2.5/weather?q={message.text}&appid={open_weather_token}&units=metric"
)
data = r.json()
city = data["name"]
cur_weather = data["main"]["temp"]
humidity = data["main"]["humidity"]
pressure = data["main"]["pressure"]
wind = data["wind"]["speed"]
sunrise_time = datetime.datetime.fromtimestamp(data["sys"]["sunrise"])
sunset_time = datetime.datetime.fromtimestamp(data["sys"]["sunset"])
lenght_of_the_day = datetime.datetime.fromtimestamp(data["sys"]["sunset"]) - datetime.datetime.fromtimestamp(data["sys"]["sunrise"])
await message.reply(f"***{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}***\n"
f"Погода в городе:{city}\nТемпература:{cur_weather}°C\n"
f"Влажность:{humidity}\nДавление:{pressure} мм.рт.ст\n"
f"Ветер:{wind}\nВосход Солнца:{sunrise_time}\nЗаход солнца:{sunset_time}\n"
f"Продолжительность дня:{lenght_of_the_day}\n")
except:
await message.reply("Проверьте название города")
if __name__ == '__main__':
executor.start_polling(dp)