Индикатор выполнения в Moviepy для бота DiscordPython

Программы на Python
Anonymous
Индикатор выполнения в Moviepy для бота Discord

Сообщение Anonymous »


Я пытаюсь реализовать бот Discord, который отправляет ход видео, экспортированного через Python, Moviepy, и не знаю, как это сделать. Я подхожу к нему с помощью обратного вызова async def, но у меня это не работает, так как функция даже не вызывается регистратором, поскольку она асинхронная, есть какие-нибудь предложения?
сообщение = Нет асинхронная защита Progress_bar (бар, процент): печать (в процентах) глобальное сообщение await message.edit(content=f'Loading... {bar} ({percentage}/100)') класс MyBarLogger(ProgressBarLogger): защита __init__(сам): супер().__init__() self.percentage = 0 # Инициализировать процент асинхронное определение bars_callback (self, bar, attr, value, old_value = None): # Каждый раз, когда прогресс регистратора обновляется, эта функция вызывается self.percentage = (значение / self.bars[bar]['total']) * 100 defgenerate_loading_bar(прогресс, длина=20): bar_length = int (длина * прогресс) return '[' + '=' * длина_бара + '-' * (длина - длина_бара) + ']' total_iterations = 100 # При необходимости отрегулируйте общее количество итераций прогресс = self.percentage/total_iterations bar =gener_loading_bar(прогресс) ждут прогресс_бар (бар, self.percentage) асинхронная защита run_loading_bar (final_clip, выходной_путь): регистратор = MyBarLogger() с ThreadPoolExecutor() в качестве исполнителя: цикл = asyncio.get_event_loop() await Loop.run_in_executor(исполнитель, лямбда: Final_clip.write_videofile(output_path, threads=8, codec='libx264', audio_codec='aac', logger=logger)) Final_clip.close() @bot.tree.command(name="generate", описание="", гильдия=discord.Object(id=GUILD_ID)) асинхронная защитаgenerate_motivational_video_command(взаимодействие: discord.Interaction): глобальное сообщение сообщение = ожидайте взаимодействия.ответ.send_message('Загрузка...') Final_clip = VideoFileClip(r'video_path.mp4') дождитесь run_loading_bar (final_clip, 'test.mp4')

Вернуться в «Python»