Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import re
- import json
- import time
- import requests
- from tqdm import tqdm
- from random import shuffle
- tqdm.monitor_interval = 0
- print("Für wenn soll gevotet werden? Bitte wählen:");
- print("");
- print("1) Zufällige Partei bei jedem Voting (außer AfD natürlich)");
- print("2) Für CDU/CSU) abstimmen");
- print("3) Für SPD) abstimmen");
- print("4) Für FDP) abstimmen");
- print("5) Für Die Linke ) abstimmen");
- print("6) Für Bündnis 90/Die Grünen) abstimmen");
- print("7) Für Keine der genannten Parteien) abstimmen");
- answer = input()
- print("");
- defaultKeys = {
- 'protocol': "protocol",
- 'postSupport': "post",
- 'httpsSupport': "supportsHttps",
- 'ip': "ip",
- 'port': "port",
- 'country': "country",
- 'status_code': "status_code",
- 'error': "error",
- }
- proxyAPIs = [
- {
- 'url': "https://gimmeproxy.com/api/getProxy",
- 'overLimitStatusCode': 429,
- 'keys': {**defaultKeys, **{
- 'protocol': "type",
- }}
- },
- {
- 'url': "https://api.getproxylist.com/proxy",
- 'overLimitStatusCode': 429,
- 'keys': {**defaultKeys, **{
- 'postSupport': "allowsPost",
- 'httpsSupport': "allowsHttps",
- }}
- },
- ]
- apiIdx = 0
- api = proxyAPIs[apiIdx]
- while True:
- try:
- # Get proxy
- gotProxy = False
- consecutiveLimitOverflow = 0
- while not gotProxy:
- response = requests.get(api['url'])
- proxy = json.loads(response.content)
- if api['keys']['status_code'] in proxy and proxy[api['keys']['status_code']] == api['overLimitStatusCode'] or api['keys']['error'] in proxy:
- consecutiveLimitOverflow += 1
- if consecutiveLimitOverflow == len(proxyAPIs):
- print("Anfragelimit aller Proxy APIs erreicht - Warte 60 Sekunden. In dieser Zeit kannst du deinen Router neu verbinden, um das Limit aufzuheben.")
- for _ in tqdm(range(120)):
- time.sleep(0.5)
- # Get next api
- print("Die Proxy API wird nun gewechselt, da das Anfragelimit erreicht wurde...")
- apiIdx += 1
- if apiIdx == len(proxyAPIs):
- apiIdx = 0
- api = proxyAPIs[apiIdx]
- print("Neue API: {}".format(api['url']))
- elif api['keys']['httpsSupport'] in proxy and proxy[api['keys']['httpsSupport']] and proxy[api['keys']['protocol']] in ["http","https"]:
- consecutiveLimitOverflow = 0
- gotProxy = True
- proxyUrl = "{}://{}:{}".format(proxy[api['keys']['protocol']], proxy[api['keys']['ip']], proxy[api['keys']['port']])
- proxies = { "http": proxyUrl, "https": proxyUrl }
- # Available options
- options = {
- 'check5410728': "CDU/CSU",
- 'check5410729': "SPD",
- 'check5410730': "FDP",
- 'check5410731': "Die Linke ",
- 'check5410732': "Bündnis 90/Die Grünen",
- 'check5410734': "Keine der genannten Parteien",
- }
- # Choose option
- if answer == "2":
- option = "check5410728"
- elif answer == "3":
- option = "check5410729"
- elif answer == "4":
- option = "check5410730"
- elif answer == "5":
- option = "check5410731"
- elif answer == "6":
- option = "check5410732"
- elif answer == "7":
- option = "check5410734"
- else:
- optionIds = list(options.keys())
- shuffle(optionIds)
- option = optionIds[0]
- # Vote
- data = {
- "pid": "37x4318", # Poll ID
- "oids": option
- }
- headers = {
- 'Accept': "*/*",
- 'Accept-Encoding': "gzip, deflate, br",
- 'Accept-Language': "en,en-US;q=0.9,en-DE;q=0.8,de-DE;q=0.7,de;q=0.6",
- 'Connection': "keep-alive",
- 'Content-Length': "29",
- 'Content-Type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
- 'Host': "strawpoll.de",
- 'Origin': "https://strawpoll.de",
- 'Referer': "https://strawpoll.de/37x4318",
- 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36",
- 'X-Requested-With': "XMLHttpRequest",
- 'Cache-Control': "no-cache",
- }
- print("Nutze Proxy IP {} (Land: {})".format(proxy[api['keys']['ip']], proxy[api['keys']['country']]))
- try:
- # Vote
- print("Vote für '{}'".format(options[option]))
- response = requests.post("https://strawpoll.de/vote?pid=37x4318&oids=check5410731", data=json.dumps(data), proxies=proxies, headers=headers)
- parsed = json.loads(response.content);
- print(re.sub('<[^<]+?>', '', parsed['message']))
- except requests.exceptions.RequestException:
- # Error
- print("Voten fehlgeschlagen")
- print("----------")
- # Wait
- time.sleep(3)
- except KeyboardInterrupt:
- print("Abbruch durch Nutzer")
- exit()
- except Exception as e:
- pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement