aioqzone 1.4.3.dev2__tar.gz → 1.4.3.dev4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/PKG-INFO +1 -1
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/pyproject.toml +1 -1
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/api/h5/raw.py +8 -9
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/LICENSE +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/README.md +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/__init__.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/api/__init__.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/api/h5/__init__.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/api/h5/model.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/api/login/__init__.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/api/login/_base.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/exception.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/message.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/model/__init__.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/model/protocol/__init__.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/model/protocol/config.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/model/protocol/entity.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/model/response/__init__.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/model/response/h5.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/utils/__init__.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/utils/entity.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/utils/regex.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/utils/retry.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/aioqzone/utils/time.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/__init__.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/base.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/constant.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/exception.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/message.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/py.typed +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/qr/__init__.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/qr/type.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/type.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/up/__init__.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/up/_model.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/up/captcha/__init__.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/up/captcha/_model.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/up/captcha/capsess.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/up/captcha/img_utils.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/up/captcha/select/__init__.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/up/captcha/select/_types.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/up/captcha/slide/__init__.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/up/captcha/slide/_types.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/up/captcha/slide/jigsaw.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/up/encrypt.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/up/h5.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/up/web.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/utils/encrypt.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/utils/iter.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/utils/jsjson.py +0 -0
- {aioqzone-1.4.3.dev2 → aioqzone-1.4.3.dev4}/src/qqqr/utils/net.py +0 -0
|
@@ -2,7 +2,7 @@ import logging
|
|
|
2
2
|
import re
|
|
3
3
|
from typing import Callable, Dict, List, Optional, Tuple, Union
|
|
4
4
|
|
|
5
|
-
from lxml.html import
|
|
5
|
+
from lxml.html import HtmlElement, document_fromstring
|
|
6
6
|
from tenacity import after_log, retry, stop_after_attempt
|
|
7
7
|
|
|
8
8
|
from aioqzone.api.login import Loginable
|
|
@@ -71,7 +71,7 @@ class QzoneH5RawAPI:
|
|
|
71
71
|
params["g_tk"] = str(self.login.gtk)
|
|
72
72
|
self.client.referer = "https://h5.qzone.qq.com/"
|
|
73
73
|
host = host or self.host
|
|
74
|
-
return self.client.get(host + path, params=params, **kw)
|
|
74
|
+
return self.client.get(host + path, params=params, cookies=self.login.cookie, **kw)
|
|
75
75
|
|
|
76
76
|
def host_post(
|
|
77
77
|
self,
|
|
@@ -91,15 +91,12 @@ class QzoneH5RawAPI:
|
|
|
91
91
|
params["g_tk"] = str(self.login.gtk)
|
|
92
92
|
self.client.referer = "https://h5.qzone.qq.com/"
|
|
93
93
|
host = host or self.host
|
|
94
|
-
return self.client.post(
|
|
94
|
+
return self.client.post(
|
|
95
|
+
self.host + path, params=params, data=data, cookies=self.login.cookie, **kw
|
|
96
|
+
)
|
|
95
97
|
|
|
96
98
|
async def _update_cookie_safe(self, *_) -> None:
|
|
97
99
|
await self.login.new_cookie()
|
|
98
|
-
# update cookies is optional.
|
|
99
|
-
try:
|
|
100
|
-
self.client.cookie_jar.update_cookies(self.login.cookie)
|
|
101
|
-
except:
|
|
102
|
-
log.warning("Error when updating client cookies", exc_info=True)
|
|
103
100
|
|
|
104
101
|
def _rtext_handler(
|
|
105
102
|
self,
|
|
@@ -158,11 +155,13 @@ class QzoneH5RawAPI:
|
|
|
158
155
|
r.raise_for_status()
|
|
159
156
|
|
|
160
157
|
html = await r.text()
|
|
161
|
-
scripts: List =
|
|
158
|
+
scripts: List[HtmlElement] = document_fromstring(html).xpath(
|
|
162
159
|
'body/script[@type="application/javascript"]'
|
|
163
160
|
)
|
|
164
161
|
if not scripts:
|
|
165
162
|
log.debug("jump to %s", str(r.url))
|
|
163
|
+
log.debug(f"request header cookies: {r.request_info.headers['Cookie']}")
|
|
164
|
+
log.debug(f"loginman cookies: {self.login.cookie}")
|
|
166
165
|
raise QzoneError(-3000, "script tag not found")
|
|
167
166
|
|
|
168
167
|
texts: List[str] = [s.text for s in scripts]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|