Задать вопрос
  • Какую библиотеку выбрать для написания discord бота с слеш командами?

    shurshur
    @shurshur
    discord.py 2.0 уже поддерживает slash-команды. И для discord.py 1.7 были сторонние реализации, расширяющие её для использования slash-команд.
  • Обучение C++ на Linux, VS code?

    shurshur
    @shurshur
    Senoju, да, vscode подойдёт, а на начальном этапе вообще достаточно любого текстового редактора, так как размеры кода программ будут очень небольшими.
  • Не работает бот созданный на python. Он не отправляет сообщения. Как можно решить данную проблему?

    shurshur
    @shurshur
    linuxstation, скорее всего неправильно было настроено виртуальное окружение.

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

    shurshur
    @shurshur
    Бесполезное действие, так как в задаче не нужно получать и обрабатывать события, только разово отправить несколько сообщений.
  • Как получить файл от пользователя в тг боте и я его видел?

    shurshur
    @shurshur
    Например, пусть бот положит файл в какой-то каталог, доступный через web-сервер. Или можно сделать так, чтобы бот пересылал все собщения с файлами своему владельцу. В общем, есть варианты и даже больше одного.

    А вообще не очень понятна формулировка "чтобы я в его видел". Задача сформулирована недостаточно конкретно.
  • Linux Mint LMDE 5(файловая система Btrfs), при удалении и переносе файлов место не освобождается, что может быть и как исправить?

    shurshur
    @shurshur
    Weishaupt, да, про снапшоты я не подумал, а ведь btrfs упоминался. Вообще, полезно заодно разобраться, как определять занятое имеющимися снапшотами место, чтобы лучше контролировать дискового пространства.

    как то совсем не user friendly получается


    В Windows нельзя удалить файл, который кем-то открыт, тут можно, это в какой-то степени более удобно, а в другой - доставляет проблем. Но как правило в Linux никто в здравом уме и не удаляет файлы из-под запущенного приложения. Более простой способ решения - перезагрузка.

    Конечно, проблеме забивания диска CoW-данными снапшотов перезагрука ничем не поможет, к сожалению.
  • Как получить ID пользователя Телеграмм по его никнейму?

    shurshur
    @shurshur
    HXNDY, это плохая идея и вообще негодная учебная задача. Bot API разрабатывался для совсем другого сценария использования: бот может получить информацию только о тех пользователях, которые к нему обращались или состоят в одной с ним группе, и только при условии получения событий, содержащих информацию об этих пользователях (почти все события при этом - сообщения). Получить информацию по абсолютно случайному пользователю в любой момент бот не может.

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

    Чтобы делать поиск именно по имени пользователя, потребуется использовать клиентский API телеграма, на котором построены его десктопные и мобильные приложения. Смотреть в сторону библиотеки telethon. Но лучше быть осторожным, так как в отличие от бота, клиентский API авторизуется аккаунтом реального пользователя, и неосторожные действия (в том числе слишком частый поиск информации по пользователям) могут привести к бану реального живого аккаунта.

    Я бы предложил для учебных целей сделать что-нибудь другое. Ну, например, из популярного у новичков можно сделать бота, который бы возвращал погоду по названию города. В любом случае, полезно научиться лучше понимать сценарий работы ботов и все связанные с этим ограничения API.
  • Как искать шрифты CC0 1.0?

    shurshur
    @shurshur
    Qeinzo, точно ли их десятки тысяч? Как получена эта цифра, если, как утверждается, нет поиска по типу лицензии?

    За качество конкретного сайта я, конечно, ответственности нести не могу, это претензии к конкретному сайту.

    Кстати, я думаю, можно было бы пропарсить какой-нибудь из популярных сайтов и собрать нормальные метаданные по множеству шрифтов.
  • Linux Mint LMDE 5(файловая система Btrfs), при удалении и переносе файлов место не освобождается, что может быть и как исправить?

    shurshur
    @shurshur
    Weishaupt, добавлять фильтры в конец команды. Например, у меня показало овердофига /memfd:mozilla-ipc и /dev/shm/.com.google.Chrome и ещё gvfs-metadata, которые явно не по делу, вот я их отфильтровываю и вывод становится сильно меньше:

    lsof -n|grep deleted|grep -v com.google.Chrome|grep -v memfd:mozilla-ipc|grep -v gvfs-metadata

    К этому надо творчески подходить, кто ж знает где и что там в конкретной системе запущено.

    Довольно типичным является, когда для решения проблемы с местом удаляют лог-файл программы, а саму программу не перезапускают. В итоге программа продолжает удерживать файл открытым, и он фактически не удаляется, хоть и перестаёт быть видимым на файловой системе. Некоторый софт умеет по сигналу SIGHUP или SIGUSR1 переоткрывать лог-файл без перезапуска, и инструменты типа logrotate позволяют посылать такой сигнал при регулярной ротации логов.
  • Как мне сделать то, что я описал в деталях?

    shurshur
    @shurshur
    При отправке файла надо передавать или file_id ранее загруженного файла, или file-like object (объект с интерфейсом файлового дескриптора, аналог того, что возвращает функция open). В приведённом коде этого не делается, содержимое скачанной картинки передаётся в Telegram, тот пытается интерпретировать эту "строку" как file_id и ожидаемо ничего не находит.

    Чтобы превратить объект типа bytes (который имеет скачанный контент картинки) в file-like object, можно воспользоваться классом BytesIO.
  • Возможно ли получить доступ к файлам с айфона, если разбит экран?

    shurshur
    @shurshur
    При подключении adb андроид также может спросить разрешение, если не было сохранено заранее разрешение конкретному устройству. Так что всегда есть нюансы...
  • Как изменить mac компьютера через запущенную linux с флешки?

    shurshur
    @shurshur
    R O, да, в Linux есть годная возможность добавить смену мак-адреса в автозапуск.

    В винде мак-адрес меняется не в самой сетевой карте, а в параметрах драйвера.
  • Как сделать свой собственный интернет для дома?

    shurshur
    @shurshur
    Я бы предложил реально рассмотреть вариант за эти 3 миллиона проложить оптику или хотя бы медь до деревни. Но если есть желание перепродавать интернет, то легально это можно сделать, только самому став провайдером. А это довольно сложно и дорого.

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

    Но вообще если в деревне ловит мобильная сеть, то можно обойтись мобильным интернетом и направленной антенной на БС сотового оператора. Комплект для такой задачи может стоить менее 10 тыс. рублей (зависит от требований и характеристик), и даже если оценить в 20 тыс. вместе с монтажом, получится, что на 3 миллиона можно подключить 150 домов.
  • Как разбить код бота Discord на отдельные файлы?

    shurshur
    @shurshur
    Никита Савченко, делаем из отдельных команд разделяемые библиотеки (.so в UNIX-системах, .dll в Windows) и подгружаем штатными методами (например, libdl). В каждой реализуем или нужные методы обработки с согласованными именами, или какой-нибудь суперметод инициализации, которому передаётся объект бота. Библиотеки можно искать или просто поиском файлов в каком-то каталоге, или, например, перечислять их в конфиге.

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

    Естественно, раз был выбран компилируемый язык, то всё должно заранее компилироваться. Подключать нескомпилированный код в C++ - это тянуть отдельно компилятор C++ в свою программу и воевать с запуском скомпилированного кода в рантайме, что прям совсем непросто.

    Как вариант, можно также сделать красивую систему с возможностью подключения скриптов (нескомпилированных_ на разных языках (lua, perl, python, js итд итп). Но это уже задача со звёздочкой, хоть и проще, чем компиляция C++ на лету. Ещё можно придумать свой специализированный язык, написать его парсер (смотреть можно например в сторону ANTLR или lex/yacc) и интерпретатор, но это тоже весьма сложно. Но зато если удастся такое сделать - будет просто бомба и скилы прокачаются весьма серьёзно.

    Для примера можно посмотреть на этот проект https://github.com/Verlihub . Там есть система плагинов через подгружаемые библиотеки, а также есть три плагина LuaScript, PerlScript, PythonScript, которые позволяют подключать скрипты на соответствующих языках.
  • Не удаляется слэш команда бота в дискорде, что делать?

    shurshur
    @shurshur
    Ваня, возможно, что-то делается неправильно. Я не умею в discord.js и не знаю всех его особенностей.

    У меня disnake с опцие2й sync_commands_debug=True прямо пишет что изменилось, и команды реально меняются через некоторое время. В этой библиотеке (она для Python) при инициализации бот считывает у Discord текущий список команд и сравнивает его с текущим списком команд в коде бота, затем применяет изменения.

    $ python discordbot.py
    GLOBAL COMMANDS
    ===============
    | NOTE: global commands can take up to 1 hour to show up after registration.
    |
    | Update is required: False
    | To upsert:
    |     -
    | To edit:
    |     -
    | To delete:
    |     -
    | Type migration:
    |     -
    | No changes:
    |     <SlashCommand name='config'>,
    |     <SlashCommand name='menu'>
    
    DEBUG: Command synchronization task has been finished
    
    We have logged in as Glagolitic#2190
     ` joined to guild 716***697 (ShurShur's test server)
  • Как изменить все даты в базе данных Wordpress?

    shurshur
    @shurshur
    Али Профи, если надо чтобы во всех страницах было такое странное поведение - это надо было решать иначе. Например, сделать в шаблоне подстановку текущего года в нужное место. Или каким-то макросом вставлять текущий год в текст (не знаю, поддерживает ли WP такое).
  • Как изменить все даты в базе данных Wordpress?

    shurshur
    @shurshur
    Али Профи, вообще, для нормальной SEO "оптимизированные даты" не должны быть в тысячах текстов. Они должны быть, например, в подвале сайта в копирайтах, в конкретных разделах (например, история фирмы). Все эти "где купить XXX в YYYY году" в тысячах страниц - это полный бред.