mirror of
https://github.com/jo1gi/grawlix.git
synced 2026-07-10 01:34:49 -06:00
* Fix Nextory: bump X-App-Version and handle null series
The Nextory API now rejects the old X-App-Version "5.4.1" with an
AppDeprecateError. Bump it to "2026.05.4" (current Android app version).
Also, the product API can return {"series": null} for standalone books
(not just omit the key entirely). The previous `"series" in product_info`
check passed in that case and we crashed on a NoneType subscript.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Add urllib3 as explicit dependency
grawlix/sources/storytel.py imports urllib3.util.parse_url but urllib3
was only pulled in transitively. Fresh installs (e.g. via uv tool) fail
at import time with ModuleNotFoundError.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Fix invalid escape sequence warning in saxo regex
f"\d+$" produced a SyntaxWarning on Python 3.12 (and will become a
SyntaxError in a future release). The string has no interpolation, so
the raw form r"\d+$" is the right fix.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
51 lines
1.0 KiB
TOML
51 lines
1.0 KiB
TOML
[project]
|
|
name = "grawlix"
|
|
authors = [
|
|
{ name = "Joakim Holm", email = "mail@joakimholm.xyz" }
|
|
]
|
|
description = "CLI tool for downloading ebooks"
|
|
readme = "README.md"
|
|
keywords = ["ebook", "cli", "downloader"]
|
|
classifiers = [
|
|
"Programming Language :: Python :: 3",
|
|
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
|
]
|
|
dependencies = [
|
|
"appdirs",
|
|
"beautifulsoup4",
|
|
"blackboxprotobuf",
|
|
"EbookLib",
|
|
"httpx",
|
|
"importlib-resources",
|
|
"lxml",
|
|
"pycryptodome",
|
|
"rich",
|
|
"tomli",
|
|
"urllib3",
|
|
]
|
|
dynamic = ["version"]
|
|
|
|
[project.urls]
|
|
"Homepage" = "https://github.com/jo1gi/grawlix"
|
|
"Bugtracker" = "https://github.com/jo1gi/grawlix/issues"
|
|
|
|
[project.scripts]
|
|
grawlix = "grawlix.__main__:run"
|
|
|
|
[build-system]
|
|
requires = ["setuptools", "setuptools-scm"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
|
|
[tool.setuptools.dynamic]
|
|
version = {attr = "grawlix.__version__"}
|
|
|
|
[tool.setuptools.package-data]
|
|
grawlix = ["*.txt"]
|
|
|
|
|
|
[tool.mypy]
|
|
ignore_missing_imports = true
|
|
allow_untyped_globals = false
|
|
disallow_untyped_calls = true
|