novel-downloader 1.4.0__tar.gz → 1.4.1__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.
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/PKG-INFO +1 -1
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/__init__.py +1 -1
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/linovelib/browser.py +15 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/linovelib/session.py +15 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader.egg-info/PKG-INFO +1 -1
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/pyproject.toml +1 -1
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/LICENSE +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/README.md +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/cli/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/cli/clean.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/cli/config.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/cli/download.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/cli/export.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/cli/main.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/config/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/config/adapter.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/config/loader.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/config/site_rules.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/base.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/biquge.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/common.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/esjzone.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/linovelib.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/qianbi.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/qidian.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/sfacg.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/yamibo.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/base.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/biquge.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/common/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/common/epub.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/common/main_exporter.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/common/txt.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/epub_utils/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/epub_utils/css_builder.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/epub_utils/image_loader.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/epub_utils/initializer.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/epub_utils/text_to_html.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/epub_utils/volume_intro.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/esjzone.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/linovelib/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/linovelib/epub.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/linovelib/main_exporter.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/linovelib/txt.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/qianbi.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/qidian.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/sfacg.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/yamibo.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/factory/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/factory/downloader.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/factory/exporter.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/factory/fetcher.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/factory/parser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/base/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/base/browser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/base/rate_limiter.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/base/session.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/biquge/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/biquge/browser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/biquge/session.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/common/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/common/browser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/common/session.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/esjzone/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/esjzone/browser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/esjzone/session.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/linovelib/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/qianbi/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/qianbi/browser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/qianbi/session.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/qidian/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/qidian/browser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/qidian/session.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/sfacg/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/sfacg/browser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/sfacg/session.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/yamibo/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/yamibo/browser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/yamibo/session.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/interfaces/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/interfaces/downloader.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/interfaces/exporter.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/interfaces/fetcher.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/interfaces/parser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/base.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/biquge/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/biquge/main_parser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/common/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/common/helper.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/common/main_parser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/esjzone/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/esjzone/main_parser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/linovelib/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/linovelib/main_parser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/qianbi/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/qianbi/main_parser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/qidian/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/qidian/book_info_parser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/qidian/chapter_encrypted.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/qidian/chapter_normal.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/qidian/chapter_router.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/qidian/main_parser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/qidian/utils/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/qidian/utils/decryptor_fetcher.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/qidian/utils/helpers.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/qidian/utils/node_decryptor.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/sfacg/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/sfacg/main_parser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/yamibo/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/yamibo/main_parser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/locales/en.json +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/locales/zh.json +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/models/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/models/browser.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/models/chapter.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/models/config.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/models/login.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/models/site_rules.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/models/tasks.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/models/types.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/resources/config/settings.toml +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/resources/css_styles/main.css +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/resources/css_styles/volume-intro.css +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/resources/images/volume_border.png +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/resources/js_scripts/qidian_decrypt_node.js +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/resources/json/linovelib_font_map.json +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/resources/json/replace_word_map.json +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/resources/text/blacklist.txt +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/tui/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/tui/app.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/tui/main.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/tui/screens/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/tui/screens/home.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/tui/screens/login.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/tui/styles/home_layout.tcss +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/tui/widgets/richlog_handler.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/cache.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/chapter_storage.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/constants.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/cookies.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/crypto_utils.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/file_utils/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/file_utils/io.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/file_utils/normalize.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/file_utils/sanitize.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/fontocr/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/fontocr/ocr_v1.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/fontocr/ocr_v2.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/hash_store.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/hash_utils.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/i18n.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/logger.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/model_loader.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/network.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/state.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/text_utils/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/text_utils/chapter_formatting.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/text_utils/diff_display.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/text_utils/font_mapping.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/text_utils/text_cleaning.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/time_utils/__init__.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/time_utils/datetime_utils.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/time_utils/sleep_utils.py +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader.egg-info/SOURCES.txt +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader.egg-info/dependency_links.txt +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader.egg-info/entry_points.txt +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader.egg-info/requires.txt +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader.egg-info/top_level.txt +0 -0
- {novel_downloader-1.4.0 → novel_downloader-1.4.1}/setup.cfg +0 -0
@@ -20,6 +20,7 @@ class LinovelibBrowser(BaseBrowser):
|
|
20
20
|
|
21
21
|
BASE_URL = "https://www.linovelib.com"
|
22
22
|
BOOK_INFO_URL = "https://www.linovelib.com/novel/{book_id}.html"
|
23
|
+
BOOK_CATALOG_UTL = "https://www.linovelib.com/novel/{book_id}/catalog"
|
23
24
|
BOOK_VOL_URL = "https://www.linovelib.com/novel/{book_id}/{vol_id}.html"
|
24
25
|
CHAPTER_URL = "https://www.linovelib.com/novel/{book_id}/{chapter_id}.html"
|
25
26
|
|
@@ -49,6 +50,10 @@ class LinovelibBrowser(BaseBrowser):
|
|
49
50
|
|
50
51
|
vol_ids = self._extract_vol_ids(info_html)
|
51
52
|
vol_ids.reverse()
|
53
|
+
if not vol_ids:
|
54
|
+
url = self.catalog_url(book_id=book_id)
|
55
|
+
catalog_html = await self.fetch(url, **kwargs)
|
56
|
+
vol_ids = self._extract_vol_ids(catalog_html)
|
52
57
|
|
53
58
|
vol_htmls = []
|
54
59
|
for vol_id in vol_ids:
|
@@ -134,6 +139,16 @@ class LinovelibBrowser(BaseBrowser):
|
|
134
139
|
"""
|
135
140
|
return cls.BOOK_INFO_URL.format(book_id=book_id)
|
136
141
|
|
142
|
+
@classmethod
|
143
|
+
def catalog_url(cls, book_id: str) -> str:
|
144
|
+
"""
|
145
|
+
Construct the URL for fetching a catalog page.
|
146
|
+
|
147
|
+
:param book_id: The identifier of the book.
|
148
|
+
:return: Fully qualified catalog URL.
|
149
|
+
"""
|
150
|
+
return cls.BOOK_CATALOG_UTL.format(book_id=book_id)
|
151
|
+
|
137
152
|
@classmethod
|
138
153
|
def volume_url(cls, book_id: str, vol_id: str) -> str:
|
139
154
|
"""
|
@@ -20,6 +20,7 @@ class LinovelibSession(BaseSession):
|
|
20
20
|
|
21
21
|
BASE_URL = "https://www.linovelib.com"
|
22
22
|
BOOK_INFO_URL = "https://www.linovelib.com/novel/{book_id}.html"
|
23
|
+
BOOK_CATALOG_UTL = "https://www.linovelib.com/novel/{book_id}/catalog"
|
23
24
|
BOOK_VOL_URL = "https://www.linovelib.com/novel/{book_id}/{vol_id}.html"
|
24
25
|
CHAPTER_URL = "https://www.linovelib.com/novel/{book_id}/{chapter_id}.html"
|
25
26
|
|
@@ -49,6 +50,10 @@ class LinovelibSession(BaseSession):
|
|
49
50
|
|
50
51
|
vol_ids = self._extract_vol_ids(info_html)
|
51
52
|
vol_ids.reverse()
|
53
|
+
if not vol_ids:
|
54
|
+
url = self.catalog_url(book_id=book_id)
|
55
|
+
catalog_html = await self.fetch(url, **kwargs)
|
56
|
+
vol_ids = self._extract_vol_ids(catalog_html)
|
52
57
|
|
53
58
|
vol_htmls = []
|
54
59
|
for vol_id in vol_ids:
|
@@ -134,6 +139,16 @@ class LinovelibSession(BaseSession):
|
|
134
139
|
"""
|
135
140
|
return cls.BOOK_INFO_URL.format(book_id=book_id)
|
136
141
|
|
142
|
+
@classmethod
|
143
|
+
def catalog_url(cls, book_id: str) -> str:
|
144
|
+
"""
|
145
|
+
Construct the URL for fetching a catalog page.
|
146
|
+
|
147
|
+
:param book_id: The identifier of the book.
|
148
|
+
:return: Fully qualified catalog URL.
|
149
|
+
"""
|
150
|
+
return cls.BOOK_CATALOG_UTL.format(book_id=book_id)
|
151
|
+
|
137
152
|
@classmethod
|
138
153
|
def volume_url(cls, book_id: str, vol_id: str) -> str:
|
139
154
|
"""
|
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
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/__init__.py
RENAMED
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/biquge.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/common.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/esjzone.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/linovelib.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/qianbi.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/qidian.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/sfacg.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/downloaders/yamibo.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/common/__init__.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/common/epub.py
RENAMED
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/common/txt.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/esjzone.py
RENAMED
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/linovelib/epub.py
RENAMED
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/exporters/linovelib/txt.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/factory/downloader.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/__init__.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/base/__init__.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/base/browser.py
RENAMED
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/base/session.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/biquge/__init__.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/biquge/browser.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/biquge/session.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/common/__init__.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/common/browser.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/common/session.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/esjzone/__init__.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/esjzone/browser.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/esjzone/session.py
RENAMED
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/qianbi/__init__.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/qianbi/browser.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/qianbi/session.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/qidian/__init__.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/qidian/browser.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/qidian/session.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/sfacg/__init__.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/sfacg/browser.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/sfacg/session.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/yamibo/__init__.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/yamibo/browser.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/fetchers/yamibo/session.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/interfaces/__init__.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/interfaces/downloader.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/interfaces/exporter.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/interfaces/fetcher.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/interfaces/parser.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/biquge/__init__.py
RENAMED
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/common/__init__.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/common/helper.py
RENAMED
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/esjzone/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/qianbi/__init__.py
RENAMED
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/qidian/__init__.py
RENAMED
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
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/sfacg/__init__.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/sfacg/main_parser.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/core/parsers/yamibo/__init__.py
RENAMED
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
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/resources/config/settings.toml
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/resources/css_styles/main.css
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/resources/text/blacklist.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/tui/styles/home_layout.tcss
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/tui/widgets/richlog_handler.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/file_utils/__init__.py
RENAMED
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/file_utils/normalize.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/file_utils/sanitize.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/fontocr/__init__.py
RENAMED
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
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/text_utils/__init__.py
RENAMED
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/text_utils/diff_display.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/text_utils/font_mapping.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/text_utils/text_cleaning.py
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/time_utils/__init__.py
RENAMED
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader/utils/time_utils/sleep_utils.py
RENAMED
File without changes
|
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader.egg-info/dependency_links.txt
RENAMED
File without changes
|
{novel_downloader-1.4.0 → novel_downloader-1.4.1}/novel_downloader.egg-info/entry_points.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|