• Хочу сделать мьют на discord.py duration reason?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Сам мут.
    @bot.command
    async def mute(ctx, member: discord.Member):
        await member.edit(mute=True)

    Чтобы он был на время реализуйте отложенную задачу, которая будет его снимать. Для небольших периодических задач у дискорда есть свой ext.tasks, но чтобы задачи не исчезали в случае перезапуска бота нужна своя реализация с хранением данных в БД.
    Ответ написан
    Комментировать
  • Как убрать "Ошибка взаимодействия" при нажатии на кнопку в Discord?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    В каких дебрях интернета вы нашли этот код?
    Где вы увидели использование слеша в качестве префикса? Этому какой-то ютубер учит?
    В актуальной версии библиотеки discord.py нет события on_button_click. А у вас намешаны в одну кучу контексты и взаимодействия, которые являются принципиально разными.

    Удалите весь код, никогда не заходите туда, где его нашли (или смотрите дату публикации).
    Откройте официальную документацию, getting-started и пишите по ней заново.
    Ответ написан
    1 комментарий
  • При исполнения команды, бот отправляет GIF файл, который не грузит discord, в чем проблема?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    В списке в перемешку ссылки на веб страницы и на mp4 видео.
    set_image требует как это ни странно изображение.
    Чтобы приложить видео есть аналогичный атрибут Embed.video, а ссылку на сайт можно разве что в текст засунуть.

    P.S. не используйте столько тегов, оставляйте только ключевой, в данном случае discord.py
    Ответ написан
  • Не блокирует человека discord.py?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Команда верная. Если убрать лишнее она сводится к одной строчке.
    @client.command()
    @commands.has_permissions(ban_members = True)
    async def ban(ctx, member : discord.Member, *, reason = None):
        await member.ban(reason = reason)


    А не работает, поскольку в функции нигде не определен объект userName у которого вы пытаетесь вызвать метод send. Что впрочем вам должно было бы писаться, если только вы не глушите любые ошибки
    Ответ написан
    Комментировать
  • Какими материалами повысить экспертизу в python?

    fenrir1121
    @fenrir1121
    Начни с документации
    Fluent Python однозначно лучшая из существующих, но есть еще несколько неплохих книг.

    Все сложные случаи гуглю
    Из старого Beazley - Python Cookbook, хоть и написана для 3.3 классика различных приемов.
    Из нового Martelli - Python in a Nutshell.

    как должна выглядеть хорошая масштабируемая архитектура
    Architecture Patterns with Python

    Ну и с учетом flask/fastapi Fowler - Python Concurrency with asyncio. Кривая работа с асинхронностью это классика.
    Ответ написан
    Комментировать
  • Как сделать анти флуд по комманде пример: !antispam on / off?

    fenrir1121
    @fenrir1121
    Начни с документации
    Загир Меджидов надеюсь это chatGPT. Если нет внимательно поищите SPAM_TIME в вашем коде.

    Coding No на вопрос
    не знаю как ...
    отвечает гугл. Если вы используете тег Python потрудитесь представить вашу попытку решения.
    В дискорде существует slow-mode, который можно выставить на любое время и дать ролям иммунитет к нему.
    Все кто без иммунитета смогут писать 1 сообщение в X секунд. Если передать 0 - отключается.
    Выставляется одной строчкой кода
    async def setdelay(ctx, seconds: int):
        await ctx.channel.edit(slowmode_delay=seconds)
    Ответ написан
  • Что нужно знать, чтобы устроиться на позицию Python Junior?

    fenrir1121
    @fenrir1121
    Начни с документации
    Нужно знать больше, чем знают остальные кандидаты на ту же позицию.

    https://roadmap.sh/python
    Ответ написан
    3 комментария
  • Почему когда загружаю коги через команду они не работают(слеш команды) nextcord?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Слеш команды полностью отличаются от префиксных.
    Если префиксные запустил бота и они работают, то в случае со слешами они синхронизируются на стороне серверов дискорда и до этого момента они не работают. Соответственно для синхронизации команд есть функции sync_application_commands, sync_all_application_commands, discover_application_commands и еще несколько.

    Для того чтобы можно было тестировать их можно дополнительно передавать в команду guild_ids=[TESTING_GUILD_ID], но и в этом случае команды нужно синхронизировать.
    Ответ написан
    Комментировать
  • Как отключить кнопки?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Чтобы кнопка изменилась необходимо отредактировать сообщение с ними.
    Для этого есть метод Interaction.edit_original_message, куда нужно передать view с обновленными кнопками

    В документации дан пример, где выполняется схожая логика и все снабжено комментариями
    @disnake.ui.button(label="Disable the view", style=disnake.ButtonStyle.grey)
    async def disable_button(self, button: disnake.ui.Button, inter: disnake.MessageInteraction):
        # We disable every single component in this view
        for child in self.children:
            if isinstance(child, disnake.ui.Button):
                child.disabled = True
        # make sure to update the message with the new buttons
        await inter.response.edit_message(view=self)
    Ответ написан
  • Что делать если бот перезагружается сам по себе?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    on_ready

    This function is not guaranteed to be the first event called. Likewise, this function is not guaranteed to only be called once. This library implements reconnection logic and thus will end up calling this event whenever a RESUME request fails.


    Либо у вас плохой интернет, либо у вас запуск в цикле и вы глушите ошибки.
    В любом случае настраивайте нормальное логирование.
    Ответ написан
    Комментировать
  • Как сделать два модальных окна?

    fenrir1121
    @fenrir1121
    Начни с документации
    Так же как одно, только два.

    В колбеке первого вызываете второе.
    Ответ написан
    Комментировать
  • Не работают команды Discord.py?

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

    Если освоите поиск, найдете еще тем 5-10 за последние пол года с тем же вопросом.
    Ответ написан
    Комментировать
  • Как в Pycharm Community Edition исправить Unresolved attribute reference или Cannot find reference в сторонних библиотеках?

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

    Решается глушением ошибки или явным указанием типа у респонза. Менять ide из-за одного ложного предупреждения можно, но это странно.
    Ответ написан
    1 комментарий
  • Как всегда отображать внизу строку ожидания?

    fenrir1121
    @fenrir1121
    Начни с документации
    При чем тут дискорд и асинхронное программирование?
    Вообще не понятно что и куда вы хотите вводить, но судя по скриншотам консоль майнкрафт это две отдельных формы: textbox и inputbox, стандартный терминал так не умеет.
    Можете сделать гуй на tkinter из tk.Text и tk.Entry
    Ответ написан
  • Как создаются ботов-франшизы telegram?

    fenrir1121
    @fenrir1121
    Начни с документации
    Пишется плейбук для ансибла (или любого другого автоматизатора), который запускает докер контейнер с образом бота и переданным токеном
    Ответ написан
    Комментировать
  • Как поставить дискорд бота на питоне на бесплатный хостинг?

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

    Посоветуйте бесплатные хостинги для дискорд бота на питоне
    Твой ПК

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

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Вам еще в прошлом вопросе указали, что discordsuperutils это сомнительного качества заброшенная библиотека.

    Даже если вы все начнёте верно передавать нет гарантий что это будет работать, последняя работа над библиотекой была год назад, для дискорда это большой срок за который многое изменилось.

    Отказывайтесь от нее и переписывайте. Все равно придется.
    Ответ написан
    5 комментариев
  • Как я могу выдать роль по кнопке через ЛС?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Сейчас вы используете interaction.send для отправки. Переводя на русский смысл данной команды "отправь в канал взаимодействия"

    Если вы хотите отправить пользователю, первым шагом вы идете в документацию и находите объект User, вторым шагом смотрите доступные ему методы и находите знакомый метод send. Переводите описание метода и понимаете, что он вам подходит. Объект пользователя у вас уже в коде есть. В случае возникновения новых проблем повторить шаг 1.

    Это было по теме вопроса, но раз вы изучаете недавно вам еще домашнее задание подумать и ответить "а почему так никто не делает"
    Ответ написан
    Комментировать
  • В чем проблема random.uniform?

    fenrir1121
    @fenrir1121
    Начни с документации
    В принт тоже вставьте распаковку и увидите.
    А если не увидите принтаните тип переменной time_range
    Ответ написан
  • Ошибка с error?

    fenrir1121
    @fenrir1121
    Начни с документации
    Декоратор error, регистрирует корутину как локальный обработчик ошибок.
    Аргументы локального обработчика должны соответствовать глобальному обработчику.
    on_command_error(ctx, error)
    Обратите внимание на порядок.

    Кроме того у вас во всех обработчиках один и тот же текст, отличается только команда.
    Напишите один глобальный обработчик в текст ошибок которого будет подставляться команда из ctx.
    И переходите на слеши.
    Ответ написан
    Комментировать