|
1 |
| -import requests, re, json, random, logging, time, queue, threading, traceback |
| 1 | +import requests, re, json, random, logging, time, queue, threading, traceback, hashlib |
2 | 2 | import websocket
|
3 | 3 | from pathlib import Path
|
4 | 4 | from urllib.parse import urlparse
|
5 | 5 |
|
| 6 | + |
6 | 7 | parent_path = Path(__file__).resolve().parent
|
7 | 8 | queries_path = parent_path / "poe_graphql"
|
8 | 9 | queries = {}
|
@@ -143,8 +144,19 @@ def get_websocket_url(self, channel=None):
|
143 | 144 |
|
144 | 145 | def send_query(self, query_name, variables):
|
145 | 146 | for i in range(20):
|
146 |
| - payload = generate_payload(query_name, variables) |
147 |
| - r = request_with_retries(self.session.post, self.gql_url, json=payload, headers=self.gql_headers) |
| 147 | + json_data = generate_payload(query_name, variables) |
| 148 | + payload = json.dumps(json_data, separators=(',', ':')) |
| 149 | + |
| 150 | + base_string = payload + self.gql_headers['poe-formkey'] + 'WpuLMiXEKKE98j56k' |
| 151 | + |
| 152 | + headers = self.gql_headers | { |
| 153 | + "content-type": "application/json", |
| 154 | + "poe-tag-id": hashlib.md5(base_string.encode()).hexdigest() |
| 155 | + } |
| 156 | + |
| 157 | + r = request_with_retries( |
| 158 | + self.session.post, self.gql_url, data=payload, headers=headers) |
| 159 | + |
148 | 160 | data = r.json()
|
149 | 161 | if data["data"] == None:
|
150 | 162 | logger.warn(f'{query_name} returned an error: {data["errors"][0]["message"]} | Retrying ({i+1}/20)')
|
|
0 commit comments