Ответы пользователя по тегу AIOgram
  • Не импортирует router из другого файла проекта в aiogram 3. В чём ошибка?

    Сделай так в этом месте
    @router.message(Reg.number)
    async def two_three(message: Message, bot: Bot, state: FSMContext):
        await state.update_data(number=message.text)
        data=await state.get_data()
    
        await bot.send_message(chat_id='нужный айди', text=f'Спасибо, регистрация завершена. \n Имя: {data["name"]} \n Номер: {data ["number"]}')
        await state.clear()


    И удали это
    from run import bot
    Ответ написан
    Комментировать
  • Aiogram: почему в Telegram не визуализируется voice сообщение?

    EntireMusic
    @EntireMusic Автор вопроса
    (:
    Из документации:
    For this to work, your audio must be in an .OGG file encoded with OPUS

    То есть, чтобы войс визуализировался, нужно отправлять его в формате .OGG, тогда и продолжительность будет отображаться корректно. А чтобы отображалась продолжительность (duration) при отправке других форматов, нужно явно её указать при отправке.

    Важное дополнение для Windows:
    1. Скачайте ffmpeg и распакуйте
    2. Добавьте путь в Path
    3. Функция на Python:
    import subprocess
    import io
    
    def mp3_to_ogg(filename, path=''):
        with open(f'{path}{filename}.mp3', 'rb') as input_file, open(f'{path}{filename}.ogg', 'wb') as output_file:
            mp3_io = io.BytesIO(input_file.read())
            ffmpeg_command = ['ffmpeg', '-i', 'pipe:0', '-c:a', 'libopus', '-f', 'ogg', 'pipe:1']
            result = subprocess.run(ffmpeg_command, input=mp3_io.read(), capture_output=True)
            ogg_bytes = result.stdout
            output_file.write(ogg_bytes)

    *вы можете изменить функцию, например добавив путь к файлам, использовав временные файлы и т.д.
    Ответ написан
    1 комментарий