Задать вопрос
  • Telegram Bot API. Keyboard не работает в группах с темами?

    shurshur
    @shurshur
    PigData, честно говоря, не очень понятно, зачем реализовывать индивидуальное взаимодействие в группе.

    Для группы я бы наверное сделал inline-кнопки и попробовал понять как использовать webapp в Телеграме (всё руки не доходят посмотреть что это такое и как работает). Всё же другим пользователям тоже может быть интересно посмотреть ту же инфу, а использование inline-кнопок позволяет не засорять их строку чата кнопками.
  • Разработка ботов & backend. Какой ЯП выбрать?

    shurshur
    @shurshur
    Rust - это язык, на котором очень трудно что-либо написать, если не проникнешься его Особым Духом. Поэтому выбирать его в качестве первого языка вряд ли хороший выбор.

    Ботов для Discord пишут практически исключительно или на js (discord.js), или на python (discord.py и его клон disnake), причём именно python лидирует в массовом сегменте. Да, на некоторых других языках писать тоже можно, но это уже означает присоединиться к касте меньшинств с соответствующими проблемами и сложностями такого выбора.

    Можно также отметить, что у js есть более типизированное расширение языка TypeScript. В python есть type hinting, который не вызывает реальной (заградительной) проверки типов.

    В пользу js так же говорит то, что можно на одном и том же языке писать код и на фронте, и на бэке (node.js). С другой стороны, node.js имеет свои проблемы, в частности, довольно печальная практика безумного количества зависимостей в npm у многих библиотек.

    В пользу python - это язык более общего назначения, для него есть очень много библиотек, решающих самые разные задачи. В частности, язык популярен в Data Science, ML, AI, у аналитиков, учёных, админов.

    С точки зрения уже имеющегося знакомства с C++ можно обратить внимание на C# и .Net Core. Наверное, он типизированный, как C++, но я в этом не разбираюсь. Там есть библиотека Discord.Net.

    Мне непонятна боязнь динамической типизации. Это на самом деле не страшно. От себя я бы рекомендовал python.
  • Telegram Bot API. Keyboard не работает в группах с темами?

    shurshur
    @shurshur
    PigData, возможно это просто и не будет работать. Что не лишено логики: смысл непонятен показывать сотням пользователей одинаковые кнопки.
  • При роботе с библиотекой colorama(0.4.6) не изменяеться цвет текста?

    shurshur
    @shurshur
    Liker_mob, на будущее расскажу немного теории. В большинстве классических терминалов используются так называемые ESC-последовательности (Escape-последовательности), которые могут распознаваться терминалом и не выводиться в чистом виде. ESC-последовательности начинаются на служебный символ ESC с кодом 27 (0x1b). Есть и другие управляющие символы, они нас сейчас не волнуют.

    Много интересного по поводу таких кодов написано в man console_codes

    В частности, есть конструкция вида ESC[код;код;кодm, которая задаёт цвет символов и фона. Например, 31 - красный цвет, 44 - синий фон, 1 - яркий цвет.

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

    Если терминал не поддерживает ESC-последовательности, то он либо игнорирует символ ESC (как и большинство кодов от 0 до 31), либо рисует его корявым символом (в частности, под DOS - символом "стрелочка влево"). Поэтому Fore.RED превращается в [31m - это всё, что осталось от ESC[31m, кодовой последовательности, задающей красный текст (хотя вон на скриншоте я вижу, что ESC никуда не пропал и рисуется прямоугольничком).
  • Telegram Bot API. Keyboard не работает в группах с темами?

    shurshur
    @shurshur
    Предполагаю, что эти кнопки будут работать только в "классическом" треде группы (тот, куда после этого идут сообшения старых клиентов, а также всякие вступления в группу). Но это надо проверять и уточнять.
  • Как организовать дисковое простраснтво для сервера на 10 человек?

    shurshur
    @shurshur
    В целом zfs работает в Linux довольно хорошо, несмотря на лицензионную несовместимость с ядром и необходимость его подключать через DKMS. В zfs есть и нативные средства для кэширования на SSD, можно отказаться от bcache (и в случае zfs не просто можно, но и нужно). Но придётся собирать массив вручную с нуля и всё на него копировать.
  • Почему функция возвращает None?

    shurshur
    @shurshur
    Onigire, ещё один способ выйти из функции - это когда её исполнение доходит до последней строчки функции. Если там не будет сделан return какого-то значения, то функция вернёт None.
  • Почему функция возвращает None?

    shurshur
    @shurshur
    Onigire, если условие всегда выполняется, что оно делает в коде? Разумеется, оно выполняется не всегда, цикл завершается и функция доходит до конца, где нет return.
  • Можно ли в теории запустить тг бота через сервера дискорда?

    shurshur
    @shurshur
    Zura_aps, если есть желание заниматься этой темой, рано или поздно придётся завести себе хоть какой-то хостинг. И это не такие огромные деньги, на пиво с фисташками больше уходит.
  • Как можно улучшить код отображения даты выпуска новости?

    shurshur
    @shurshur
    ThunderCat, а когда захочется тем же кодом поддерживать узбеков, финнов и каталанцев, то сразу же станет понятно, насколько неудобны рукодельные реализации для решения такиз задач.
  • Как исправить ошибку No module?

    shurshur
    @shurshur
    Mr.Robot, теперь

    current_dir = /home/user/python/flaskr/web/live
    dirname(current_dir) = /home/user/python/flaskr/web

    Нужно ещё один раз на уровень выше взять и получится как надо.
  • Ошибка User not found в aiogram. Как исправить?

    shurshur
    @shurshur
    user_id=callback_query.message.chat.id

    Почему chat.id? id пользователя равен id чата только в приватах с ботом - и то я настоятельно рекомендую на это не ориентироваться, потому что chat_id и user_id прям по своей задумке это разные вещи.
  • Нужно написать загадку используя python. Где я сделал ошибку?

    shurshur
    @shurshur
    Вообще-то условие s != 'близнецы' or s != 'Близнецы' всегда истинно, поэтому цикл никогда не завершится.
  • Как исправить ошибку No module?

    shurshur
    @shurshur
    Mr.Robot, в изначальной версии вопроса было не так.
  • Как увидеть всё значение в поле Pubkey в wireshark?

    shurshur
    @shurshur
    Например, скопировать через ПКМ значение в буфер.
  • Python playwright, как работать с несколькими страницами асинхронно?

    shurshur
    @shurshur
    EnotShow, чтобы асинхронность ускоряла работу приложения, нужно, чтобы в ней было много ввода вывода и как следствие переключений асинхронных задач. Если там много процессорно-ориентированного кода и не происходит ввода-вывода, то это не поможет. Вообще, надо понимать, что в asyncio всё выполняется в один поток, там нет никакого настоящего параллелизма, и "ускорение" заключается в том, что одни задачи могут выполняться в то время, когда другие ожидают ввода-вывода (по сети, в локальные файлы итд). То есть это хороший механизм, но он предназначен лишь для определённого класса задач.

    Если parse_item берёт содержимое страницы и пытается его анализировать, то никакого ввода-вывода в это время не происходит. И если этот процесс упирается в 100% процессора, то даже расставлять внутри asyncio.sleep(0) (который по сути форсирует переключение задач, что иногда помогает) бессмысленно - всё равно в один поток будет работать.
  • Как в ubuntu ext4 узнать размер кластера?

    shurshur
    @shurshur
    pfg21, неправда, tune2fs работает даже с файлами, содержащими внутри файловую систему.
  • Как узнать причину падения monit?

    shurshur
    @shurshur
    WebforSelf, может и не память. Хотя довольно логичное предположение, что обычно ему нет проблем с памятью, а потом вжух! - и за минуту память вся кончается, процесс умирает, появляется много свободной памяти.

    Надо логи читать, возможно там что-нибудь есть о причинах его падения.
  • Как в именах файлов и папок заменить все пробелы на _?

    shurshur
    @shurshur
    Скорее всего на внешнем харде какой-нить exfat, а в проблемном файле например бэкслеш в имени, который там не разрешён. Тут только выяснять, на каком именно файле падает, и его переименовывать.

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

    shurshur
    @shurshur
    xXx_Unity_xXx, когда занимаешься легальным бизнесом, достаточно естественно создавать юрлицо и платить налоги.