• Бот написанный на Python не работает после выключения компьютера?

    pro100chel
    @pro100chel Куратор тега Python
    Python && PHP Developer
    Бот на Python - эта та же самая программа. А программа должна где-то исполняться.

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

    Своего бота ты можешь разместить на любом vds/vps или выделенном сервере. Также можно воспользоваться хостингом приложений в облаке по типу heroku.
    Ответ написан
    Комментировать
  • Как запустить два и более longpool ВК ботов на одном сервере?

    pro100chel
    @pro100chel Куратор тега Python
    Python && PHP Developer
    Да без проблем, запускай.

    Просто каждого бота загоняй в screen, чтобы они могли работать после отключения от ssh.
    Ответ написан
  • Как мониторить запущенный скрипт с помощью стороннего сервиса?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Какой-нибудь cloud functions или как он там у гугла называется.

    Пусть по таймеру вызываетсч функция и делает http запрос на адрес, который слушает скрипт. Если скрипт ответил - все в поряде (наверное), а если не ответил - выполнится какое-то действие. А какое - уже тебе выбирать. Можно smtp отправить письмо, или в телегу или в вк. По вкусу
    Ответ написан
    Комментировать
  • Возможно ли воссоздать перенос сообщений из обсуждений в ВК в Дискорд?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Конечно)
    Если ты можешь получить информацию в браузере - значит ты можешь получить ее и парсером.
    Ответ написан
    1 комментарий
  • Как ограничить количество запросов после многократных нажатий на кнопку?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Самое простое что можно сделать - заносить перед запросом в базу id юзера в список какой-нибудь. А после запроса в базу - удалять из списка. При регистрации проверять наличие id юзера в этом списке. Если он там есть - ничего не делаем.

    ======
    Еще один способ. Вынести процесс регистрации юзера в отдельный поток. Это позволит в порядке очереди обслуживать запросы на регистрацию и не допускать дубли в базе.
    =======
    Еще способ. В базе на id юзера ставить уникальный индекс. Это на уровне СУБД не даст сделать дубль.
    Ответ написан
  • Как перенести куки через nginx?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Не надо это делать через nginx.

    Достаточно указать нужные параметры при установки cookie. (Домен *.domain.ru). В этом случае кука поставится для основного домена или для поддоменов.
    Ответ написан
  • Как посчитать сколько прошло секунд с даты до другой?

    pro100chel
    @pro100chel Куратор тега Python
    Python && PHP Developer
    Вот что-то по типу этого
    a, b, t1, t2 = '12:44:11'.split(':'), '12:45:55'.split(':'), 0, 0
    
    for i in range(2, -1, -1):
        t1, t2 = t1 + 60**i*int(a[2-i]), t2 + 60**i*int(b[2-i])
    
    print((86400 - t1) * int(t2 < t1) + t2 - t1 * int(not (t2 < t1)))

    Тут также учтено то, что второе время может быть взято из следующего дня
    Ответ написан
    6 комментариев
  • Нормально ли хранить код проверки телефона по SMS в куках?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Зачем ты хочешь использовать этот настолько дэбильный способ хранения кода?

    Что это за хеш такой от кода, времени и соли?
    Что-то по типу sha256("1630540800|salt2281488|99414")?
    А как ты собрался валидировать этот код? Тебе в любом случае надо хранить время и соль на сервере.

    А какой тогда смысл использовать эту схему? В любом случае скомпрометированный сервер позволит злоумышленнику украсть код.

    Вся схема кода на почту/sms сводится с простой табличке.
    id|code|token|attemps|expired
    Все, больше ничего.
    При запросе кода вешаем куки с идентификатором (секретным токеном) кода в базе. При попытке ввода проверяем expired и attemps. По желанию attemps можно вынести в отдельную таблицу для того чтобы чутка решить проблему, когда злоумышленник сможет использовать, допустим, не 3 попытки, а чуть больше.
    Ответ написан
  • Брать ли защиту OVH для игрового сервера?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Зачем брать ovh для туннелирования, если можно взять на ovh сервак и туда уже ставить сервера майна.

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

    pro100chel
    @pro100chel
    Python && PHP Developer
    Вебхуки это один из способов общения вашего приложения для бота с телеграм.

    В случае если ты используешь этот способ общения (вебхуки) то тебе нужно иметь веб-сервер, который будет слушать поступающие запросы и отвечать на них. За этим же веб сервером должно крутиться приложение.
    Это может быть php или тот же самый python.
    В качестве веб сервера можно взять nginx.

    А лучше всего одуматься и использовать уже готовые библиотеки для написания телеграм бота.

    На python есть отличная библиотека aiogram
    Ответ написан
  • Как отправить изображение с imgur в Telegram Bot Python?

    pro100chel
    @pro100chel Куратор тега Python
    Python && PHP Developer
    Потому что по ссылке html страница, а не фотка. Надо делать так

    bot.send_photo(message.chat.id, get('https://i.imgur.com/yaBianG.jpeg').content)
    Ответ написан
    Комментировать
  • Можно ли получить айпи адрес от перехода по ссылке?

    pro100chel
    @pro100chel Куратор тега Python
    Python && PHP Developer
    Да.
    Для этого достаточно сделать прослойку в виде собственного сайта-редиректа.

    Из простого - передавать ссылку на оплату GET параметром в запросе. Делаете нужные действия скриптом (логируете IP или еще чего там надо) и редиректите на оплату. Можно прикрутить что-то по типу кодировки URL в base64, чтобы рядовой юзер не сообразил, что можно перейти на URL напрямую.

    Из сложного - создавать заказ в базе и передавать его идентификатор GET параметром. Это может быть тупо его id. Также как и в первом варианте логируем действия пользователя. Далее берем из базы URL оплаты для этого идентификатора заказа и редиректим.

    На PHP проще всего это будет сделать. Берем стандартную связку nginx-php-mysql

    Если же нужно на Python то тут тоже все не сложно. Пишем простенькую flask приложуху и в бой. Лучше всего будет его также разместить за nginx.

    =============
    IP сервера лучше всего не светить. Тут поможет бесплатный домен по типу tk или ml.
    Чтобы IP не узнали по домену - нужно ставить сервер за cloudflare.
    =============

    Все это не включая написания приложения займет буквально минут 15. Самое долгое из этого - ожидание появления информации о новом домене в cloudflare.
    Ответ написан
    1 комментарий
  • Как защититься от ddos в датацентре?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Смотря что за ДЦ.

    Если можешь то лучше переехать на сервер хостера у которого по умолчанию есть защита от DDoS. Один из таких - овх. У него есть линейка тарифных планов с игровой защитой от ддос.

    А если железо твое и никуда не можешь переехать - то тут остается покупать защиту.
    Тут есть как минимум 2 варианта.

    1. Покупать защиту у ДЦ. Если это серьёзный ДЦ то скорее всего у них своя инфраструктура по борьбе с атаками. Например, ростелеком. Но есть много ДЦ, которые предлагают защиту от сторонних провайдеров. Например, селектел реселлит куратор.

    2. Купить защиту у стороннего провайдера. В таком случае трафик будет идти через этого провайдера. И подключать нужно не через интернет, а напрямую. Если ДЦ и вправду крупный. То он имеет возможность у себя в помещении организовать прямой коннект либо же дать коннект до точки обмена трафиком, где присутствует нужный провайдер защиты.
    Ответ написан
    Комментировать
  • Как разрезать строку на список?

    pro100chel
    @pro100chel Куратор тега Python
    Python && PHP Developer
    import re
    
    a = 'A729D2B91E1'
    
    b = re.findall(r'[A-Z]\d+', a)
    
    print(b)
    Ответ написан
    Комментировать
  • Как сделать реакцию на любую картинку в телеграм боте?

    pro100chel
    @pro100chel
    Python && PHP Developer
    @bot.message_handler(content_types=['photo']) 
    def photo(message): 
        print("фоточка")
    Ответ написан
    Комментировать
  • Почему может возникать ошибка SimpleQIWI.errors.QIWIAPIerror?

    pro100chel
    @pro100chel Куратор тега Python
    Python && PHP Developer
    Если учитывать что ты запрашиваешь историю платежей то это может быть:

    1) нет нужных разрешений у токена
    2) превышена частота запросов истории платежей (100 запросов в минуту)
    Ответ написан
    1 комментарий
  • Что делать дальше, если прошел курс python для начинающих?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Закреплять практикой. Определиться с направлением.

    Можно фигачить чат-ботов, парсеры, сайты, нейросети и прочее.

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

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

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

    Когда уже чувствуешь силу знаний языка нужно удариться головой об стену (образно) всяких паттернов, алгоритмов и прочей скучной, но в будущем очень нужной для тебя лабуды (если ты хочешь работать на позиции python разработчика, а не клепать домашние проекты).
    Ответ написан
    Комментировать
  • Что такое проксирующий Nginx?

    pro100chel
    @pro100chel Куратор тега Python
    Python && PHP Developer
    Нет, тебе не нужен nginx. Так как pyqiwip2p не принимает хуки от киви, а использует api киви для проверки статуса платежа.

    А так если бы у тебя был хендлер хука от киви. То стоял бы скриптик на пыхе или чем-нибудь еще. Тогда nginx был бы прокси для какого-нибудь php-fpm или gunicorn.
    Ответ написан
  • Дедик один нужно брать или как сделать отказоустойчивость?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Самое главное понимать что VDS это тоже виртуалка как и VPS.

    Не совсем понятно почему нужно переезжать на выделенный сервак. Неужели провайдер vps/vds не может дать тебе нужный конфиг? Обычно могут дать даже больше чем в большинстве выделенных серверов.

    Отказоустойчивость это уже в облака надо чесать. Там это максимально просто и удобно. Если нужно в рашке - яндекс клауд, селектел, маил ру и прочие. У первых двух самая развитая инфраструктура.

    Веб сервера скейлить проблем особых нет. Ставишь нгинкс в режиме балансера и балансишь траф на веб сервера.
    Жесть начинается со скейла базы. Тут поможет managed service, например от яндекса. Там предлагается сразу создать кластер из трех серваков в разных датацентрах. Это одновременно позволяет распределить нагрузку и реализовать отказоустойчивость.
    Но сразу говорю. Это не очень дешево. Насколько дорого? Протести - узнаешь. Сложно что-то сказать, т.к. нет никаких цифр от тебя по нагрузке.

    Можно конечно все это на обычных vds/vps сделать. Но морочиться придется, если не знаешь что и как делать, мама не горюй.
    Ответ написан