* 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>