Задать вопрос
@Tuniya4ec

Как решить следующую ошибку message_handler() missing 1 required positional argument: 'self'?

Пишу телеграм-бота, после запуска выдает эту ошибку: "@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)
  • Вопрос задан
  • 249 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы