Задать вопрос
  • Как на PHP послать ссылку в мессенджер?

    shurshur
    @shurshur
    Евгений Иванов, пользователь пишет боту. Бот периодически дёргает метод /getUpdates и полчает сообщения от пользователей. В сообщениях есть chat_id.

    И это, не надо думать, что API это для спама. Не надо "послать ссылку в мессенджер по базе пользователей", это чистый спам и за это блокируют везде. В WA именно с этого и начинаются все блокировки "Моего Очень Нужного WhatsApp Аккаунта" за нарушение условий.
  • Как исправить TypeError: Object of type Button is not JSON serializable?

    shurshur
    @shurshur
    Максим Невзоров, ого, он проснулся и решил разрабатывать дальше.
  • Создать переменные из массива чтобы оно само создало?

    shurshur
    @shurshur
    Настоятельно рекомендую НИКОГДА ТАК НЕ ДЕЛАТЬ. Если нужны константы - то сгенерировать их один раз (можно отдельным файлом и импортировать), если нужны какие-то динамические данные (к примеру, лежащие в файлике txt/yaml/json/xml/что-то-ещё рядом) - использовать словарь.
  • Выдержит ли бот написанный на Python Aiogram нагрузку 10000-50000 человек в минуту?

    shurshur
    @shurshur
    Выдержать-то может и выдержит, но ответить каждому без дополнительных телодвижений не сможет, потому что скорость отправки сообщений - 30 штук в секунду. А тут придётся более 160. Но это как раз можно решить через поддержку Телеграма и поднять лимит. А вот то, что при такой нагрузке придётся решать проблемы явно не связанные с aiogram довольно очевидно. Например, придётся позаботиться о скорости работы базы данных (а точнее даже об отложенной записи в неё) и уж точно отказаться от популярной у начинающих sqlite.
  • Как сделать музыку на сайте так же как в вк?

    shurshur
    @shurshur
    Марк Ешкилев, не надо воспринимать "можно как-то сделать" как какую-то плёвую задачу на пять минут. И ни у кого нет действительно всей музыки в мире. Даже у монстров типа ютуба или спотифая.

    Вопрос о легализации музыки следует начинать тогда, когда мессенджер дорастёт до такого уровня, чтобы содержать хотя бы одного юриста. А пока это ручное поделие для "я с друзьями", для сохранения в котором хочется чистоты и легальности, проще реализовывать невозможность посылать музыки совсем. Или вместо пересылки файлами разрешить пересылку ссылок на тех самых, кто о своей легальности позаботился (в конце концов, шлют же пользователи видео с ютуба как ссылки, но с просмотром в embeded browser, без передачи самих видеофайлов).
  • Какой библиотекой python воспользоваться, что бы получить аналог кода на PHP?

    shurshur
    @shurshur
    Михаил, для начала посмотреть какие он делает запросы, иногда там бывает что-нить очевидное уровня /rest/get/product/123.
  • Какой библиотекой python воспользоваться, что бы получить аналог кода на PHP?

    shurshur
    @shurshur
    Михаил, ну вот при driver.quit() браузер закрывается.

    Глядя на вопросы, я бы рекомендовал обратиться на фриланс.
  • Какой библиотекой python воспользоваться, что бы получить аналог кода на PHP?

    shurshur
    @shurshur
    Михаил, php точно так же будет загружать "шаблон" и в нём точно так же надо будет как-то доставать данные, или запуском headless-браузера, или изучением сайта для повторения его механизма. Как я уже и писал в https://qna.habr.com/q/1151358

    PS: судя по этому коду, он находит в районе слов ssrModel json'чик с нужными данными. Ничто не мешает это повторить хоть на python, хоть на fortran, главное язык знать и понимать, а не пытаться решать методом тыкания булавкой по колесу.
  • DigitalOcean или РФ хостинг с серверами в европе?

    shurshur
    @shurshur
    CityCat4, сама крипта при этом всё равно вне политики.

    Но её же непосредственный недостаток в том, что там всё открыто. Я предвижу, что путём датамайнинга из криптовалюты научатся выделять токсичные активы вроде связанных с российскими олигархами, наркоторговлей и чёрным рынком и будут блокировать их использование конечными получателями, использующими криптовалюты. Если бумажные доллары с некоторыми номерами неизвестно где ходили, пока перетекали из какой-нибудь забегаловки в Сиэттле до застреленного при задержании наркобарыги из Эфиопии, то с криптой весь путь каждого нанобиткойна полностью виден от и до. И чем крупнее суммы, тем тяжелее их скрыть.
  • DigitalOcean или РФ хостинг с серверами в европе?

    shurshur
    @shurshur
    CityCat4, это не крипта, а биржа, которой люди отнесли свои кровные. Кто ж заставлял их туда относить?
  • Как парсить карточку товара Wildberries на python?

    shurshur
    @shurshur
    Михаил, вообще-то нет, он запускает браузер при инициализации веб-драйвера. Но, конечно, держать запущенным целый браузер неприятно.

    Копать в сторону анализа запросов, которые делает браузер на этой странице, к чтению js-кода на ней... В зависимости от хитровывернутости программеров этого сайта всё может быть от "данные лежат в json прям в тексте страницы" до "данные получаются из вебсокетов, зашифрованные каким-нибудь криптографическим алгоритмом с необычными параметрами"..
  • Telegram bot для вырезки отчетов из Excel на Python?

    shurshur
    @shurshur
    За готовыми решениями полагается обращаться на фриланс, например https://freelance.habr.com/
  • Как получить локализованные новости игры?

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

    shurshur
    @shurshur
    alexeimene, в такой форме это задание, а не вопрос, и нарушает правила сайта. За выполнением заданий - на фриланс. Например, прям на хабровый https://freelance.habr.com/
  • Роли в боте вк sql?

    shurshur
    @shurshur
    Артём Смирнов,
    UC_PROGRAMMER int, user_class dick если не ошибаюсь


    Именно так. Причём как сравить словарь с числом - непонятно. Причём непонятно и как вообще сравнивать, и зачем вообще сравнивать. Кстати, если уж копируешь мой пример, зачем явно определённое название user_class_names изменил на user_class?

    get_user_class(user.id) за что отвечает


    Это функция, которую ещё надо написать. Она может брать user_class из базы, или может из какого-то кэша (например, глобальной переменной-словаря со всеми пользователями), может генерировать класс по умолчанию для пользователя, которого нет в базе...

    Я же говорил, что привёл пример для описания принципа, а не законченное решение задачи.
  • Роли в боте вк sql?

    shurshur
    @shurshur
    Артём Смирнов, зачем user.id сравнивать с user_class? И предлагаю угадать, кто из них int, а кто dict...
  • Роли в боте вк sql?

    shurshur
    @shurshur
    Артём Смирнов, искать ошибку и исправлять её.
  • Роли в боте вк sql?

    shurshur
    @shurshur
    Артём Смирнов, очевидно, что в сравнении используются dict и int. Например, вместо user.id передаётся какой-нить декодированный json.
  • Как получить локализованные новости игры?

    shurshur
    @shurshur
    AHTUxPK, если этот API-метод используется на сайте, то посмотреть, что браузер отправляет на сайт, и пытаться воспроизвести. Возможно, там банально заголовок Accept-Languages поможет.
  • Discord.py Хочу сделать команду autoclear и присвоить ее каналу, но не пойму как это реализовать?

    shurshur
    @shurshur
    y0uSh4, уже лучше и даже наверное как-то будет работать. Но есть замечания.

    Не надо в on_ready делать бесконечный цикл. Лучше сделать отдельный таск, в котором в начале сделать bot.wait_until_ready() (это замена запуска из on_ready), и запустить его до запуска бота. А ещё удобнее использовать discord.ext.tasks безо всяких циклов - discord.py сам будет вызывать функцию с указанным интервалом:

    from discord.ext import tasks
    
    @tasks.loop(seconds=5)
    async def timer_task():
        await bot.wait_until_ready()
        ...
    
    timer_task.start()
    bot.run(TOKEN)


    Код станет гораздо компактнее и нагляднее.

    Но даже так, флудить в API дискорда каждые 5 секунд запросами purge может быть не очень разумно. Правильнее идти "от события": удалять сообщения по мере их появления (они ещё и исчезать будут быстрее, не через 5 секунд), и только при старте бота делать purge (удалять то, что бот не словил в момент его оффлайна), примерно так:

    @bot.event
    async def on_message(message):
        await bot.process_commands(message) # чтобы команды работали
        if message.channel.id == 972431181624791060:
            await message.delete()
    
    @bot.event
    async def on_ready():
        channel = bot.get_channel(972431181624791060)
        await channel.purge(limit=0)


    Всё это, конечно, ещё далеко от "команды autoclear", для которой надо будет при вызове на нужном канале проверять, что её использовал пользователь с админскими правами (есть декоратор для команд) и затем добавлять в какой-то список каналов (сохраняемый куда-нибудь в базу или на диск). Вместо проверки одного канала, соответственно, проверять наличие channel.id в списке наших id. И для вызовов purge не забывать сначала проверять, что get_channel вернул не None. Потому что если хоть на одном из серверов, где есть бот, удалят хотя бы один из этих каналов, то бот сломается и остальные каналы не почистит.

    И да, конечно, нужно будет предусмотреть команду "выключения autoclear".

    В целом мне непонятно, зачем это нужно. Проще просто закрыть возможность писать пользователям в соответствующие каналы, и даже бот не потребуется. Разве что как учебно-тренировочная задача...