Задать вопрос
  • Как скрыть наличие вкл. Впн от Билайн?

    shurshur
    @shurshur
    Бесплатная работа соцсетей никак не связана с работой VPN. Соцсети и другие сетевые сервисы были бесплатны (в рамках стандартного тарифа или дополнительных услуг) только при доступе к ним мимо VPN.
    Написано
  • Какие посоветуете учебники по вышмату?

    shurshur
    @shurshur
    Pagidze, из того что не упоминали - математическая логика и теория алгоритмов (вычислимость, машина Тьюринга итд).
    Написано
  • Почему обновленный ключ по времени выдает ошибку прав доступа?

    shurshur
    @shurshur
    А если прописать ключ у себя в системе и попробовать ssh -v git@gitlab.com?
    Написано
  • Как сделать функцию с call и message в pytelebot?

    shurshur
    @shurshur
    Стёпа, в коде в пблоке else делается отправка нескольких сообещений.

    Надо начвать мыслить принципиально иначе. Бот не делает последовательные действия. Бот реагирует на СОБЫТИЯ, генерируемые пользователем. Пользователь нажал /start - событие. Пользователь ввёл текст - событие. Пользователь нажал на кнопку - событие.

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

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

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

    А в куске кода в вопросе в блоке else просто выполняется сразу - не в ответ на события, а прям сразу - несколько противоречивых действий по отправке сообщений.

    Причём и сама функция фиг знает чём. Там параметр call, а внутри функции есть ещё непонятно откуда message.

    В общем, советую сначала разобраться с этим. Понять общий принцип работы. Написать пока просто часть без кнопок, которая спросит у пользователя все вопросы и примет заявку. И дальше уже потом усложня.
    Написано
  • Как перенести Whatsapp с одного ПК на другой?

    shurshur
    @shurshur
    WA в любом случае ставится на телефон, а потом телефонным клиентом сканируется QR-код. Вот через этот QR-код и надо авторизоваться на новом компе.
    Написано
  • Как сделать функцию с call и message в pytelebot?

    shurshur
    @shurshur
    Использовать register_next_step_handler, как в официальном примере https://github.com/eternnoir/pyTelegramBotAPI/blob...
    Написано
  • Как отправлять картинку с графиком из Grafana в Telegram ???

    shurshur
    @shurshur
    HightWolt, давно смотрел последний раз как там в графане алерты устроены, не помню, можно ли там вызывать скрипт или надо всё же webhook. Но в целом сделать маленький наколеночный сервис, который пошлёт сообщение, это дело вполне себе обычное и не нужно слишком сильно его бояться.
    Написано
  • Как отправлять картинку с графиком из Grafana в Telegram ???

    shurshur
    @shurshur
    HightWolt, эту картинку по ссылке надо скачать и потом отправить её в Телеграм. В принципе, в Телеграм можно отправлять по ссылке, но эта ссылка должна быть открыта в интернет, а тут она на внутреннем хосте, и кажется не очень хорошей идея свою графану светить наружу.
    Написано
  • Как отправлять картинку с графиком из Grafana в Telegram ???

    shurshur
    @shurshur
    Картинка в виде файла отправляющему скрипту есть? Вот и надо отправить её методом sendPhoto
    Написано
  • Как убрать в рассылке от плагина Contact Form 7 уведомление о спаме?

    shurshur
    @shurshur
    Refguser, нет, я вполне по делу.

    Например, Thunderbird в конфигурации по умолчанию вообще не подгружает изображений по внешним ссылкам, пока пользователь не нажмёт кнопку, разрешающую это сделать. Чтобы получить нормальное письмо, не требующее действий от получателя, надо картинки загнать в аттачи с Content-Disposition: inline и использовать внутренние ссылки.

    Естественно, какие-то почтовые клиенты могут делать подобное лишь при некоторых условиях, например, при наличии заголовков от спамфильтра (типа X-Spam-Status).
    Написано
  • Как сменить маршрут до игрового сервера?

    shurshur
    @shurshur
    Это даже вне юрисдикции оператора чаще всего. Решают магистралы.
    Написано
  • Как убрать в рассылке от плагина Contact Form 7 уведомление о спаме?

    shurshur
    @shurshur
    Refguser, ссылки вида cid:content_id_файла_в_аттаче.

    Вот кусочек моего старого кода, который отправляет письма.

    def send_message(_from,to,subject,text,html=None,attachments=None):
      if isinstance(to, str):
        to = to.split(",")
      att = []
      msg = EmailMultiAlternatives(subject, text, _from, [], bcc=to)
      if html:
        msg.mixed_subtype = 'related'
        msg.attach_alternative(html, "text/html")
      if attachments:
        mime = mimetypes.MimeTypes()
        for a in attachments:
          with open(a,"rb") as f:
            content = f.read()
            content_type = mime.guess_type(a)[0]
            #print ("Attach %s as %s" % (a, content_type))
            if content_type:
              c1, c2 = content_type.split('/')
            else:
              c1 = "application"
              c2 = "octet-stream"
            part = MIMEBase(c1, c2)
            fn = os.path.basename(a)
            disposition = "attachment"
            if html and re.search('cid:'+fn, html):
              disposition = "inline"
            part.add_header("Content-Disposition", disposition, filename=fn)
            part.add_header("Content-ID", '<'+fn+'>')
            part.set_payload(content)
            encoders.encode_base64(part)
            msg.attach(part)
      msg.send()
    Написано
  • Способы хранения медиа в telethon?

    shurshur
    @shurshur
    nedland, я бы попробовал потом созданное сообщение ещё раз запросить (в отличие от Bot API, тут это можно) и проверить, что в нём.

    (Насчёт быстрого ответа - удачно зашёл на сайт)
    Написано
  • Способы хранения медиа в telethon?

    shurshur
    @shurshur
    nedland, скорее всего проблема в том, что надо использовать media_id, а не прямые ссылки на файлы. Вот прямые ссылки регулярно протухают, а media_id не должен.

    Но я файлы только в Bot API посылал.
    Написано
  • Как убрать в рассылке от плагина Contact Form 7 уведомление о спаме?

    shurshur
    @shurshur
    Для начала проверить как картинки добавлены в письмо. Если по внешним ссылкам - многие почтовые клиенты нельзя уговорить их открывать вообще никак. Потому что это позволяет контролировать открытие письма и выдаёт IP пользователя серверу. Что очень нехорошо с точки зрения безопасности.

    Вместо это картинки надо делать аттачами к письму. Тогда они будут показываться.
    Написано
  • Как правильно использовать S3 хранилища, и на сколько моя идея верна?

    shurshur
    @shurshur
    Не надо верить людям, которые рассказывают сказки про "это не путь". В случае minio - это именно путь! Надо сразу иметь в голове тот механизм, который minio на самом деле использует для хранения данных. А minio хранит каждый бакет как каталог, в котором путь отражается в иерархии каталогов на файловой системе и конечный файл представляет из себя ещё один каталог, внутри которого два файла: json с метаданными и шифрованный блоб с содержимым.

    Если в одном каталоге (в одном уровне иерархии) у minio будут миллионы записей, а сами данные хранятся на HDD (распространённая ситуация для хранения), то регулярно будут начинаться дикие тормоза на том, что операционная система будет вычитывать этот каталог с диска в память. И лучше не решать это установкой SSD, лучше решать это правильно, не создавая такую ситуацию с самого начала. Тем более что это совсем несложно. Достаточно раскладывать файлы по каталогам на основе даты, или диапазонов id, или хеша от имени (например, берём md5 и первые 2-3 символа - хеш), или по каким-то ещё логическим признакам в бизнес-логике.

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

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

    С точки зрения minio два каталога в одном бакете и два бакета ничем не отличаются.

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

    Временные ссылки - да, так их и используют часто. Сам minio их тоже не хранит, вся информация представлена в самой ссылке (время протухания и криптографическая подпись всего адреса). Поэтому можно хоть тысячу ссылок на один файл сделать - это никак не повредит производительности ни minio, ни вашего приложения.

    Если делать проксирующий сервис (как тут в ответах посоветовали) - то да, так тоже делают - но рекомендую подойти к созданию такого аккуратно, тяп-ляп точно не надо. Иначе можно получить ситуацию, когда перед суперэффективным распределённым хранилищем наскоро написанный скрипт на php, который помрёт от сотни запросов или будет падать от любого чиха. Там может быть важно правильно обрабатывать partial content (поддерживать докачку) и всё такое. Между прочим, эффективность промышленных прокси-серверов (nginx, haproxy, envoy итд) по сравнению с наколенными поделками - это сильный аргумент в пользу того, чтобы свой проксирующий сервис не делать вообще. С другой стороны, откровенно показывать наружу, что фактически используется minio - это создавать риски целенаправленной атаки именно на minio. Ну, это вполне обычные риски, конечно, но их надо понимать.
    Написано
  • Установка прав доступа на все файлы?

    shurshur
    @shurshur
    Valdemar Smörman, комментарии тут оставляют люди с большим опытом, им детскую инструкцию про sudo кидать не надо.

    Опытные люди говорят умные и правильные вещи, надо в них вникнуть и самому стать умнее и опытнее.

    Кратко: все эти телодвижения из "ответа" не помогут, потому что проблема у автора вопрос вообще никогда не была связана с sudo.
    Написано
  • Один из сайтов на домене не доступен, не могу понять почему?

    shurshur
    @shurshur
    ArcheRAWG,
    я думаю в таком случае хотя бы письмо прислали, как владельцу домена


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