Задать вопрос
  • Как залить бота на вебхуках на сервер?

    fenrir1121
    @fenrir1121
    Начни с документации
    как выбрать хостинг
    Любой, цена на который вас устраивает. Исходите из специфики своего бота, но в 99% случаев подходит самый минимальный тариф. Не учитывая статику и возможные сложные вычисления в бизнес логике нужны где-то 40Мб RAM и 1% мощности любого проца.

    как залить бота
    git clone url

    какой домен использовать
    Какой купите такой и подходит. Главное нужен SSL, для этого есть certbot
    Ответ написан
    Комментировать
  • Что делать, если не выходит отправить личное сообщение боту Discord?

    fenrir1121
    @fenrir1121
    Начни с документации
    не выходит отправить личное сообщение боту Discord

    отправка сообщения пользователю невозможна


    Вы определитесь для начала кому вы что пытаетесь отправить.
    - Если боту, вероятно Вы копировали чужой код, в котором есть запрет получения личных сообщений. Так иногда делают, если логика требует наличия информации о сервере.
    - Если человеку то Вы ничего с этим не сделаете. Некоторые люди устанавливают запрет на личные сообщения и это нормально, а вот бот, спамящий в личку, наоборот не нормально. Если вы верифицируете пользователя на сервере и общайтесь с ним на сервере. Чтобы сообщение не было видно другим участникам есть эфемерные сообщения.
    Ответ написан
  • Как исправить ошибку TypeError: DataBase.get_max_cash() missing 1 required positional argument: 'cash'?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Научиться пользоваться переводчиком.
    Вот объявление Вашей функции:
    async def get_max_cash(self, ctx, cash, *, all_data: bool=False):


    Вот как вы пытаетесь ее вызвать:
    data = await self.db.get_max_cash(cash)

    Если глядя на последнюю строчку и текст ошибки не приходит никаких идей, попробуйте начать с учебника для начинающих.
    Ответ написан
    Комментировать
  • Как лучше сделать одобрение/отклонение заявок через pycord (discord.py)?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Потому что Bot.wait_for это гигантский костыль. С тех пор как появились взаимодействия его не следует использовать в принципе. В вашем случае у вас все открытые заявки ждут события raw_reaction_add, а check не проверяет на каком сообщении реакция поставлена.
    Путей исправления 3:

    1 (оптимальный). Разобраться как работают события. В идеале создавать сообщение с 2 кнопками, которые хранят данные от кого они были созданы.

    2 (простой). Не использовать события. Создать отдельную команду для подтверждения, куда передается пользователь и статус.

    3 (кривой). Оставить все как есть. В сообщении наверняка есть строка от кого оно. Парсить текст сообщения, добавить в check проверку по конкретному пользователю.
    Ответ написан
    Комментировать
  • Как сделать одновременно слэш команду и команду через префикс дискорд бота на Disnake?

    fenrir1121
    @fenrir1121
    Начни с документации
    Средствами библиотеки - никак. Слеш команды концептуально отличаются и получают данные отличные от префиксных. Рекомендуемый способ это для префиксов показывать слеш-команду чтобы люди переходили на них.

    Альтернатива запихнуть вашу логику в отдельную функцию и из двух команд вызывать эту функцию.

    Советую выбирать первый вариант и отказываться от префиксов. Если дойдете до верификации бота вам их не согласуют.
    Ответ написан
    Комментировать
  • Как оптимизировать использование Python-ом ОЗУ?

    fenrir1121
    @fenrir1121
    Начни с документации
    Aiogram 3 набирает обороты и хапает себе ОЗУ
    Начните с доказательства этого утверждения.
    Как минимум мой опыт свидетельствует об обратном: десяток запущенных ботов потребляют на сервере один и тот же объем ОЗУ с аптаймом в несколько месяцев.

    Очистка памяти в Python выполняется автоматически путем подсчета ссылок на объекты и сборкой мусора (для циклических ссылок). Есть интерфейс для взаимодействия со сборщиком, но он не будет вам полезен. Запустите бот через профайлер вроде memray и ищите с чем связана проблема.
    Ответ написан
    Комментировать
  • Как исправить ошибку с командой work?

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

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

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Изучаете API твича, API ютуба, API ВК и API стима находите нужные вам эндпоинты и используете их. Если для желаемых операций недостаточно имеющихся апи используете Selenium и пишите автоматизации для нужных действий.
    Ответ написан
  • Как создать чат в телеграм между ботом и пользователем перешедшим по ссылке относящийся к определенной организации?

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

    Например заложить токен по которому при старте бот будет определять из какой организации пришел пользователь. Ну и хранить где-то в своей БД откуда он пришел
    Ответ написан
  • Как работать с содержимым iCal в Python?

    fenrir1121
    @fenrir1121
    Начни с документации
    Не работал непосредственно с яндекс календарем, но с гугловским очень удобно использовать библиотеку ics, вероятно в вашем случае она тоже подойдет.
    Ответ написан
  • Почему print(1 == True, 1 is True) вывод будет, True False, если можно по-подробнее?

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

    is сравнивает идентификаторы и можно посмотреть что они не равны
    In [28]: id(1)
    Out[28]: 140580901756808
    
    In [29]: id(True)
    Out[29]: 140580900679488


    == сравнивает хэши (если не переопределен __eq__) и можно посмотреть что они равны
    In [31]: hash(1)
    Out[31]: 1
    
    In [32]: hash(True)
    Out[32]: 1
    Ответ написан
    Комментировать
  • Как сделать так что бы при задержке команды выдавалось моё сообщение, а не ошибка?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Кулдан вызывает исключение CommandOnCooldown. Исключения вызывают событие on_command_error. Там проверяете с какой ошибкой туда попали и реализуете любую логику.
    Ответ написан
  • Не работает discord.ext menus ListPageSource | Disnake?

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

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

    Это не нормальное поведение. Ищите проблему в своем коде, если он зависает, то не из-за кулдауна. Люди и суточные кулдауны используют и ничего не зависает. Если все протрассировали и железно уверены что из-за него, подготавливайте воспроизводимый пример, шлите Issues с описанием бага.

    Еще не знаю как сделать кулдаун через базу данных

    Так же, как и любые другие параметры. Добавляете к вашему User поле и храните в нем timestamp последнего вызова команды. Пишите функцию f, которая проверяет что текущее время - время последнего вызова > чем нужное вам значение, используете @commands.check(f), чтобы не засорять код команды.
    Ответ написан
    Комментировать
  • Как добавить параметры disable и timeout?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Куда бы ни вставлял, выдает ошибку
    Попробуйте читать текст ошибки вместо вставки куда-нибудь. У класса View есть атрибут timeout, который по умолчанию равен 180 секундам. Задается при создании.
    Атрибута или метода disable у вьюх нет.
    Ответ написан
  • Как ввести мультисерверную экономику в бота?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Если немного сесть и подумать если нужно чтобы валюта была отдельная для каждого сервера, значит сервер должен где-то в модели данных фигурировать. А у вас его нет.
    6439241be37d6227319386.png
    Ответ написан
    Комментировать
  • Ошибка в консоли что делать?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    This repository has been archived by the owner on Mar 8, 2022. It is now read-only.

    Перестать пользоваться устаревшей библиотекой
    Ответ написан
    Комментировать
  • Как сделать считывание сообщения в ЛС?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Чтобы сделать заказ, напиши на Фриланс, укажи как ты готов вознаградить того, кто сделает твое задание, color=0x1f8b4c.
    Ответ написан
    Комментировать
  • Не работает бот тг на пайтоне, код не выполнялся?

    fenrir1121
    @fenrir1121
    Начни с документации
    Код для v3, а установлена v2 версия из пипа
    Ответ написан
  • Как использовать метод get_channel в модальном окне?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Как использовать метод get_channel в модальном окне?

    Так же как не в модальном окне. Модальное окно тут вообще не при чем. Вы пытаетесь получить bot у инстанса disnake.ui.Modal, а не у клиента. В ошибке это прямым текстом написано.
    Ответ написан
    Комментировать