Задать вопрос
  • Как вывести значок профиля в команде userinfo на библиотеке disnake?

    fenrir1121
    @fenrir1121
    Начни с документации
    Никак. Поля эмбеда не предусматривают вставку изображений, только изображения на весь эмбед в полях Image и Thumbnail.

    А так bool флаги имеющихся значков находятся у каждого пользователя в User.public_flags.
    Ответ написан
  • Существует ли WEB UI для запуска тестов в pytest?

    fenrir1121
    @fenrir1121
    Начни с документации
    В vs code это решается одним плагином, в pycharm это раньше было из коробки (последний раз использовал 2 года назад).
    При этом все это не особо нужно, т.к. удобнее запускать из консоли. Если у вас на тесты влияет nginx это какие-то странные интеграционные тесты, которые стоит разделять при помощи мaркеров.
    Ответ написан
  • Ошибки с discord.ext ipc, как исправить?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Перевести ошибку. От вас ожидается аргумент "клиент".

    Вообще в discord.ext есть только 2 модуля: commands и tasks.
    Если используете какой-то специфичный форк библиотеки, лучше связываться с автором.
    Единственная библиотека, которую я нашёл по фразе discord ipc 3 года как заброшена, а репозиторий в read-only.

    Собственно в репозитории, который вы приложили в issue все описано. Не стоит пытаться писать ботов по туториалам, особенно если им больше одного года.
    скрин issue
    6641050612054947943729.png
    Ответ написан
  • Как сделать чтобы кнопки работали после перезапуска бота?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    prostovladikxd ознакомьтесь с правилами ресурса. Поправьте код в вопросе, чтобы он стал читаемым для этого используйте кнопку </> в панели. В будущем старайтесь внимательней подходить к формулировкам и подкрепляйте их кодом: что еще за кнопки перед модальным окном, где этот код? Куда нужно передать параметр self.author? Почему у вас в вечной вьюхе нужен автор? Почему вы в момент создания не знаете данных?

    Отвечая на непосредственный вопрос: инструкция как сделать вечные кнопки есть в репозитории диснейка. По съеховшему коду не могу точно сказать, но вроде бы все корректно.

    Я бы рекомендовал вообще не иметь параметров. Вечная вьюха на то и вечная, что не должна пересоздаваться чтобы что-то в ней поменять. Или если в ней не нужно ничего менять зачем тогда параметры? Данные стоит хранить независимо в базе данных, а из вьюхи их читать. Да и имена полей намекают что эти данные стоило бы хранить в базе. В общем ощущение, что проблема у вас не с кнопками, но чтобы на это ответить нужно понимать что вы хотите.

    По коду который вы приложили повторно создается ощущение, что вам не нужны все эти параметры. Эти данные должны где-то храниться. Если не в базе данных, то в самом сообщении, к которому прикреплена кнопка.
    Ответ написан
    2 комментария
  • Как посмотреть, на каких серверах стоит мой бот?

    fenrir1121
    @fenrir1121
    Начни с документации
    Прочитать в bot.guilds
    Ответ написан
    Комментировать
  • Docker compose как обновить код локально?

    fenrir1121
    @fenrir1121
    Начни с документации
    Повторно собрать и запустить
    Ответ написан
  • Синхронизация команд Discord Bot | Pycord?

    fenrir1121
    @fenrir1121
    Начни с документации
    reload это перезагрузка уже загруженного.
    Стартовая загрузка выполняется через load_extension. Кроме того судя по self на скриншоте есть ощущение, что вы делаете это где-то не там.
    cogs_list = [ ... ]
    for cog in cogs_list:
        bot.load_extension(f'bot.{cog}')


    Инструкция по работе с когами у pycorda есть в документации.
    Ответ написан
  • Как отслеживать сколько человек провел времени в голосовом канале дискорд?

    fenrir1121
    @fenrir1121
    Начни с документации
    Если ищите готовых ботов это обычно делают все, которые начисляют опыт и всякие лвлы активности. Далеко ходить не надо это делает, например, Juniper.
    Если нужно чтобы был именно свой способ подсчёта, то нужен свой бот.
    Ответ написан
  • Как хранить id сообщений и аттрибуты viev`ов?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Научится работать с базами данных и хранить все данные там. Наиболее простой вариант - sqlite.
    Ответ написан
  • Как напечатать обратный апостроф "`" на клавиатуре 66%?

    fenrir1121
    @fenrir1121
    Начни с документации
    Для получения нормального ответа стоит хотя бы прикладывать что за клавиатура. Как нам угадать где у вас клавиша?

    На 60% клавиатурах обычно есть кнопка доп.слоя, где находятся все недостающие клавиши. Скажем у меня она на Pn+Shift+Esc.

    Если клавиатура какая-то жутко китайская и там этого нет, есть программы вроде Key Remapper, которые позволяют переназначить клавиши.
    Ответ написан
    Комментировать
  • Из за чего пишет "Неизвестная интеграция"?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Ropb4ik код нужно прикладывать в вопрос, а не в комментарии.

    У вас на второй строчке код вероятно падает с ошибкой voice_state = self.get_voice_state(guild_id). Я на 99% уверен, что в вашем классе нет такого метода. Чтобы ответить точно нужен весь код, но чаще всего в когах объект бота лежит в self.bot.
    Разберитесь почему вы не видите ошибки, потому что в консоль, где запущен бот должно все нужное приходить, если только вы их не глушите где-то выше.

    Ну и сразу по последующему коду замечу, что вы не можете вызывать дважды response, потому что ответ можно выдавать только один раз.
    Кроме того писать сообщение в духе "я сделаль" до того как реально что-то сделали дурной тон. Как минимум потому что по причине выше вы могли бы выдать сообщение и упасть с ошибкой на самом деле ничего не сделав.
    Ответ написан
    Комментировать
  • Передача аргумента в ответе от ТГ-бота?

    fenrir1121
    @fenrir1121
    Начни с документации
    Все верно делаете.
    Тут два подхода, либо при формировании сообщения куда-то записывать соответствие сообщения пользователю, либо в сообщении храните инфу о пользователе и парсить текст сообщения.
    Первый вариант по основательнее, второй вероятно по проще.
    Ответ написан
    2 комментария
  • Почему появляется ошибка «“)” syntax error»?

    fenrir1121
    @fenrir1121
    Начни с документации
    Потому что нужно читать ошибку, а затем число открывающих и закрывающих скобок, если за вас это не делает IDE.
    И не используйте f строки в sql запросах, на эту тему есть множество ответов.
    Ответ написан
    2 комментария
  • Сколько живет Refresh token при реализации OAuth2 авторизации через Discord?

    fenrir1121
    @fenrir1121
    Начни с документации
    А зачем это писать в документации? Там стандартный формат ответа. Смотрите значение в поле expires_in
    Ответ написан
    Комментировать
  • Передали права на сервер в дискорде через ратник, что делать?

    fenrir1121
    @fenrir1121
    Начни с документации
    поддержка дискорда может восстановить права на сервер, если будет доказан факт кражи аккаунта?
    Этот вопрос нужно задавать службе поддержки, что они могут, а что нет зависит от обращающегося лица.

    Для подобного маленького сервера шансы где-то в районе нуля, тем более что вы и не докажите ничего, верификацию по паспорту вы ведь не делали.

    и что лучше делать в этой ситуации
    Писать в поддержку. Морально готовится создавать новый сервер и повышать компьютерную грамотность чтобы больше не попадать в подобную ситуацию.
    Ответ написан
    6 комментариев
  • Как локализовать label в декораторе button ui?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Localized работает только для команд и их параметров.

    Для всего остального используйте другое решение и библиотеки, например i18n
    Ответ написан
    Комментировать
  • Не выдаёт роль что делать?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Перевести ошибку. Ни к питону, ни к библиотеке она отношения не имеет.
    Либо у вас не выданы необходимые полномочия боту, либо его роль находится в списке ролей ниже чем роль, которую он должен выдать.

    Чтобы определить какой из двух вариантов случился в вашем случае нужно перестать обрабатывать ошибки принтами и читать Traceback, там все будет написано.
    Ответ написан
    1 комментарий
  • Pycord, как передать сообщение отправленное боту по команде в отдельный канал?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Достаете канал по id через get_channel, отправляете через сhannel.send

    channel_id = ... # достаете из БД или оттуда где у вас хранится id нужного канала
    channel = bot.get_channel(channel_id)
    channel.send(feedback_message.content)
    Ответ написан
    Комментировать
  • Как взять данные с базы данных, в app_commands.Choice?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Для этого используется декоратор autocomplete
    async def fruit_autocomplete(
        interaction: discord.Interaction,
        current: str,
    ) -> List[app_commands.Choice[str]]:
        fruits = ...  # Список данных полученный из БД
        ... # Фильтрация списка 
        return [
            app_commands.Choice(name=fruit, value=fruit)
            for fruit in fruits if current.lower() in fruit.lower()
        ]
    
    @app_commands.command()
    @app_commands.autocomplete(fruit=fruit_autocomplete)
    async def fruits(interaction: discord.Interaction, fruit: str):
        await interaction.response.send_message(f'Your favourite fruit seems to be {fruit}')


    В данном примере функция fruit_autocomplete будет вызываться при наборе каждой буквы. Делаете вместо статичного списка чтение из БД (только убедитесь, что делаете один раз, а не при наборе каждой буквы!) и фильтруете результат на основе текущего ввода, который лежит в current.

    В простейшем виде сравниваете начальные буквы, но можно делать и более интересные вещи, вроде нечеткого поиска, например через расстояние Дамерау-Левенштейна.
    Ответ написан
    Комментировать