Задать вопрос
  • Как сделать, чтобы после выбора в disnake.ui.StringSelect отображалось имя меню?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Нигде не могу найти функцию, чтобы возвращала в первоначальный вид меню после выбора.
    Потому что нет такой функции. Из первого меню создаете второе, из второго пересоздаете первое.

    Если использую edit_original_response то выводит ошибку.
    Если я правильно вас понял, вы после операций во втором сообщении хотите поправить первое. Второе о первом вообще ничего не знает. До вызова inter.response.send_message можно получить сообщение из inter.message, сохранить id и затем его отредактировать.
    Ответ написан
    3 комментария
  • Забивается ли память бота от некоторых активных классов?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Забивается. А что вы хотите делать с этой информацией?

    Для начала disnake.ui.View это класс для создания вью, а не ее представление.
    Далее если очень упрощенно вью состоит из id, childrens и timeout_task.
    - По id определяется что-за формочка нажата
    - В childrens хранятся коллбеки на все функции, которые должны быть вызваны при операциях со всеми элементами на ней
    - timeout_task это корутина, которая спит timeout секунд, а дальше прибивает вью.

    В питоне очистка памяти осуществляется через счетчик ссылок на объект и поиск циклических ссылок, поэтому естественно пока она не прибита на все это будут ссылки и следовательно они будут висеть в памяти.

    Я напомню, что discord.py в целом кэширует данные по командам, серверам, пользователям и сообщениям, чтобы уменьшить обращения к API дискорда, так что может просто памяти докинуть, а не лезть в эту кроличью нору?
    Ответ написан
    6 комментариев