• Проблема с установкой PySat?

    TemaSM
    @TemaSM
    Akiho, отлично! Скорее всего перезагрузка ПК помогла после внесенных вами вчера изменений в набор служебного софта и его библиотек на системе.
    *Если считаете что мой чеклист в ответе может кому-то помочь с решением аналогичной проблемы - было бы здорово отметить мой ответ как решение вашего вопроса =)
  • Ошибка ERR_CONNECTION_REFUSED, что не так?

    TemaSM
    @TemaSM
    whireless, могу ошибаться, но req.on('data') внутри обработчика роута не даст вам данных из запроса, потому что все эти данные уже под капотом Express преобразовались в буфер, который был записан в поле req.body, через которое вы и можете получить поступившие по POST запросу данные (тело).
    Предлагаю вам ознакомиться более детально с доками Express (которые однако по моему мнению не оч удобные) и устройством http-сервера и запросов Nodejs (https://nodejs.org/en/docs/guides/anatomy-of-an-ht...).
    И вот этот материал думаю будет прям полезен для вашей текущей задачи:
    https://codeforgeek.com/handle-get-post-request-ex...

    А по поводу отсутствия вывода инфы об успешности запуска сервера из listen() - да, вывод на консоль действительно должен быть, но возможно что-то этому препятствует (но это вовсе не значит что сервер не запустился).

    И ещё - не уверен что https режим вам нужен (где вы сертификат и ключ подгружаете). Для начальной разработки более чем достаточно обычного http, без заморочек с сертификатами на локальном ПК разработчика. Это может потенциально снизить кол-во возможных "затупов" при вашей разработке, и сэкономит ваше время.
  • Pyrogram пересылает группу медиафайлов несколько раз?

    TemaSM
    @TemaSM
    plsHelp11,
    Скриншот под спойлером:

    64047cb3b4eef320273079.png

    Код под спойлером:

    import pyrogram
    import config
    from pyrogram.types import InputMedia
    
    channels = []
    lm = []
    
    with open('channels.txt','r') as f:
      for channel in f.read().split('\n'):
        channels.append(channel)
    
    app = pyrogram.Client('my_account', config.api_id, config.api_hash)
    
    @app.on_message()
    def copy_to_my_channel(app, message):
      print(message)
      if str(message.chat.id) in channels:
        if message.media_group_id is None:
          app.copy_message(from_chat_id=message.chat.id, chat_id=config.my_channel, message_id=message.message_id)
        else:
          if message.media_group_id not in lm:
            media_group = app.get_media_group(chat_id=message.chat.id, message_id=message.message_id)
            input_media = [InputMedia(media.photo.file_id, type='photo') if media.photo is not None else InputMedia(media.document.file_id, type='document') for media in media_group]
            app.send_media_group(chat_id=config.my_channel, media=input_media)
            lm.append(message.media_group_id)
        print('Пост опубликован')
    
    app.run()


    Вам надо доработать код под себя - перебирать содержимое медиа-группы, преобразовывая каждую сущность (photo, video, audio и тд) в походящий формат Pyrogram, который ожидается на входе в аргументе media у функции send_media_group.
    Если есть с этим сложности, можно попробовать найти на Гитхабе примеры использования этой функции в других репозиториях - глобальным поиском по коду на Гитхабе, или просмотром репозиториев использующий Pyrogram у себя в проектах: https://github.com/pyrogram/pyrogram/network/dependents
    И не забывайте конечно же про отладку построковую, используя полноценные IDE под Python или тот же VS Code.
  • Как отключить звук, исходящий из приложения на React Native (Android, iOS)?

    TemaSM
    @TemaSM
    andranikTomskiy, к сожалению да. На разных прошивках андроида "из коробки" есть возможность индивидуального контроля громкости звука для приложений, но тоже не при параллельном режиме их работы.
    Если например прослушивать музыку в одном приложении, и в другом одновременно, то для их выходных звуковых потоков будет использоваться единая системная громкость мультимедиа-потока.
    Но тут интересный момент - можно перед отправкой звука в системный мультимедиа-поток, на лету "уменьшать" его громкость на уровне приложения (эдакий эквалайзер на минималках) - что-то типа реалтайм конвертера звука. В таком случае попадающий в системный поток буфер будет воспроизводить либо белый шум (по сути то что вам и нужно, чтобы замютить видео) либо звук с уменьшением dB.

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

    TemaSM
    @TemaSM
    Елена, как там у вас, получилось?)
    Если да, то будет здорово услышать каким образом, чтобы мы опубликовали к вашему вопросу корректный ответ - его смогут найти в интернете в будущем, а значит что кому-то поможем этим.
  • Почему не игнорируются файлы venv, добавленной в .gitignore?

    TemaSM
    @TemaSM
    Сергей Кузнецов, спасибо. Привык так на работе и повседневно писать, чтобы (по моему мнению) не коверкать англицизмы и названия брендов/софта. Улучшил ответ, проверьте пожалуйста лучше ли стало.
  • Pyrogram пересылает группу медиафайлов несколько раз?

    TemaSM
    @TemaSM
    Так код же не совсем корректный у вас, перепроверьте ещё раз.
    Я создал глобальную переменную и в неё пишу, а когда приходит новое сообщение, сверяю есть ли эта картинка (файл) уже в этом списке глобальном или нет - если есть, то добавляю, объединяя.
    Скопируйте прям весь код к себе, посмотрите доработайте под себя.
  • Pyrogram пересылает группу медиафайлов несколько раз?

    TemaSM
    @TemaSM
    plsHelp11,
    скорее всего так

    import pyrogram
    import config
    from pyrogram.types import InputMedia
    
    channels = []
    lm = []
    
    with open('channels.txt','r') as f:
      for channel in f.read().split('\n'):
        channels.append(channel)
    
    app = pyrogram.Client('my_account', config.api_id, config.api_hash)
    
    @app.on_message()
    def copy_to_my_channel(app, message):
      print(message)
      if str(message.chat.id) in channels:
        if message.media_group_id is None:
          app.copy_message(from_chat_id=message.chat.id, chat_id=config.my_channel, message_id=message.message_id)
        else:
          if message.media_group_id not in lm:
            media_group = app.get_media_group(chat_id=message.chat.id, message_id=message.message_id)
            input_media = [InputMedia(media.photo.file_id, type='photo') if media.photo is not None else InputMedia(media.document.file_id, type='document') for media in media_group]
            app.send_media_group(chat_id=config.my_channel, media=input_media)
            lm.append(message.media_group_id)
        print('Пост опубликован')
    
    app.run()

  • Pyrogram пересылает группу медиафайлов несколько раз?

    TemaSM
    @TemaSM
    plsHelp11, увидел ещё что в коде на скрине есть фильтрация у хендлера сообщений по media_group признаку. Надо бы его убрав и подебажиться.
  • Pyrogram пересылает группу медиафайлов несколько раз?

    TemaSM
    @TemaSM
    plsHelp11, кстати, уже близки. То что на скрине на 24 строчке - надо бы msg.photo оборачивать в InputMediaPhoto(), причём таким образом: InputMediaPhoto(msg.photo.file_id) - говорим что хотим использовать файл который уже есть на сервах ТГ.

    https://docs.pyrogram.org/api/methods/send_media_group (тут пример внизу)
    https://docs.pyrogram.org/api/types/InputMediaPhoto
  • Pyrogram пересылает группу медиафайлов несколько раз?

    TemaSM
    @TemaSM
    plsHelp11, да, странно.
    Значит надо предварительно формировать список из фото/видео которые нужно отправить, вытаскивая их из поля Message'а например photo (там где file_id, file_size и тд).
    Изначально хотели просто пересылать в другом место уже отправленное куда-то сообщение содержащее альбом фото/видео, верно?
  • Pyrogram пересылает группу медиафайлов несколько раз?

    TemaSM
    @TemaSM
    plsHelp11, метод принимает на вход такой список сущностей (из доки взято): InputMediaPhoto, InputMediaVideo, InputMediaAudio and InputMediaDocument, причём в количестве от 2 до 10 (включительно). Ошибка падает у вас здесь:
    https://github.com/pyrogram/pyrogram/blob/master/p...
    Как видно, не срабатывает проверка на тип контента, отправляемого в аргументе media.
    Надо подебажить что там уходит у вас в этот метод (смотреть в переменную media_group).
  • Pyrogram пересылает группу медиафайлов несколько раз?

    TemaSM
    @TemaSM
    plsHelp11, send_media_group() отправляет именно медиа-контент, а не текстовые сообщения.
    Документация по этому методу: https://docs.pyrogram.org/api/methods/send_media_group
  • Ошибка ERR_CONNECTION_REFUSED, что не так?

    TemaSM
    @TemaSM
    whireless, судя по вкладке Network - всё в полном порядке. Возможно в консольке вовсе не на этот запрос падает ошибка.
  • Ошибка ERR_CONNECTION_REFUSED, что не так?

    TemaSM
    @TemaSM
    whireless, а есть скриншот ошибки из консольки Firefox'а и из вкладки Network в DevTools?
  • Как сделать автоматическую конвертацию лида в сделку в Битрикс24?

    TemaSM
    @TemaSM
    Для автоматической конвертации лида в сделку в Битрикс24 можно использовать инструменты автоматизации, такие как Роботы или Автоматизация Бизнес-процессов.

    1. Использование Роботов:
    • Войдите в свою учетную запись Битрикс24
    • Перейдите в раздел CRM
    • Откройте раздел "Настройки" и выберите "Роботы"
    • Создайте нового Робота и задайте условие для запуска, например, когда лид достигает финальной стадии "Завершить работу"
    • Установите действие "Создать новую сделку" и выберите нужную воронку и стадию для создания новой сделки.

    2. Использование Автоматизации Бизнес-процессов:
    • В разделе CRM выберите "Настройки" и "Бизнес-процессы"
    • Создайте новый бизнес-процесс и выберите стартовую точку "Перевод лида в стадию Завершить работу"
    • Добавьте действие "Создать новую сделку" и выберите нужную воронку и стадию для создания новой сделки.

    Оба способа позволят автоматически создавать сделки при переносе лида в финальную стадию "Завершить работу" без использования промежуточной стадии.
    Если у вас возникнут трудности в настройке, советую всё таки обратиться за помощью в службу поддержки Битрикс24 - там более точно подскажут вам и помогут.
  • Почему при подключении ui библиотеки к next.js приложению происходит ошибка?

    TemaSM
    @TemaSM
    luxurypluxury, предлагаю рассмотреть этот топик - https://stackoverflow.com/questions/49111086/webpa..., и в целом погуглить свою проблему более детально, именно в сторону настроек вебпака.
  • Почему при подключении ui библиотеки к next.js приложению происходит ошибка?

    TemaSM
    @TemaSM
    luxurypluxury, надо попробовать закомментировать параметр globalObject и попробовать без него. А если не получается, то попробовать выставить ему такое значение, и снова повторить итерацию с публикацией/установкой/попыткой сборки своего фронта с подключенной либой:
    globalObject: "typeof self !== 'undefined' ? self : this",
  • Как анимировать через JS?

    TemaSM
    @TemaSM
    Добавьте: div.style.position = 'absolute';
    тогда позиционирование у элемента будет абсолютным и будет работать свойство left
  • Почему при подключении ui библиотеки к next.js приложению происходит ошибка?

    TemaSM
    @TemaSM
    luxurypluxury, не видя исходников библиотеки невозможно ответить на этот вопрос. Тут 50 на 50:
    Либо меняется что-то в самих исходниках либы.
    Либо меняется в параметрах сборщика, который по итогу транспилирует файлы в выходной бандл, который вы затем публикуете на npm.

    Попробуйте с исходников. Посмотрите на скриншот выше, попробуйте методом перебора и исключения подобраться максимально близко к похожему месту, и возможно что-то там найдёте что требует фикса.

    Если попытки будут тщетны, переключитесь на проработку варианта того, "а правильно ли я собираю выходной бандл библиотеки?" (EJS, UMD, CJS и тд). Возможно в рамках этой задачи стоит посмотреть в сторону babel если его используете - обновите его и смежные либы до последних версий. пересоберите всё и снова опубликуйте.
    И не забывайте что при npm install в первую очередь используется кеш с ПК, поэтому очищайте кеш и устанавливайте через npm install --force.