Задать вопрос
  • Потрачу ли я время зря, продолжая учиться в ВУЗ'е, который мне не нравится?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Представь себя в качестве соискателя лет через 10. Пусть в некую перспективную фирму ищут нового сотрудника, и перед глазами HR пачка почти идентичных резюме с идентичными зарплатными ожиданиям, но у всех соискателей есть высшее образование в жизненном пути, а у тебя - нет. Кого пригласят на собеседование последним?

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

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

    Пойти и отчислиться можно всегда, это не требует много времени, но потом вернуться будет сложнее, поэтому тщательно взвешивай все "за" и "против". Может, тебе просто лучше сменить направление образования? Перейти в другой вуз? Получить образование заочно?

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

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

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

    Так что и мои советы тоже не спеши принимать за руководство к действию. Решение тебе в любом случае придётся принять самому, но его не следует принимать поспешно.
    Ответ написан
    1 комментарий
  • Как авторизироваться на сайте через requests python?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    В этом файле код https://netschool.eduportal44.ru/static/dist/pages...

    Генерируется как md5(salt+md5(password)).
    Ответ написан
  • Как в данном случае обработать словарь?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    for email,items in a_dict.items():
      for item in items:
        my_send_mail(email, item)
    Ответ написан
    1 комментарий
  • После перезагрузки не запускается iptables на Ubuntu server 20.04?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Какой демон? iptables это не демон. Этот сервис просто загружает сохранённые правила из файла при старте, а при остановке ничего не делает (либо очищает таблицы, в зависимости от настройки).

    Чтобы сохранить текущие загруженные правила, надо просто вызвать netfilter-persistent save.

    Если после перезагрузки в iptables -L есть нужные правила, то всё работает правильно.
    Ответ написан
    2 комментария
  • Возможно ли спарсить номера телефонов с телеграма?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Телеграм всячески декларирует заботу о приватности пользователей, а потому активно борется с бесконтрольным получением данных о телефонах. Так что нет, в общем случае нельзя. Но единичных пользователей можно считывать, если у них не скрыт номер телефона в профиле от посторонних, с помощью клиентского API (не бота). Много пользователей сразу сканировать не получится всё равно.

    Также можно найти пользователей по номеру телефона (тоже в небольших количествах!), если добавить телефон в свой список контактов. Такой вот "обратный" поиск (по номеру). Но при большой активности такого рода Телеграм ей также будет препятствовать.

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

    Рекомендую даже не пытаться, тем более что в целом это лишено смысла. Телеграм - мессенджер, который изначально декларирует, что пользователь идентифицируется другими пользователями НЕ по номеру телефона в качестве основного идентификатора.
    Ответ написан
    Комментировать
  • Как получить в PHP тот же результат что и в OpenSSL?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    https://stackoverflow.com/questions/34496764/php-i...

    $data = file_get_contents("data");
    $pkeyid = openssl_pkey_get_private("file://key.pem");
    openssl_sign($data, $signature, $pkeyid, OPENSSL_ALGO_SHA256);
    openssl_free_key($pkeyid);
    print base64_encode($signature);
    Ответ написан
    4 комментария
  • Как работать с api / бот discord?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Discord API использует HTTP-запросы. Поэтому потребуется любая библиотека для таких запросов (например, libcurl). А дальше курить официальную документацию по API.

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

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Да, у WhatsApp теперь есть официальный API для интеграций. Но только для бизнесов (ИП тоже можно), плюс прямой доступ к API дают только партнёрам-агрегаторам, остальным следует использовать API этих компаний. В России прямых партнёров WA всего два, но ничто не препятствует выбирать любых зарубежных агрегаторов по своему вкусу либо партнёров второго порядка. По ценам, по наличию готовых интеграций и всё такое. Например, jivosite поддерживает интеграцию с WhatsApp, но сам партнёром WhatsApp не является и предлагает зарегистрировать бизнес-аккаунт через двух других поставщиков.

    Стоит это обычно как абонентская плата (включающая определённое количество MAU - Montly Active Users) плюс плата за каждое уведомление-нотификацию, хотя некоторые поставщики предлагают и другие модели оплаты. Поясню: в WhatsApp можно слать два вида сообщений. Во-первых, можно слать сообщения-нотификации, удовлетворяющие зарегистрированным шаблонам (реклама запрещена, только сервисный трафик), они оплачиваются. Во-вторых, если пользователь сам написал сообщение (по своей инициативе или в ответ), то открывается 24-часовое окно, в рамках которого можно слать любые сообщения, даже не удовлетворяющие шаблону, причём они будут бесплатны (но каждая коммуникация с пользователем расходует лимит MAU). 24 часа считается с последнего сообщения от пользователя - предполагается, что уж за сутки надо оказать пользователю поддержку по его обращению. У каждого поставщика обычно подробно всё это написано.

    Для регистрации в таком надо завести и верифицировать в WhatsApp бизнес-аккаунт, делегировав права на его управление нужному партнёру. С учётом процесса модерации подключение легко может потребовать 2-3 недели.

    Если поставщик предлагает копеечную оплату без абонентской платы и без ограничений на количество и содержание сообщений, плюс подключение "за один день" (без модерации Facebook), то это всё нелегальные API, основанные на имитации WhatsApp Web. Использовать их рискованно, так как можно получить бан с необходимостью менять номер.
    Ответ написан
    2 комментария
  • Как постоянно обновлять данные запрашиваемы с google spreadsheet для телеграм бота?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Например, сделать загрузку данных отдельной функцией и запоминать время последнего скачивания. Если в момент вызова send_text текущее время превышает время последнего скачивания больше чем на определённую величину (5 минут, 1 час - насколько часто надо обновлять данные?), то вызвать функцию скачивания ещё раз и обновить переменную с временем последнего скачивания.
    Ответ написан
  • Как с помощью бота запросить разрешение на получение контактов пользователя?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Нужно отправить кнопку с request_contact=True, пример есть тут
    Ответ написан
    Комментировать
  • Python как вывести динамический текст?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Как-то так:
    import time
      
    def progressbar(size=10):
      for i in range(size+1):
        bar = "|"*i+"."*(size-i)
        print (f"\r[{bar}]", end='')
        time.sleep(1)
      print ()
    
    progressbar()
    Ответ написан
    Комментировать
  • Как ловить ботом сообщения из телеграм канала?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Никак, бот не имеет доступа к сообщениям в каналах. Можно использовать MTproto API (клиентское) для таких задач.

    upd: это оказалось неверно, как обсудили в комментариях. Но следует учесть, что в том же telebot вместо @bot.message_handler следует использовать @bot.channel_post_handler
    Ответ написан
  • Как отправлять самому себе сообщения через бота телеграм?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Ошибку, вообще-то надо показывать, кто ж будет решать то не знаю что?

    Но давай я повангую.

    Во-первых, Bot - это класс. Нужно создать его экземпляр:

    from aiogram import Bot
    bot = Bot(token=config.bot_token)


    Во-вторых, при этом всё равно будет ошибка coroutine was never awaited. Потому что асинхронные функции нельзя просто так вызывать из синхронного кода.

    Вызвать можно так:

    async def main():
      await bot.send_message(my_chat_id, my_message)
      await bot.close()
    
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())
    Ответ написан
    Комментировать
  • Получится ли сохранить файлы в торрентах или IPFS, на десять лет?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Не сработает. Даже востребованным у пользователей старым раздачам на том же рутрекере уже требуется поддержка со стороны группы хранителей, а чужие непонятные файлы вообще никто никогда хранить не будет. Ну и нужно понимать, что место под хранение данных - оно по определению не бесплатное. Поэтому мечты о том, что кто-то будет просто так, по доброте душевной, хранить твои гигабайты, крайне наивны.
    Ответ написан
  • Законна ли Viber рассылка?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Размещение пользователем своего номера на "доске объявлений" не означает согласие на получение рекламной информации даже от самой доски объявлений, не говоря уже о рекламе от третьих лиц и организаций.

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

    Добавлю, что если речь идёт о сервисе Viber Business Messages, то там и формально такая реклама запрещена, и рассылка по случайно собранным номерам сама по себе гарантированно и очень быстро приводит к превышению порога 5% жалоб, по которому сервис сразу же банят. Например, один такой бизнес сразу достиг 80% блокировок, после долгих переговоров и клятвенных обещаний его разбанили, но до повторного бана сервис прожил недолго.
    Ответ написан
    Комментировать
  • Проблемы с запуском бота на Windows 7?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Скорее всего установлен не тот телебот.

    pip uninstall telebot
    pip install pytelegrambotapi
    Ответ написан
    Комментировать
  • Как сделать реплай в общем чате телеграм?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    bot.send_message(message.chat.id, "Цитирую!", reply_to_message_id=message.message_id)
    Ответ написан
    3 комментария
  • Почему get_user() возвращает None?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Нужно включить members intents https://discordpy.readthedocs.io/en/latest/intents.html
    И в настройках бота в dev portal разрешить privileged intents.
    Ответ написан
    Комментировать
  • Как отправить сообщение telegram, viber, whatsapp - без ботов? PHP?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Тут этот вопрос регулярно задают.

    Telegram - никак, вообще. Пусть нужные пользователи подпишутся на бота, а дальше им по user id можно слать.

    Viber - платно и довольно дорого через Viber Business Messages, цена одного сообщения не меньше чем смс, плюс минимальный ежемесячный платёж довольно большой. Доступ только бизнесам. Точно так же проще сделать бота и слать по id.

    WhatsApp - тут никаких бесплатных ботов легально не предусмотрено вообще, зато можно по номеру телефона тоже довольно дорого через множество посредников. Опять же, только бизнесам. В основном это продают тоже с обязательным минимальным платежом, но тут хотя бы у некоторых (у того же twilio) есть тарифы без абонентки, с оплатой за каждое сообщение. Ещё можно рисковать нелегальными методами через эмуляцию WhatsApp Web.
    Ответ написан
    7 комментариев
  • Что я упускаю при руссификации консоли?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    В отличие от Debian, в Ubuntu файлы локализации вынесены в отдельный пакет language-pack-ru, установка которого решает проблему.
    Ответ написан
    Комментировать