aioqzone 1.9.6.dev1__tar.gz → 1.9.6.dev3__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.9.6.dev1 → aioqzone-1.9.6.dev3}/PKG-INFO +5 -5
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/pyproject.toml +7 -7
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/api/login/__init__.py +16 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/README.md +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/__init__.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/api/__init__.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/api/h5/__init__.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/api/h5/model.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/api/login/_base.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/exception.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/message.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/model/__init__.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/model/api/__init__.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/model/api/feed.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/model/api/profile.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/model/api/request.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/model/api/response.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/model/protocol/__init__.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/model/protocol/config.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/model/protocol/entity.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/utils/__init__.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/utils/entity.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/utils/regex.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/utils/retry.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/aioqzone/utils/time.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/__init__.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/base.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/constant.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/exception.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/message.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/py.typed +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/qr/__init__.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/qr/type.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/type.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/__init__.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/_model.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/captcha/__init__.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/captcha/_model.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/captcha/capsess.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/captcha/click/__init__.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/captcha/click/_types.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/captcha/pil_utils.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/captcha/select/__init__.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/captcha/select/_types.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/captcha/slide/__init__.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/captcha/slide/_types.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/encrypt.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/h5.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/up/web.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/utils/encrypt.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/utils/iter.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/utils/jsjson.py +0 -0
- {aioqzone-1.9.6.dev1 → aioqzone-1.9.6.dev3}/src/qqqr/utils/net.py +0 -0
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aioqzone
|
|
3
|
-
Version: 1.9.6.
|
|
3
|
+
Version: 1.9.6.dev3
|
|
4
4
|
Summary: A Python wrapper for Qzone login and H5 APIs.
|
|
5
5
|
Keywords: qzone-api,autologin,asyncio-spider
|
|
6
6
|
Author: aioqzone
|
|
7
|
-
License-Expression: AGPL-3.0
|
|
7
|
+
License-Expression: AGPL-3.0-or-later
|
|
8
8
|
Classifier: Development Status :: 4 - Beta
|
|
9
9
|
Classifier: Intended Audience :: Developers
|
|
10
10
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
11
11
|
Classifier: Typing :: Typed
|
|
12
|
-
Requires-Dist: aiohttp
|
|
13
|
-
Requires-Dist: pydantic
|
|
12
|
+
Requires-Dist: aiohttp~=3.13
|
|
13
|
+
Requires-Dist: pydantic~=2.12
|
|
14
14
|
Requires-Dist: pydantic-settings>=2.9.0
|
|
15
15
|
Requires-Dist: rsa>=4.9.1
|
|
16
16
|
Requires-Dist: tenacity>=8.2.3,<10.0.0
|
|
17
17
|
Requires-Dist: tylisten>=2.2.1
|
|
18
18
|
Requires-Dist: pillow>=11.3.0
|
|
19
19
|
Requires-Dist: pychaosvm~=0.5.4
|
|
20
|
-
Requires-Dist: slide-tc~=0.1.
|
|
20
|
+
Requires-Dist: slide-tc~=0.1.4 ; extra == 'slide-captcha'
|
|
21
21
|
Maintainer: JamzumSum
|
|
22
22
|
Maintainer-email: JamzumSum <22952836+JamzumSum@users.noreply.github.com>
|
|
23
23
|
Requires-Python: >=3.10
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "aioqzone"
|
|
3
|
-
version = "1.9.6.
|
|
3
|
+
version = "1.9.6.dev3"
|
|
4
4
|
description = "A Python wrapper for Qzone login and H5 APIs."
|
|
5
5
|
authors = [{ name = "aioqzone" }]
|
|
6
6
|
maintainers = [
|
|
7
7
|
{ name = "JamzumSum", email = "22952836+JamzumSum@users.noreply.github.com" },
|
|
8
8
|
]
|
|
9
|
-
license = "AGPL-3.0"
|
|
9
|
+
license = "AGPL-3.0-or-later"
|
|
10
10
|
readme = "README.md"
|
|
11
11
|
requires-python = ">=3.10"
|
|
12
12
|
keywords = ["qzone-api", "autologin", "asyncio-spider"]
|
|
@@ -18,8 +18,8 @@ classifiers = [
|
|
|
18
18
|
]
|
|
19
19
|
|
|
20
20
|
dependencies = [
|
|
21
|
-
"aiohttp
|
|
22
|
-
"pydantic
|
|
21
|
+
"aiohttp~=3.13",
|
|
22
|
+
"pydantic~=2.12",
|
|
23
23
|
"pydantic-settings>=2.9.0",
|
|
24
24
|
"rsa>=4.9.1",
|
|
25
25
|
"tenacity>=8.2.3,<10.0.0",
|
|
@@ -40,17 +40,17 @@ Documentation = "https://aioqzone.github.io/aioqzone"
|
|
|
40
40
|
test = ["pytest>=8.2.0", "pytest-asyncio>=1.1,<1.3"]
|
|
41
41
|
dev = ["pre-commit", "ruff"]
|
|
42
42
|
doc = [
|
|
43
|
-
"Sphinx>=7.0.1; python_version
|
|
43
|
+
"Sphinx>=7.0.1; python_version=='3.10'",
|
|
44
44
|
"Sphinx>=8.2.0; python_version>='3.11'",
|
|
45
45
|
"autodoc-pydantic>=2.0.1",
|
|
46
|
-
"sphinx-autodoc-typehints
|
|
46
|
+
"sphinx-autodoc-typehints~=2.5",
|
|
47
47
|
"furo",
|
|
48
48
|
"sphinx-intl",
|
|
49
49
|
"sphinx-inline-tabs",
|
|
50
50
|
]
|
|
51
51
|
|
|
52
52
|
[project.optional-dependencies]
|
|
53
|
-
slide-captcha = ["slide-tc~=0.1.
|
|
53
|
+
slide-captcha = ["slide-tc~=0.1.4"]
|
|
54
54
|
|
|
55
55
|
[tool.uv]
|
|
56
56
|
prerelease = "if-necessary-or-explicit"
|
|
@@ -183,6 +183,22 @@ class QrLoginManager(Loginable):
|
|
|
183
183
|
log.fatal("二维码登录异常", exc_info=True)
|
|
184
184
|
raise UnexpectedLoginError from e
|
|
185
185
|
|
|
186
|
+
if self.uin:
|
|
187
|
+
return cookie
|
|
188
|
+
|
|
189
|
+
# uin in qrconfig might be 0, we could get uin after login
|
|
190
|
+
for k, v in cookie.items():
|
|
191
|
+
if not k.endswith("uin"):
|
|
192
|
+
continue
|
|
193
|
+
v = v.removeprefix("o0")
|
|
194
|
+
if not v.isdigit():
|
|
195
|
+
continue
|
|
196
|
+
try:
|
|
197
|
+
self.uin = int(v)
|
|
198
|
+
except ValueError:
|
|
199
|
+
continue
|
|
200
|
+
if self.uin:
|
|
201
|
+
break
|
|
186
202
|
return cookie
|
|
187
203
|
|
|
188
204
|
def h5(self, enable=True, clear_cookie=True):
|
|
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
|
|
File without changes
|
|
File without changes
|