LICENSE
README.md
pyproject.toml
src/novel_downloader/__init__.py
src/novel_downloader.egg-info/PKG-INFO
src/novel_downloader.egg-info/SOURCES.txt
src/novel_downloader.egg-info/dependency_links.txt
src/novel_downloader.egg-info/entry_points.txt
src/novel_downloader.egg-info/requires.txt
src/novel_downloader.egg-info/top_level.txt
src/novel_downloader/cli/__init__.py
src/novel_downloader/cli/clean.py
src/novel_downloader/cli/config.py
src/novel_downloader/cli/download.py
src/novel_downloader/cli/export.py
src/novel_downloader/cli/main.py
src/novel_downloader/cli/search.py
src/novel_downloader/cli/ui.py
src/novel_downloader/config/__init__.py
src/novel_downloader/config/adapter.py
src/novel_downloader/config/file_io.py
src/novel_downloader/core/__init__.py
src/novel_downloader/core/archived/deqixs/fetcher.py
src/novel_downloader/core/archived/deqixs/parser.py
src/novel_downloader/core/archived/deqixs/searcher.py
src/novel_downloader/core/archived/qidian/searcher.py
src/novel_downloader/core/archived/wanbengo/searcher.py
src/novel_downloader/core/archived/xshbook/searcher.py
src/novel_downloader/core/downloaders/__init__.py
src/novel_downloader/core/downloaders/base.py
src/novel_downloader/core/downloaders/common.py
src/novel_downloader/core/downloaders/qianbi.py
src/novel_downloader/core/downloaders/qidian.py
src/novel_downloader/core/downloaders/registry.py
src/novel_downloader/core/downloaders/signals.py
src/novel_downloader/core/exporters/__init__.py
src/novel_downloader/core/exporters/base.py
src/novel_downloader/core/exporters/epub_util.py
src/novel_downloader/core/exporters/qidian.py
src/novel_downloader/core/exporters/registry.py
src/novel_downloader/core/exporters/txt_util.py
src/novel_downloader/core/exporters/common/__init__.py
src/novel_downloader/core/exporters/common/epub.py
src/novel_downloader/core/exporters/common/main_exporter.py
src/novel_downloader/core/exporters/common/txt.py
src/novel_downloader/core/exporters/linovelib/__init__.py
src/novel_downloader/core/exporters/linovelib/epub.py
src/novel_downloader/core/exporters/linovelib/main_exporter.py
src/novel_downloader/core/exporters/linovelib/txt.py
src/novel_downloader/core/fetchers/__init__.py
src/novel_downloader/core/fetchers/aaatxt.py
src/novel_downloader/core/fetchers/b520.py
src/novel_downloader/core/fetchers/base.py
src/novel_downloader/core/fetchers/biquyuedu.py
src/novel_downloader/core/fetchers/dxmwx.py
src/novel_downloader/core/fetchers/eightnovel.py
src/novel_downloader/core/fetchers/esjzone.py
src/novel_downloader/core/fetchers/guidaye.py
src/novel_downloader/core/fetchers/hetushu.py
src/novel_downloader/core/fetchers/i25zw.py
src/novel_downloader/core/fetchers/ixdzs8.py
src/novel_downloader/core/fetchers/jpxs123.py
src/novel_downloader/core/fetchers/lewenn.py
src/novel_downloader/core/fetchers/linovelib.py
src/novel_downloader/core/fetchers/piaotia.py
src/novel_downloader/core/fetchers/qbtr.py
src/novel_downloader/core/fetchers/qianbi.py
src/novel_downloader/core/fetchers/qidian.py
src/novel_downloader/core/fetchers/quanben5.py
src/novel_downloader/core/fetchers/rate_limiter.py
src/novel_downloader/core/fetchers/registry.py
src/novel_downloader/core/fetchers/sfacg.py
src/novel_downloader/core/fetchers/shencou.py
src/novel_downloader/core/fetchers/shuhaige.py
src/novel_downloader/core/fetchers/tongrenquan.py
src/novel_downloader/core/fetchers/ttkan.py
src/novel_downloader/core/fetchers/wanbengo.py
src/novel_downloader/core/fetchers/xiaoshuowu.py
src/novel_downloader/core/fetchers/xiguashuwu.py
src/novel_downloader/core/fetchers/xs63b.py
src/novel_downloader/core/fetchers/xshbook.py
src/novel_downloader/core/fetchers/yamibo.py
src/novel_downloader/core/fetchers/yibige.py
src/novel_downloader/core/interfaces/__init__.py
src/novel_downloader/core/interfaces/downloader.py
src/novel_downloader/core/interfaces/exporter.py
src/novel_downloader/core/interfaces/fetcher.py
src/novel_downloader/core/interfaces/parser.py
src/novel_downloader/core/interfaces/searcher.py
src/novel_downloader/core/parsers/__init__.py
src/novel_downloader/core/parsers/aaatxt.py
src/novel_downloader/core/parsers/b520.py
src/novel_downloader/core/parsers/base.py
src/novel_downloader/core/parsers/biquyuedu.py
src/novel_downloader/core/parsers/dxmwx.py
src/novel_downloader/core/parsers/eightnovel.py
src/novel_downloader/core/parsers/esjzone.py
src/novel_downloader/core/parsers/guidaye.py
src/novel_downloader/core/parsers/hetushu.py
src/novel_downloader/core/parsers/i25zw.py
src/novel_downloader/core/parsers/ixdzs8.py
src/novel_downloader/core/parsers/jpxs123.py
src/novel_downloader/core/parsers/lewenn.py
src/novel_downloader/core/parsers/linovelib.py
src/novel_downloader/core/parsers/piaotia.py
src/novel_downloader/core/parsers/qbtr.py
src/novel_downloader/core/parsers/qianbi.py
src/novel_downloader/core/parsers/quanben5.py
src/novel_downloader/core/parsers/registry.py
src/novel_downloader/core/parsers/sfacg.py
src/novel_downloader/core/parsers/shencou.py
src/novel_downloader/core/parsers/shuhaige.py
src/novel_downloader/core/parsers/tongrenquan.py
src/novel_downloader/core/parsers/ttkan.py
src/novel_downloader/core/parsers/wanbengo.py
src/novel_downloader/core/parsers/xiaoshuowu.py
src/novel_downloader/core/parsers/xiguashuwu.py
src/novel_downloader/core/parsers/xs63b.py
src/novel_downloader/core/parsers/xshbook.py
src/novel_downloader/core/parsers/yamibo.py
src/novel_downloader/core/parsers/yibige.py
src/novel_downloader/core/parsers/qidian/__init__.py
src/novel_downloader/core/parsers/qidian/book_info_parser.py
src/novel_downloader/core/parsers/qidian/chapter_encrypted.py
src/novel_downloader/core/parsers/qidian/chapter_normal.py
src/novel_downloader/core/parsers/qidian/chapter_router.py
src/novel_downloader/core/parsers/qidian/main_parser.py
src/novel_downloader/core/parsers/qidian/utils/__init__.py
src/novel_downloader/core/parsers/qidian/utils/decryptor_fetcher.py
src/novel_downloader/core/parsers/qidian/utils/fontmap_recover.py
src/novel_downloader/core/parsers/qidian/utils/helpers.py
src/novel_downloader/core/parsers/qidian/utils/node_decryptor.py
src/novel_downloader/core/searchers/__init__.py
src/novel_downloader/core/searchers/aaatxt.py
src/novel_downloader/core/searchers/b520.py
src/novel_downloader/core/searchers/base.py
src/novel_downloader/core/searchers/dxmwx.py
src/novel_downloader/core/searchers/eightnovel.py
src/novel_downloader/core/searchers/esjzone.py
src/novel_downloader/core/searchers/hetushu.py
src/novel_downloader/core/searchers/i25zw.py
src/novel_downloader/core/searchers/ixdzs8.py
src/novel_downloader/core/searchers/jpxs123.py
src/novel_downloader/core/searchers/piaotia.py
src/novel_downloader/core/searchers/qbtr.py
src/novel_downloader/core/searchers/qianbi.py
src/novel_downloader/core/searchers/quanben5.py
src/novel_downloader/core/searchers/registry.py
src/novel_downloader/core/searchers/shuhaige.py
src/novel_downloader/core/searchers/tongrenquan.py
src/novel_downloader/core/searchers/ttkan.py
src/novel_downloader/core/searchers/xiaoshuowu.py
src/novel_downloader/core/searchers/xiguashuwu.py
src/novel_downloader/core/searchers/xs63b.py
src/novel_downloader/locales/en.json
src/novel_downloader/locales/zh.json
src/novel_downloader/models/__init__.py
src/novel_downloader/models/book.py
src/novel_downloader/models/config.py
src/novel_downloader/models/login.py
src/novel_downloader/models/search.py
src/novel_downloader/resources/config/settings.toml
src/novel_downloader/resources/css_styles/intro.css
src/novel_downloader/resources/css_styles/main.css
src/novel_downloader/resources/images/volume_border.png
src/novel_downloader/resources/js_scripts/qidian_decrypt_node.js
src/novel_downloader/resources/json/linovelib_font_map.json
src/novel_downloader/resources/json/xiguashuwu.json
src/novel_downloader/utils/__init__.py
src/novel_downloader/utils/chapter_storage.py
src/novel_downloader/utils/constants.py
src/novel_downloader/utils/cookies.py
src/novel_downloader/utils/fontocr.py
src/novel_downloader/utils/i18n.py
src/novel_downloader/utils/logger.py
src/novel_downloader/utils/network.py
src/novel_downloader/utils/state.py
src/novel_downloader/utils/crypto_utils/__init__.py
src/novel_downloader/utils/crypto_utils/aes_util.py
src/novel_downloader/utils/crypto_utils/aes_v1.py
src/novel_downloader/utils/crypto_utils/aes_v2.py
src/novel_downloader/utils/crypto_utils/rc4.py
src/novel_downloader/utils/epub/__init__.py
src/novel_downloader/utils/epub/builder.py
src/novel_downloader/utils/epub/constants.py
src/novel_downloader/utils/epub/documents.py
src/novel_downloader/utils/epub/models.py
src/novel_downloader/utils/epub/utils.py
src/novel_downloader/utils/file_utils/__init__.py
src/novel_downloader/utils/file_utils/io.py
src/novel_downloader/utils/file_utils/normalize.py
src/novel_downloader/utils/file_utils/sanitize.py
src/novel_downloader/utils/text_utils/__init__.py
src/novel_downloader/utils/text_utils/diff_display.py
src/novel_downloader/utils/text_utils/numeric_conversion.py
src/novel_downloader/utils/text_utils/text_cleaner.py
src/novel_downloader/utils/text_utils/truncate_utils.py
src/novel_downloader/utils/time_utils/__init__.py
src/novel_downloader/utils/time_utils/datetime_utils.py
src/novel_downloader/utils/time_utils/sleep_utils.py
src/novel_downloader/web/__init__.py
src/novel_downloader/web/main.py
src/novel_downloader/web/components/__init__.py
src/novel_downloader/web/components/navigation.py
src/novel_downloader/web/pages/__init__.py
src/novel_downloader/web/pages/download.py
src/novel_downloader/web/pages/progress.py
src/novel_downloader/web/pages/search.py
src/novel_downloader/web/services/__init__.py
src/novel_downloader/web/services/client_dialog.py
src/novel_downloader/web/services/cred_broker.py
src/novel_downloader/web/services/cred_models.py
src/novel_downloader/web/services/task_manager.py