• Как сразу добавить информацию в хранилище State (aiogram)?

    @i_ikigai
    class reg(StatesGroup):
        name = State()
        fname = State()
        age = State()
    
    
    @dp.message_handler(commands="reg", state="*")
    async def name_step(message: types.Message, state: FSMContext):
        await message.answer(text='Напиши имя ')
        await reg.name.set()
    
    
    @dp.message_handler(state=reg.name, content_types=types.ContentTypes.TEXT)
    async def fname_step(message: types.Message, state: FSMContext):
        if any(map(str.isdigit, message.text)):
            await message.reply("Пожалуйста напишите свое имя")
            return
        await state.update_data(name_user=message.text.title())
        await message.answer(text='Напиши фамилию ')
        await reg.fname.set()
    
    
    @dp.message_handler(state=reg.fname, content_types=types.ContentTypes.TEXT)
    async def age_step(message: types.Message, state: FSMContext):
        if any(map(str.isdigit, message.text)):
            await message.reply("Пожалуйста напишите свою фамилию")
            return
        await message.answer(text='Напиши возраст ')
        await state.update_data(fname_user=message.text.title())
        await reg.age.set()
    
    
    @dp.message_handler(state=reg.age, content_types=types.ContentTypes.TEXT)
    async def res_step(message: types.Message, state: FSMContext):
        if not any(map(str.isdigit, message.text)):
            await message.reply("Пожалуйста введите свой возраст")
            return
        await state.update_data(age_user=message.text.lower())
        user_data = await state.get_data()
        await state.finish()

    в моем коде в user_data записаны 3 сообщения пользователя в словарь. Оттуда их просто получать через обращение f'{user_data[name_user}}' например
    Разобрался че к чему отсюда https://mastergroosha.github.io/telegram-tutorial/...
    В ссылках на гитхаб есть рабочий пример, там он более полный и по нему проще понять
    Ответ написан
    1 комментарий
  • Система мута с таймером для бота-модератора. Как можно реализовать?

    SoreMix
    @SoreMix
    yellow
    А зачем все базы данных, отсчеты таймеров и тд, если у restrictChatMember есть параметр until_date, который отвечает за время блокировки? При достижении времени в until_date ограничения с пользователя снимаются
    Ответ написан
    1 комментарий
  • Как избежать ошибки при парсинге Json файла?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Видно же, что response['weather'] - это массив, поэтому:
    weather = response['weather'][0]['main']

    TypeError: list indices must be integers

    Логично, речь про индексы массива, они могут быть только числовые.
    Ответ написан
    4 комментария