main.py 5.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import requests as rq
  2. import json as js
  3. import random as rn
  4. import dpath.util as dp
  5. import urwid as ur
  6. from api import SAPI as sa
  7. from rich import print as ri
  8. ## funcs
  9. def post():
  10. proxyifelse = len(toproxy)
  11. if proxyifelse == 0:
  12. r = rq.post(url = url+"post.php", data = data.encode('utf8'), headers = headers)
  13. print(r.text)
  14. else:
  15. pr=open(toproxy,"r")
  16. m=pr.readlines()
  17. l=[]
  18. for i in range(0,len(m)-1):
  19. x=m[i]
  20. z=len(x)
  21. a=x[:z-1]
  22. l.append(a)
  23. l.append(m[i+1])
  24. o=rn.choice(l)
  25. pr.close()
  26. while True:
  27. proxytype = input("what proxy you use? (example socks4) = ")
  28. if proxytype == "http":
  29. proxy = {"http": o}
  30. break
  31. elif proxytype == "https":
  32. proxy = {"https": o}
  33. break
  34. else:
  35. if proxytype == "socks4":
  36. proxy = {"socks4": o}
  37. break
  38. elif proxytype == "socks5":
  39. proxy = {"socks5": o}
  40. break
  41. else:
  42. print("incorrect proxy type")
  43. continue
  44. r = rq.post(url = url+"post.php", data = data.encode('utf8'), headers = headers, proxies = proxy)
  45. print(r.text)
  46. ## input / delete later
  47. board = input('board? = ')
  48. thread = input('thread? = ')
  49. name = input('name? (optionally) = ')
  50. text = input('text? = ')
  51. ## data, headers, proxy
  52. url = "https://spirech.org/"
  53. headers = {
  54. "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36",
  55. "Accept": "*/*",
  56. "Accept-Language": "en-US,en;q=0.5",
  57. "X-Requested-With": "XMLHttpRequest",
  58. "Content-Type": "multipart/form-data; boundary=---------------------------180304545935080905253816794105",
  59. "Sec-Fetch-Dest": "empty",
  60. "Sec-Fetch-Mode": "cors",
  61. "Sec-Fetch-Site": "same-origin"
  62. }
  63. data = "-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"username\"\r\n\r\nТлЭ?еыдF;ЫwБг7ша\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"МЭsБУ8х0йюучoЁо\"\r\n\r\nъdD=m~ю1М/'p{i:[Mа@)ТoЧвbz \\еy8IP2рЗ3Cт\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n"+ name +"\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"lastname\"\r\n\r\n\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\n\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\n\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"body\"\r\n\r\n"+ text +"\r\n\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"file[]\"; filename=\"\"\r\nContent-Type: application/octet-stream\r\n\r\n\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"password\"\r\n\r\nYJI_$3rZ\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"еЛгj3ЩлoръedЙИэЁsxyхfёНБ7r\"\r\n\r\nE8_-?j4гXа%ьНец6ASw|й9\\дv7Fщ,(>rtBMyVQka={чо$з]ZDЮuПJ2iФ~ЗвHШnTы ;[:ЪЧЕЖ<\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"l8xfШ0ЖёюГЮ\"\r\n\r\n\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"thread\"\r\n\r\n"+ thread +"\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"board\"\r\n\r\n"+ board +"\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"ЬжтЫqГh5aИН2КТвяз3fУиmъ\"\r\n\r\n/,\\эсQ|M2{СbgцYDеBjжХ^КёыЮUkлI]Ц~$ь5Sч<\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"hash\"\r\n\r\n2790a226cb37f822f9d699865b16e9a71b81f2f3\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"q\"\r\n\r\n*Г@рЬёцRd=,л6ъ}ьх Ъ9ЦЮ`D+гЧoыSEX^hоt1_ияGе&ам Л<nQHш\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"json_response\"\r\n\r\n1\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"no_dnd\"\r\n\r\n1\r\n-----------------------------180304545935080905253816794105\r\nContent-Disposition: form-data; name=\"post\"\r\n\r\nНовый ответ\r\n-----------------------------180304545935080905253816794105--\r\n"
  64. ## proxy reading / not important
  65. toproxy = input("proxie file? (like /home/name/http.txt) (optionally) = ")
  66. ## get text from post|get thread js / make it better
  67. response = rq.get(url + board +'/res/'+ thread +'.js')
  68. #obj = js.loads(response.text)
  69. #with open('.json', 'w+') as outfile:
  70. # obj = js.loads(response.text)
  71. # js.dump(obj, outfile)
  72. #with open('.json') as json_file:
  73. #data = js.load(json_file)
  74. #res = dp.values(data, "/posts/*/com")
  75. #print(res)
  76. post()