from aiogram import Bot,Dispatcher,types
from aiogram.filters import Command, CommandStart
from aiogram.fsm.context import FSMContext
from aiogram.fsm.storage.memory import MemoryStorage
from aiogram.fsm.state import State, StatesGroup
from client.client_db import add_user
from aiogram.types import Message
from data.basic import get_start
from data.settings import settings
from client import client_db
from client.client_db import add_avito, add_username, add_name
import asyncio
import logging
bot = Bot(settings.bots.bot_token, parse_mode='HTML')
dp = Dispatcher()
class user_reg(StatesGroup):
id = State()
name = State()
username = State()
avito = State()
async def start_bot(bot: Bot):
await bot.send_message(settings.bots.admin_id, text='Бот запущен')
client_db.sql_start()
async def stop_bot(bot: Bot):
await bot.send_message(settings.bots.admin_id, text='Бот остановлен')
async def start():
logging.basicConfig(
level=logging.INFO, format='%(asctime)s - %(levelname)s - %(name)s'
'(%(filename)s).%(funcName)s(%(linemo)d) - %(message)s'
)
@dp.message_handler(state=user_reg.username)
async def add_username(message:types.Message, state=FSMContext):
chat_id=message.chat.id
await state.finish
add_username(message)
await bot.send_message(chat_id, 'Укажите свой профиль авито:')
await user_reg.avito.set()
await state.finish()
add_avito(message)
await bot.send_message(chat_id, f'Потом добавлю проверку.')
@dp.message_handler(commands=['start'])
async def add_avito(message:types.Message, state=FSMContext):
chat_id = message.chat.id
@dp.message_handler(commands=['start'])
async def start_msg(message:types.Message, state=FSMContext):
chat_id = message.chat.id
add_user(message)
add_name(message.from_user.first_name)
await bot.send_message(chat_id, f"Привет, сначала пройди регистрацию")
await user_reg.username.set()
##################### РЕГАЕМ ХЕНДЛЕРЫ #######################
dp.startup.register(start_bot, add_user())
dp.shutdown.register(stop_bot )
dp.message.register(get_start, Command(commands=['run']))
try:
await dp.start_polling(bot)
finally:
await bot.session.close()
if __name__ == '__main__':
asyncio.run(start())
Учусь аиограму 3.х. Даже не подозреваю в чем ошибка, вскод ни на что не жалуется и вроде бы всё правильно написано, списано с видеоурока.
Traceback (most recent call last):
File "C:\Users\Dell1\Desktop\testproj\main.py", line 41, in <module>
@dp.message_handler(state=user_reg.username)
^^^^^^^^^^^^^^^^^^
AttributeError: 'Dispatcher' object has no attribute 'message_handler'
Для продолжения нажмите любую клавишу . . .