@Romeo558
Продолжающий программист на python.

Как организовать прогресс бар в дискорд боте?

У меня есть функция в боте, которая занимает некоторое время(например загрузка какого-либо файла или выполнение какой-либо сложной операции), и мне нужно выводить прогресс на экран.
Я использовал стандартную библиотеку progress в python, но как оказалось, я не смог получить строку с прогрессом, чтобы в дальнейшем использовать её.
import time

from progress.bar import *

iterations = 40
with Bar('progress', max=iterations) as bar:
    for _ in range(iterations):
        time.sleep(0.1)
        bar.next()


Вопрос: как вывести прогресс не в консоль, а в сообщение дискорд бота(обновление сообщения)
Возможно вопрос - дубликат, но буду признателен, если напишите что мне делать в моей ситуации.

PS: Про tqdm слышал, можете и с ним ответить, если хотите.
  • Вопрос задан
  • 314 просмотров
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Короткий ответ: не надо так делать.

Длинный ответ: можно отправить сообщение и затем его через равные промежутки редактировать. Но это будет не то использование API, которое предполагает Discord. Можно упереться в лимиты API. Можно получить предписание при попытке review бота. Библиотеки типа tqdm обычно предполагают вывод прогрессбара в консоль, где нет никаких ограничений. И они умеют терминальную псевдографику, которая в Discord недоступна, так там нет терминала.

Правильный Discord-way - это slash-команды с interaction, выполнение команды или нажатие на кнопку приводит к запуску interaction, в процессе которого пользователь видит сообщение с тремя мигающими кружочками, а потом финальное сообщение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы