kmoe-manga-downloader 1.1.2__py3-none-any.whl → 1.2.0__py3-none-any.whl

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.
Files changed (31) hide show
  1. kmdr/core/__init__.py +5 -3
  2. kmdr/core/bases.py +49 -87
  3. kmdr/core/context.py +28 -0
  4. kmdr/core/defaults.py +64 -28
  5. kmdr/core/error.py +1 -1
  6. kmdr/core/session.py +16 -0
  7. kmdr/core/utils.py +33 -40
  8. kmdr/main.py +24 -15
  9. kmdr/module/authenticator/CookieAuthenticator.py +8 -4
  10. kmdr/module/authenticator/LoginAuthenticator.py +25 -21
  11. kmdr/module/authenticator/utils.py +47 -43
  12. kmdr/module/configurer/ConfigClearer.py +7 -2
  13. kmdr/module/configurer/ConfigUnsetter.py +2 -2
  14. kmdr/module/configurer/OptionLister.py +17 -3
  15. kmdr/module/configurer/OptionSetter.py +2 -2
  16. kmdr/module/configurer/option_validate.py +14 -12
  17. kmdr/module/downloader/DirectDownloader.py +7 -5
  18. kmdr/module/downloader/ReferViaDownloader.py +27 -24
  19. kmdr/module/downloader/utils.py +249 -91
  20. kmdr/module/lister/BookUrlLister.py +4 -3
  21. kmdr/module/lister/FollowedBookLister.py +59 -22
  22. kmdr/module/lister/utils.py +39 -28
  23. kmdr/module/picker/ArgsFilterPicker.py +1 -1
  24. kmdr/module/picker/DefaultVolPicker.py +34 -5
  25. {kmoe_manga_downloader-1.1.2.dist-info → kmoe_manga_downloader-1.2.0.dist-info}/METADATA +13 -11
  26. kmoe_manga_downloader-1.2.0.dist-info/RECORD +35 -0
  27. kmoe_manga_downloader-1.1.2.dist-info/RECORD +0 -33
  28. {kmoe_manga_downloader-1.1.2.dist-info → kmoe_manga_downloader-1.2.0.dist-info}/WHEEL +0 -0
  29. {kmoe_manga_downloader-1.1.2.dist-info → kmoe_manga_downloader-1.2.0.dist-info}/entry_points.txt +0 -0
  30. {kmoe_manga_downloader-1.1.2.dist-info → kmoe_manga_downloader-1.2.0.dist-info}/licenses/LICENSE +0 -0
  31. {kmoe_manga_downloader-1.1.2.dist-info → kmoe_manga_downloader-1.2.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kmoe-manga-downloader
3
- Version: 1.1.2
3
+ Version: 1.2.0
4
4
  Summary: A CLI-downloader for site @kox.moe.
5
5
  Author-email: Chris Zheng <chrisis58@outlook.com>
6
6
  License: MIT License
@@ -35,17 +35,19 @@ Classifier: Operating System :: OS Independent
35
35
  Requires-Python: >=3.9
36
36
  Description-Content-Type: text/markdown
37
37
  License-File: LICENSE
38
- Requires-Dist: beautifulsoup4<5.0.0,>=4.11.1
39
- Requires-Dist: requests<3.0.0,>=2.32.3
40
- Requires-Dist: tqdm<5.0.0,>=4.67.1
41
- Requires-Dist: cloudscraper<2.0.0,>=1.2.71
38
+ Requires-Dist: deprecation~=2.1.0
39
+ Requires-Dist: beautifulsoup4~=4.13.4
40
+ Requires-Dist: aiohttp~=3.12.15
41
+ Requires-Dist: aiofiles~=24.1.0
42
+ Requires-Dist: async-lru~=2.0.5
43
+ Requires-Dist: rich~=13.9.4
42
44
  Dynamic: license-file
43
45
 
44
46
  # Kmoe Manga Downloader
45
47
 
46
48
  [![PyPI Downloads](https://static.pepy.tech/badge/kmoe-manga-downloader)](https://pepy.tech/projects/kmoe-manga-downloader) [![PyPI version](https://img.shields.io/pypi/v/kmoe-manga-downloader.svg)](https://pypi.org/project/kmoe-manga-downloader/) [![Unit Tests](https://github.com/chrisis58/kmdr/actions/workflows/unit-test.yml/badge.svg)](https://github.com/chrisis58/kmdr/actions/workflows/unit-test.yml) [![Interpretor](https://img.shields.io/badge/python-3.9+-blue)](https://www.python.org/) [![License](https://img.shields.io/badge/License-MIT-green)](https://github.com/chrisis58/kmdr/blob/main/LICENSE)
47
49
 
48
- `kmdr (Kmoe Manga Downloader)` 是一个 Python 应用,用于从 [Kmoe](https://kox.moe/) 网站下载漫画。它支持在终端环境下的登录、下载指定书籍及其卷,并支持回调脚本执行。
50
+ `kmdr (Kmoe Manga Downloader)` 是一个 Python 应用,用于从 [Kmoe](https://kox.moe/) 网站下载漫画。它支持在终端环境下的登录、下载指定漫画及其卷,并支持回调脚本执行。
49
51
 
50
52
  <p align="center">
51
53
  <img src="assets/kmdr-demo.gif" alt="kmdr 使用演示" width="720">
@@ -53,11 +55,11 @@ Dynamic: license-file
53
55
 
54
56
  ## ✨功能特性
55
57
 
56
- - **凭证管理**: 命令行登录并持久化会话
57
- - **多种下载方式**: 支持通过书籍 URL 或从收藏列表下载
58
- - **高效下载**: 支持多线程、失败重试及断点续传
59
- - **配置持久化**: 保存常用下载目录、代理等设置
60
- - **回调支持**: 下载完成后自动执行自定义脚本
58
+ - **现代化终端界面**: 使用 [rich](https://github.com/Textualize/rich) 构建的终端用户界面(TUI),提供进度条和菜单等现代化、美观的交互式终端界面。
59
+ - **凭证和配置管理**: 应用自动维护登录凭证和下载设置,实现一次配置、持久有效,提升使用效率。
60
+ - **高效下载的性能**: 采用 `asyncio` 并发分片下载技术,充分利用网络带宽,极大加速单个大文件的下载速度。
61
+ - **强大的高可用性**: 内置强大的自动重试与断点续传机制,无惧网络中断,确保下载任务最终成功。
62
+ - **灵活的自动化接口**: 支持下载完成后自动执行自定义回调脚本,轻松集成到您的自动化流程。
61
63
 
62
64
  ## 🛠️安装应用
63
65
 
@@ -0,0 +1,35 @@
1
+ kmdr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ kmdr/main.py,sha256=EubhpLIrGHl9XjHXdmhROg3RBKyvHPuPaZPTaSYDsxQ,1355
3
+ kmdr/core/__init__.py,sha256=mTBPcw-mEKfHPV1bgwDx-JoO2G6dQ9QcOnQiEMmi7DE,342
4
+ kmdr/core/bases.py,sha256=JbwFlYdwQf4APCqanbJaCYtNzfiHOyvRkiIP5CKIvcc,3397
5
+ kmdr/core/context.py,sha256=fNxgQxmS9kX7ORURGjt_REtuTa1UGl796DeWaszf9pI,710
6
+ kmdr/core/defaults.py,sha256=dafYcqWcz8OveV-mRI92ScRgx7y6n3pdFUpnHYUqBKk,7649
7
+ kmdr/core/error.py,sha256=NBsa3eXiL8IPaKsYhZ1KXfVjdfmaM91UhtyH9tr7JCU,633
8
+ kmdr/core/registry.py,sha256=KYjvww5WRuUg5SeIeWZb96803-kgrTIKYvFTj_7bPfo,5560
9
+ kmdr/core/session.py,sha256=lFH4lnriwqvw-tlB3MEgRedX7h_LdtaR21Rfo-HAhRs,498
10
+ kmdr/core/structure.py,sha256=JHTuEHuRJLx1dEgg59WDJCZKORvwPJWuAb6nT1cSFNA,1163
11
+ kmdr/core/utils.py,sha256=mqlsHRm7LnymcBr-BKKf1Uq6tF6W4101wY45A-mzg3Q,2015
12
+ kmdr/module/__init__.py,sha256=aSuTcHhuBHUi1xNj5HTsXxhvegGBTRPNKj4JAPLC7LE,319
13
+ kmdr/module/authenticator/CookieAuthenticator.py,sha256=4upqvHSWZk_EyTACkEdDsBK0VO4pdUTYq5ilImAQPNE,1143
14
+ kmdr/module/authenticator/LoginAuthenticator.py,sha256=kEBGFCO-hXMmIVJ7-F-7Me_a2IqNGy9j9kaUlNWHU_M,2025
15
+ kmdr/module/authenticator/utils.py,sha256=MytwJ7jAUKJHPiQ7nCOVJN4fv1aQMyqLDTLQXvcs28k,2806
16
+ kmdr/module/configurer/ConfigClearer.py,sha256=2Ra-EV4fuDilWwoUS8NBSL1__-50D0YD0P6kHurH62c,480
17
+ kmdr/module/configurer/ConfigUnsetter.py,sha256=WVCETKg80vGCDEoaN5XWG7MYDJo-eGit-n53rBk46ZE,597
18
+ kmdr/module/configurer/OptionLister.py,sha256=iP8AmYLh885axpSdTexnWtgGx1r93Ko3IC-uKmCh8zE,1093
19
+ kmdr/module/configurer/OptionSetter.py,sha256=g3Nid0cG0VFhEguAcHwsOpfOluf-8lKpwZLemrUfP-A,893
20
+ kmdr/module/configurer/option_validate.py,sha256=Mn91UmpTI8zVV9Em8rL2mjNV21h0iYlzT8xoWDLEI68,3387
21
+ kmdr/module/downloader/DirectDownloader.py,sha256=BKxU3_Wky9HyFJ62SihUyvrPI2LM1jMDjrcbHRntAEg,1158
22
+ kmdr/module/downloader/ReferViaDownloader.py,sha256=7ElAe_vXOjQJZ3ICtcMWIwVUdvY5_iBn1CX9zomeRgA,1703
23
+ kmdr/module/downloader/utils.py,sha256=r6AdBRihLAsRkmH563czgwGe2NXyvyRWWIQcE0yen8c,11206
24
+ kmdr/module/lister/BookUrlLister.py,sha256=R1sak_GQG8HKfdSzHF-Dy1iby6TgFlxKJLf2dwBr0Bw,550
25
+ kmdr/module/lister/FollowedBookLister.py,sha256=9ZL6pC5nnxZos9ymbdKIuUNwjiCwcfakiZRNcbLrYzI,2874
26
+ kmdr/module/lister/utils.py,sha256=gVIRgEf41wBSji9TGWvxdp6XE4RLhQGy6xDKJsO8gE4,3182
27
+ kmdr/module/picker/ArgsFilterPicker.py,sha256=wBCDa6KsSSOLLQk8D4ftZ9ZnwPLiHIirxf6gGBq3I08,1782
28
+ kmdr/module/picker/DefaultVolPicker.py,sha256=XD5mo48bwpa6T69AIxWJVvrX1daPsxyG8AFsJ4RLTBc,1760
29
+ kmdr/module/picker/utils.py,sha256=lpxM7q9BJeupFQy8glBrHu1o4E38dk7iLexzKytAE6g,1222
30
+ kmoe_manga_downloader-1.2.0.dist-info/licenses/LICENSE,sha256=bKQlsXu8mAYKRZyoZKOEqMcCc8YjT5Q3Hgr21e0yU4E,1068
31
+ kmoe_manga_downloader-1.2.0.dist-info/METADATA,sha256=IJ-UGffCDmAt8ox28Mx1NOAo_MdC3hWxsdxxXrw5rQQ,8317
32
+ kmoe_manga_downloader-1.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
33
+ kmoe_manga_downloader-1.2.0.dist-info/entry_points.txt,sha256=DGMytQAhx4uNuKQL7BPkiWESHLXkH-2KSEqwHdygNPA,47
34
+ kmoe_manga_downloader-1.2.0.dist-info/top_level.txt,sha256=e0qxOgWp0tl3GLpmXGjZv3--q_TLoJ7GztM48Ov27wM,5
35
+ kmoe_manga_downloader-1.2.0.dist-info/RECORD,,
@@ -1,33 +0,0 @@
1
- kmdr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- kmdr/main.py,sha256=F_zXjRr2QIBdNrqvCqpSNkFSxVY6ySfm-mk-Gg9qy7g,1018
3
- kmdr/core/__init__.py,sha256=WT4MHsww1KOcIlf3z_AK5-4mXNFNBoCE1REQ0dvf9DE,281
4
- kmdr/core/bases.py,sha256=uDLamjuRfwcVhbGI99aSUZBi-fN32OM2fl91t0bbVog,4484
5
- kmdr/core/defaults.py,sha256=9vVN0xywLOHm3tcNf1GGJ9RTXB38YLTvBMqxmp0jEAE,6582
6
- kmdr/core/error.py,sha256=ZXsiD-Ihe0zo5wdNgd7Rg-ISZifsiU5C6FeHesurfy4,597
7
- kmdr/core/registry.py,sha256=KYjvww5WRuUg5SeIeWZb96803-kgrTIKYvFTj_7bPfo,5560
8
- kmdr/core/structure.py,sha256=JHTuEHuRJLx1dEgg59WDJCZKORvwPJWuAb6nT1cSFNA,1163
9
- kmdr/core/utils.py,sha256=eBoj8O37kIQSN6S72EPpv83YRQlplBZ1FzEvehOLEKU,1953
10
- kmdr/module/__init__.py,sha256=aSuTcHhuBHUi1xNj5HTsXxhvegGBTRPNKj4JAPLC7LE,319
11
- kmdr/module/authenticator/CookieAuthenticator.py,sha256=5LzqtpTCfKufcjbzFeJIAUbUaTxo2W4mN1ki8CDel2Y,1002
12
- kmdr/module/authenticator/LoginAuthenticator.py,sha256=PnLGpgSZCA6GvtYFAKeCIRvjtojwIeF4it50QdTXuu8,1827
13
- kmdr/module/authenticator/utils.py,sha256=fgheXC2--ZQ53zap6gF4lA88CzJRN4ljgKmOs3IbiJU,2415
14
- kmdr/module/configurer/ConfigClearer.py,sha256=S5VxJ5latDK2-0Xf77_fVECXah7DhbI0exWE6AwUUkc,355
15
- kmdr/module/configurer/ConfigUnsetter.py,sha256=ZjySNAQj4-j9k68_tbXa2Z9G0TqGgfKPRCtIf939Hfg,531
16
- kmdr/module/configurer/OptionLister.py,sha256=qc-nWPft_EtbEgJnz32h3nwGyGbe9oabKZpm6dIJi_o,516
17
- kmdr/module/configurer/OptionSetter.py,sha256=9MIkWZb-aFUTqpVCVrnri3JZTE0zO3CIYuN_nz5yzzY,842
18
- kmdr/module/configurer/option_validate.py,sha256=DdtUG0E-LgjjHQgPBSyRZ_ID40QRRFSS_FEQHdK94hM,3327
19
- kmdr/module/downloader/DirectDownloader.py,sha256=5ny3or9fj2rb3qGxEWBmiEs5vlIfvCSGFiMoFISs_J8,1060
20
- kmdr/module/downloader/ReferViaDownloader.py,sha256=_x-hniGmIqc_7OFY-kQUrOIH0TwDcf-_NCsmVql2pp0,1694
21
- kmdr/module/downloader/utils.py,sha256=qGp_c0coVENDKPNUpA7uZoHoDxBIj5jQHlw8qf4NRpQ,4814
22
- kmdr/module/lister/BookUrlLister.py,sha256=Mq7EBXWSKd-6cygfkTjmOvgcUUaJI4NMQiaEIv9VDSk,470
23
- kmdr/module/lister/FollowedBookLister.py,sha256=_fShmCAsZQqboeuRtLBjo6d9CkGpat8xNKC3COtKllc,1537
24
- kmdr/module/lister/utils.py,sha256=0EHQIA05EZ1V0_SfkJ8demjzMRmFh9Q5qPvE6jvBqSU,2560
25
- kmdr/module/picker/ArgsFilterPicker.py,sha256=f3suMPPeFEtB3u7aUY63k_sGIOP196R-VviQ9RfDBTA,1756
26
- kmdr/module/picker/DefaultVolPicker.py,sha256=kpG5dvv1UKMhSA01VKGNB59zM5uszspyUVfRlL9aQA0,750
27
- kmdr/module/picker/utils.py,sha256=lpxM7q9BJeupFQy8glBrHu1o4E38dk7iLexzKytAE6g,1222
28
- kmoe_manga_downloader-1.1.2.dist-info/licenses/LICENSE,sha256=bKQlsXu8mAYKRZyoZKOEqMcCc8YjT5Q3Hgr21e0yU4E,1068
29
- kmoe_manga_downloader-1.1.2.dist-info/METADATA,sha256=vPMrYaRtOC0rTenqPS2QWj5Inq1X1gYlMbSZ2HANAPQ,7869
30
- kmoe_manga_downloader-1.1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
31
- kmoe_manga_downloader-1.1.2.dist-info/entry_points.txt,sha256=DGMytQAhx4uNuKQL7BPkiWESHLXkH-2KSEqwHdygNPA,47
32
- kmoe_manga_downloader-1.1.2.dist-info/top_level.txt,sha256=e0qxOgWp0tl3GLpmXGjZv3--q_TLoJ7GztM48Ov27wM,5
33
- kmoe_manga_downloader-1.1.2.dist-info/RECORD,,