Skip to content
This repository was archived by the owner on Sep 18, 2023. It is now read-only.

Commit ae50779

Browse files
authored
Merge pull request #39 from xtekky/main
unpatch poe api
2 parents cf5e5e1 + 6f35032 commit ae50779

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

poe-api/src/poe.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import requests, re, json, random, logging, time, queue, threading, traceback
1+
import requests, re, json, random, logging, time, queue, threading, traceback, hashlib
22
import websocket
33
from pathlib import Path
44
from urllib.parse import urlparse
55

6+
67
parent_path = Path(__file__).resolve().parent
78
queries_path = parent_path / "poe_graphql"
89
queries = {}
@@ -143,8 +144,19 @@ def get_websocket_url(self, channel=None):
143144

144145
def send_query(self, query_name, variables):
145146
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+
148160
data = r.json()
149161
if data["data"] == None:
150162
logger.warn(f'{query_name} returned an error: {data["errors"][0]["message"]} | Retrying ({i+1}/20)')

0 commit comments

Comments
 (0)