Ответы пользователя по тегу Python
  • Как str (например 'user#0000') превратить в discord.User (discord.py)?

    fenrir1121
    @fenrir1121
    Начни с документации
    Выставляйте правильно теги вопроса, если хотите чтобы на него ответили.

    По самому вопросу используйте discord.utils.get(), он по name вернёт юзера.

    Но вероятнее всего вы что-то делаете неправильно поскольку можно сразу указать тайпхинт параметра
    Ответ написан
  • Можно-ли заставить работать pyWebIO на хостинге?

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

    from pywebio import start_server
    
    def main(): # основной код
        pass 
    
    if __name__ == '__main__':
        start_server(main, port=80)
    Ответ написан
    Комментировать
  • Как обработать ошибку?

    fenrir1121
    @fenrir1121
    Начни с документации
    К рабочим вышеописанным вариантам добавлю еще третий:

    Любую необработанную ошибку discord.py перенаправляет в событие on_command_error и можно еще там их обрабатывать.
    Ответ написан
    Комментировать
  • Как избавится от ошибки TypeError: Object of type Select is not JSON serializable?

    fenrir1121
    @fenrir1121
    Начни с документации
    Так, окей, я еще раз распишу чтобы все аналогичные вопросы перенаправлять сюда.

    То, что вы завете discord_slash. является пакетом discord-py-slash-command.
    Он так же как и discord_components является устаревшим и больше не поддерживается. Даже слеш-команды там реализованы не полностью, а новых компонентов нет вообще. Соответственно разбираться в ошибке, которая возникает в неподдерживаемом пакете никто не будет.

    Если вы откроете гитхаб библиотеки, то увидите, что сейчас у них отдельная, работающая независимо от discord.py библиотека interactions-py

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

    Что касается discord.py v1.7.3 она сильно отстала от жизни поскольку на пол года была заброшена, последнее стабильное обновление было 12 июня 2021. Актуальная dev версия с новыми компонентами устанавливается через git, а не через pip, поскольку еще находится в разработке. Следить за прогрессом разработки v2.0 можно тут

    Кроме dev ветки основной либы можно перейти на один из форков, например disnake, pycord (тоже dev из гитхаба) или отдельные библиотеки, вроде описанной выше interactions.py. У каждой свои особенности и понадобится адаптировать старый код, но так будут актуальные компоненты и предсказуемая работа в рамках одной библиотеки.
    Ответ написан
  • Проблема с установкой PYCURL на Python 3.10 Win 10. Кто сталкивался?

    fenrir1121
    @fenrir1121
    Начни с документации
    Вероятно, ее надо откатить на более раннюю, чего я делать не хочу

    Религия не позволяет или реально используете вещи, введённые только в 3.10?
    Справа внизу кликнуть по Python 3.10 -> Add Interpreter и создать новую venv с нужной версией питона, в один клик же переключается все
    Ответ написан
  • Как сделать проще?

    fenrir1121
    @fenrir1121
    Начни с документации
    Ну как минимум если все три значения лежат в message, передавайте просто message, а внутри уже проверяйте
    if await check_sub_channel(message):
    И зачем плодить переменные, если и так читаемость сохраняется, особенно если указывать что передаете
    check_sub_channel(user_id=message.from_user.id, name=message.from_user.full_name, chat_id=message.chat.id):

    И последнее: последующего кода вы не выложили, но я более чем уверен, что одновременно проверять id человека и его name излишне
    Ответ написан
    Комментировать
  • Как отсортировать вот такое?

    fenrir1121
    @fenrir1121
    Начни с документации
    Я бы предложил иное решение
    my_lst.sort(key=lambda item: item.get("class"))
    Только вот не понятно по какому принципу у вас предложена сортировка
    Чтобы сначала шли элементы содержащие green, затем yellow, затем red

    По-умолчанию сортируется по алфавиту, т.е green, red, yellow
    Ответ написан
    Комментировать
  • Как сделать так чтобы в модуле turtle текст пропадал через несколько секунд?

    fenrir1121
    @fenrir1121
    Начни с документации
    Вот тебе документация по turtle, срочно научись ей пользоваться
    Ответ написан
    Комментировать
  • Не работает slash команда, как исправить?

    fenrir1121
    @fenrir1121
    Начни с документации
    Четко указано, что вместо ctx.message.guild пришел None.

    Я вам уже в ваших ранних вопросах говорил, что мертвую лошадь пинать не очень хорошая практика.
    В библиотеке interactions и в discord объекты не совпадают один в один, если хотите использовать их одновременно используйте тайпхинты чтобы четко понимать объект какого типа вам приходит и пишите доп обработку ситуаций под обе библиотеки.

    Либо посмотрите уже, что обе эти версии релизнуты уже почти год назад и больше не поддерживаются и когда вы в следующий раз захотите новые фичи с них все равно надо будет слезать.
    Interactions преобразовалась в независимо работающую interactions.py, а discord.py все же ближайшее время выродиться в версию 2.0 с теми самыми блекджеком и слеш командами
    Ответ написан
  • Возможно ли сделать короче?

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

    fenrir1121
    @fenrir1121
    Начни с документации
    Никак. Это сообщение сформированное через Discohook, оно так отображается потому что нет отдельного значка для сообщений отправленных через вебхуки, но ботом он не является.
    Ответ написан
    Комментировать
  • Как сделать шкалу уровней?

    fenrir1121
    @fenrir1121
    Начни с документации
    1) Написать функцию, которая принимает на вход лвл и експ и рисует полоску, тестовые элементы
    2) Написать функцию, которая принимает на вход пользователя и выводит ник, аватарку, статус
    3) Написать функцию, которая объединяет все полученное в одну картинку и выводит по команде

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

    Разумеется всегда можно изучить исходники аналогичных проектов на гитхабе, например Discord-levels-bot
    Ответ написан
  • Как добавить реакции и как сделать проверку на нажатие?

    fenrir1121
    @fenrir1121
    Начни с документации
    Как добавить реакции

    emoji = <>  # вставить свой emoji
    await message.add_reaction(emoji)


    как сделать проверку на нажатие?

    Срабатывают ивенты on_reaction_add или on_reaction_remove, там свою логику описывайте

    Я вообще не понимаю как, у всех гайдов по разному.

    Потому что в разных библиотеках реализации могут отличаться. Смотрите официальные примеры под нужную вам библиотеку, все всегда есть в документации.

    Я хочу сделать страницы но не вдупляю как!

    В новых версиях 2.0.X за это отвечает ui components. Пример реализации, например под discord.py есть в репозитории
    Ответ написан
    1 комментарий
  • Где поставить await? Или как фиксануть?

    fenrir1121
    @fenrir1121
    Начни с документации
    В связи с Вашим поведением в комментариях я не укажу на конкретную строчку, но дам вам пример базового бота на disnake.
    Сопоставьте Ваши 15 строчек и найдите несоответствие.
    Ответ написан
    Комментировать
  • Как сделать два администратора в /admins?

    fenrir1121
    @fenrir1121
    Начни с документации
    Ответ на конкретный вопрос как убрать какие-то символы - посмотрите документацию по replace(), translate(), join() и что такое срез строк.

    Ответ на реальный вопрос, который вы не смогли сформулировать: не использовать список для admins, когда нужна просто строка и не делать SELECT *, когда нужен только ID
    Ответ написан
    2 комментария