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

    fenrir1121
    @fenrir1121
    Начни с документации
    Как организовать для чего? В чем смысл наличия 3 репозиториев и почему тесты одного, влияют на тесты другого?

    Можете ли вы, что-то посоветовать?
    Взять ручку, бумагу и нарисовать граф зависимостей. Затем нарисовать чего вы хотите добиться и сравнить.
    Общий код реализуйте как библиотеку и переиспользуйте. Если ее по ходу тоже нужно редактировать, использовать pip install -e. Ничего из чужих тестов не импортировать. Со звёздочкой вообще никогда не импортировать.
    Ответ написан
    Комментировать
  • Как создать свою библиотеку для Go?

    fenrir1121
    @fenrir1121
    Начни с документации
    Прочитать в документации.
    Ответ написан
    Комментировать
  • Рекурсивный функциональный литерал в Go?

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

    А вообще в задании ничего про рекурсию не сказано, думаю тур предполагает, что вы напишите что-то такое
    func fibonacci() func() int {
        a, b := 0, 1
        return func() int {
            result := a
            a, b = b, a+b
            return result
        }
    }
    Ответ написан
    Комментировать
  • Return list выводит ошибку. Как исправить?

    fenrir1121
    @fenrir1121
    Начни с документации
    Потому что вместо словаря приходит строка, где вы пытаетесь обратиться по строковому индексу.
    Где именно - разбирайтесь, в вопросе информации недостаточно, но вероятно в
    filter(
                lambda g: (g['owner'] is True) or
                bool((int(g['permissions']) >> 5) & 1),
                guilds)

    Читайте что может возвращать метод discord.get()
    Ответ написан
  • Disnake | Как корректно использовать UserCommands?

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

    В приложенном коде проблем нет, следовательно или у вас не загружен ког в основном файле, либо вы не так понимаете что такое пользовательские команды и не там смотрите.
    Ответ написан
    1 комментарий
  • Почему данные в БД SQlite добавляются в новую строку?

    fenrir1121
    @fenrir1121
    Начни с документации
    Вам нужна команда INSERT INTO ... ON CONFLICT ... DO UPDATE SET ... или более актуальная UPSERT.

    В доках подробно дано описание и примеры использования.
    Ответ написан
    1 комментарий
  • У меня не хочет включаться программа в чем причина?

    fenrir1121
    @fenrir1121
    Начни с документации
    У меня не хочет включаться программа?
    Да не хочет

    в чем причина?
    В SyntaxError: invalid syntax. Perhaps you forgot a comma?

    Код нужно прикладывать при помощи кнопки </> на панели редактора, в противном случае он не читаем.

    Я по первым строчкам вижу, что вы не передали интенты, которые являются обязательным параметром для бота. Ну и обращение к элементам словаря осуществляется через квадратные скобки, а не фигурные.
    Ответ написан
  • Как сделать таймаут более 28 дней?

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

    В целом сделать можно, но самому и понадобится БД. Достаточно хранить пользователя, дату когда нужно обновить таймаут (те самые 28 дней) и реальное окончание. Раз в сутки пробегаться по записям и обновлять таймаут для тех, где дата обновления это сегодня (еще +28 или реальный таймаут, смотря что меньше)
    Ответ написан
  • Принимает ли дискорд при верификации паспорт рф?

    fenrir1121
    @fenrir1121
    Начни с документации
    Паспорт РФ не принимает.

    Загран принимает.
    Ответ написан
    Комментировать
  • Почему json файл не создается через python в docker?

    fenrir1121
    @fenrir1121
    Начни с документации
    Судя по фразе
    и так же не появляется WORKDIR /app где по идеи и должен появится json
    вы ожидаете, что папка и файл появятся в той же директории, откуда происходит запуск. Вот только и папка и файл создадутся внутри контейнера. Можете подключиться через docker exec -it и посмотреть на них (и даже скопировать), но лучше примонтировать, что уже описано в совете выше.
    Ответ написан
    Комментировать
  • Flask + Playwright?

    fenrir1121
    @fenrir1121
    Начни с документации
    Запрос в поиск по тексту ошибки выдаёт issue на гитхабе, где чётко сказано что playwright не является потокобезопасным и стоит использовать async.
    Ну и касательно подобного использования словаря стоит либо использовать каналы для общения потоков и изменять его только в одном потоке, либо использовать мьютексы
    Ответ написан
    Комментировать
  • Как сделать так, что-бы когда игрок писал команду /markov, бот отправлял случайное сообщение discord.py составленное цепями маркова?

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

    Прочитать документацию по используемой библиотеке и использовать принты/дебаг для понимания с какими объектами и типами объектов вы работаете. Ответом на вопрос было бы полное переписывание функции, но тогда вы не станете разбираться что вы делаете не так.
    Ответ написан
  • Как реализовать работу бота на нескольких серверах Discord с вводом команды?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Как реализовать работу бота на нескольких серверах Discord с вводом команды?
    Использовать базу данных. Удалить все глобалы.
    Не хотелось бы использовать базу данных
    А придется.
    Ответ написан
    1 комментарий
  • Лучший пример для использования aiohttp в веб приложениях?

    fenrir1121
    @fenrir1121
    Начни с документации
    пишу веб приложение с использованием FastAPI
    В документации есть пример использования DI для прокидывания объекта сессии в рамках одного запроса (или любой другой реализации).

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

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Код который вы приложили создаёт 1 канал и отправляет 1 ответ и 2 сообщения.
    Никаких пяти тикетов в нём нет.

    Разбивайте код при помощи функций на понятные логические единицы и тестируйте их.
    Ответ написан
    Комментировать
  • Найти сервер или название сервера Discord по ID?

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

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Json это не база данных. Одновременный вызов команд его сломает. Попытки чтения и записи одновременно из нескольких корутин приводят к неопределённому поведению и гонкам. А разрастание файла будет ещё и цикл событий подвешивать.

    Переписывайте используя реальную базу данных.
    Ответ написан
    1 комментарий
  • Что лучше вытаскивать данные из БД(sqlite) или хранить в неких переменных?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Что лучше вытаскивать данные из БД(sqlite) или хранить в неких переменных?
    Если данные критичные и недопустима их потеря - хранить в БД, если допустимо их потерять из-за ошибок, отключений и прочего - хранить в переменных. Если и то и то, накапливать какое-то количество данных и скидывать в БД сразу батчем по таймеру или по достижению определенного размера.

    async def on_message(self, message: Message): ...
    on_message это событие, которое срабатывает на каждое сообщение, каждого пользователя. На среднего размера боте с несколькими сотнями серверов в активное вечернее время оно может дергаться тысячи раз в секунду, как сами думаете, насколько адекватно в таком событии ходить в базу? Насколько часто меняются каналы, чтобы каждый раз их доставать из БД? Знаешь ли условия, при которых данные в базе меняются и их нужно повторно перечитать?

    guild_id = message.guild.id
    Как думаете, что лежит в guild, если боту пишут в личные сообщения?

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

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

    fenrir1121
    @fenrir1121
    Начни с документации
    Не ясно при чем тут микро- или не микросервисы, но вероятно вам нужен Celery. Статей по его использованию очень много.
    Хорошая книга по проектированию компонентов системы - Fundamentals of software architecture
    Ответ написан
    3 комментария
  • Как сделать в боте внешние команды?

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

    6704a39437ef4511623649.png
    Ответ написан
    Комментировать