novel-downloader 1.2.0__py3-none-any.whl → 1.2.2__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.
- novel_downloader/__init__.py +1 -1
- novel_downloader/cli/download.py +2 -0
- novel_downloader/config/adapter.py +41 -13
- novel_downloader/config/models.py +13 -8
- novel_downloader/core/downloaders/base_async_downloader.py +1 -1
- novel_downloader/core/downloaders/common_downloader.py +1 -2
- novel_downloader/core/downloaders/qidian_downloader.py +1 -2
- novel_downloader/core/factory/downloader_factory.py +13 -11
- novel_downloader/core/interfaces/async_requester_protocol.py +9 -4
- novel_downloader/core/interfaces/requester_protocol.py +7 -4
- novel_downloader/core/parsers/base_parser.py +3 -3
- novel_downloader/core/parsers/common_parser/helper.py +7 -5
- novel_downloader/core/parsers/qidian_parser/browser/chapter_encrypted.py +1 -1
- novel_downloader/core/parsers/qidian_parser/browser/main_parser.py +5 -3
- novel_downloader/core/parsers/qidian_parser/session/chapter_encrypted.py +1 -1
- novel_downloader/core/parsers/qidian_parser/session/main_parser.py +5 -3
- novel_downloader/core/parsers/qidian_parser/shared/book_info_parser.py +74 -18
- novel_downloader/core/parsers/qidian_parser/shared/helpers.py +2 -2
- novel_downloader/core/requesters/base_async_session.py +11 -6
- novel_downloader/core/requesters/base_browser.py +12 -8
- novel_downloader/core/requesters/base_session.py +9 -6
- novel_downloader/core/requesters/common_requester/common_async_session.py +4 -2
- novel_downloader/core/requesters/common_requester/common_session.py +4 -4
- novel_downloader/core/requesters/qidian_requester/qidian_broswer.py +38 -19
- novel_downloader/core/requesters/qidian_requester/qidian_session.py +6 -6
- novel_downloader/core/savers/common_saver/common_epub.py +1 -1
- novel_downloader/locales/en.json +4 -0
- novel_downloader/locales/zh.json +4 -0
- novel_downloader/resources/config/settings.yaml +16 -13
- novel_downloader/utils/constants.py +2 -1
- novel_downloader/utils/fontocr/ocr_v2.py +6 -0
- novel_downloader/utils/time_utils/datetime_utils.py +1 -1
- novel_downloader/utils/time_utils/sleep_utils.py +27 -11
- {novel_downloader-1.2.0.dist-info → novel_downloader-1.2.2.dist-info}/METADATA +1 -1
- {novel_downloader-1.2.0.dist-info → novel_downloader-1.2.2.dist-info}/RECORD +39 -39
- {novel_downloader-1.2.0.dist-info → novel_downloader-1.2.2.dist-info}/WHEEL +1 -1
- {novel_downloader-1.2.0.dist-info → novel_downloader-1.2.2.dist-info}/entry_points.txt +0 -0
- {novel_downloader-1.2.0.dist-info → novel_downloader-1.2.2.dist-info}/licenses/LICENSE +0 -0
- {novel_downloader-1.2.0.dist-info → novel_downloader-1.2.2.dist-info}/top_level.txt +0 -0
@@ -20,24 +20,40 @@ logger = logging.getLogger(__name__)
|
|
20
20
|
|
21
21
|
|
22
22
|
def sleep_with_random_delay(
|
23
|
-
base: float,
|
23
|
+
base: float,
|
24
|
+
add_spread: float = 0.0,
|
25
|
+
mul_spread: float = 1.0,
|
26
|
+
*,
|
27
|
+
max_sleep: Optional[float] = None,
|
24
28
|
) -> None:
|
25
29
|
"""
|
26
|
-
Sleep for a random duration
|
27
|
-
optionally capped by `max_sleep`.
|
30
|
+
Sleep for a random duration by combining multiplicative and additive jitter.
|
28
31
|
|
29
|
-
|
30
|
-
issues in scripts.
|
32
|
+
The total sleep time is computed as:
|
31
33
|
|
32
|
-
|
33
|
-
|
34
|
-
|
34
|
+
duration = base * uniform(1.0, mul_spread) + uniform(0, add_spread)
|
35
|
+
|
36
|
+
If `max_sleep` is provided, the duration will be capped at that value.
|
37
|
+
|
38
|
+
:param base: Base sleep time in seconds. Must be >= 0.
|
39
|
+
:param add_spread: Maximum extra seconds to add after scaling base.
|
40
|
+
:param mul_spread: Maximum multiplier factor for base; drawn from [1.0, mul_spread].
|
41
|
+
:param max_sleep: Optional upper limit for the final sleep duration.
|
35
42
|
"""
|
36
|
-
if base < 0 or
|
37
|
-
logger.warning(
|
43
|
+
if base < 0 or add_spread < 0 or mul_spread < 0:
|
44
|
+
logger.warning(
|
45
|
+
"[sleep] Invalid parameters: base=%s, add_spread=%s, mul_spread=%s",
|
46
|
+
base,
|
47
|
+
add_spread,
|
48
|
+
mul_spread,
|
49
|
+
)
|
38
50
|
return
|
39
51
|
|
40
|
-
|
52
|
+
# Calculate the raw duration
|
53
|
+
multiplicative_jitter = random.uniform(1.0, mul_spread)
|
54
|
+
additive_jitter = random.uniform(0, add_spread)
|
55
|
+
duration = base * multiplicative_jitter + additive_jitter
|
56
|
+
|
41
57
|
if max_sleep is not None:
|
42
58
|
duration = min(duration, max_sleep)
|
43
59
|
|
@@ -1,69 +1,69 @@
|
|
1
|
-
novel_downloader/__init__.py,sha256=
|
1
|
+
novel_downloader/__init__.py,sha256=LCdmt0Int1WSZ3n25_tdJ7Mm-gknw2F-Sg4xKyMLWJs,242
|
2
2
|
novel_downloader/cli/__init__.py,sha256=ocGwOO4kmkby8VNol92UikMI1RPUJLv9i5xmB7wbpmw,198
|
3
3
|
novel_downloader/cli/clean.py,sha256=9_hOrxKg8nY7q6cyR8iNech0vSREGagPBmdB4k8Te2U,3937
|
4
|
-
novel_downloader/cli/download.py,sha256=
|
4
|
+
novel_downloader/cli/download.py,sha256=WZLnf8cckAGe9t7hI6WWgjrm_KRa67pTwEC-YJBAmFc,4223
|
5
5
|
novel_downloader/cli/interactive.py,sha256=6vROwPsvupb_TWH1dd_78FDqvtAaiPfyEBvQVai9E9c,2154
|
6
6
|
novel_downloader/cli/main.py,sha256=km1MwHzIVZFcxUlKLRiiMctJlGHWKZNjRKrgAGQjkMs,1183
|
7
7
|
novel_downloader/cli/settings.py,sha256=bV3Hgg502V9goeP3g2xSiF-PMQB9G32qGmjb8ncTENA,6522
|
8
8
|
novel_downloader/config/__init__.py,sha256=tJ2k7nwZbxgqw1kKgJM4g1yu5-2fsx2LXU3VTadrTJ4,1129
|
9
|
-
novel_downloader/config/adapter.py,sha256=
|
9
|
+
novel_downloader/config/adapter.py,sha256=R1y1g7uDBxtDz_sVsDGl2-iasQNAtWSmYdSk-mcFoAA,6698
|
10
10
|
novel_downloader/config/loader.py,sha256=_rm9rp1lmHYg-A7F_0PQETWjlXbvtyJYaqQD5oI-1O0,5690
|
11
|
-
novel_downloader/config/models.py,sha256=
|
11
|
+
novel_downloader/config/models.py,sha256=i7i1yQzY5lAZWDBhi5ZXqzthlanhvhAc3oViMMoJFyw,5139
|
12
12
|
novel_downloader/config/site_rules.py,sha256=WRw12Tfue-ErAPGKq506gRIqKOxWU-u96kay3JDgTNc,3031
|
13
13
|
novel_downloader/core/__init__.py,sha256=D-ACiIqP0rdARZmjBnF6WMKGvvjVtxGRIM7GhOS9kh4,779
|
14
14
|
novel_downloader/core/downloaders/__init__.py,sha256=Qp0q4p7zTy7lReQQF0hDP7ALUQnNflSNNIl4F7iPGz0,601
|
15
|
-
novel_downloader/core/downloaders/base_async_downloader.py,sha256=
|
15
|
+
novel_downloader/core/downloaders/base_async_downloader.py,sha256=8lMSVLU-VtGIdEMGkS0s_rEJpqCgu2WaljBvsEDyPN4,4281
|
16
16
|
novel_downloader/core/downloaders/base_downloader.py,sha256=kFw_yn3QRbWqU9jXJni4IGA8P3AxZf9gfjgfu01TauY,5371
|
17
17
|
novel_downloader/core/downloaders/common_asynb_downloader.py,sha256=u1ODvh_n13CSGWwjkBIMoThTbCeACX5mOhv5ub2Cd0c,7120
|
18
|
-
novel_downloader/core/downloaders/common_downloader.py,sha256
|
19
|
-
novel_downloader/core/downloaders/qidian_downloader.py,sha256=
|
18
|
+
novel_downloader/core/downloaders/common_downloader.py,sha256=-HT7pi8bCSAdIcrU9CFHz26iqgtPhlUTI2MoE7ldCfY,6506
|
19
|
+
novel_downloader/core/downloaders/qidian_downloader.py,sha256=KH-rPvwhWsZ9hyuvZxhQ9Q42LDFiAABpMlgReeX2nzI,7328
|
20
20
|
novel_downloader/core/factory/__init__.py,sha256=qGqeROj8Dp_5iNtgWytkrUNI0ICab7SCNK3lba3H_NU,743
|
21
|
-
novel_downloader/core/factory/downloader_factory.py,sha256=
|
21
|
+
novel_downloader/core/factory/downloader_factory.py,sha256=ldWFZ3189rxW2cWTNcwidiPisJNuaxD8OYB5YyjOXRU,5110
|
22
22
|
novel_downloader/core/factory/parser_factory.py,sha256=4PxiagtSKY58azFsmEWfq2f5vhVbtMFm5gAXS3oQF08,1828
|
23
23
|
novel_downloader/core/factory/requester_factory.py,sha256=OEK2S-rj8vw4IdDTMTEWcb7k7lRmmWBnfijhYnlOCc0,3173
|
24
24
|
novel_downloader/core/factory/saver_factory.py,sha256=OgZPDOWVIfhxLFiVBKI5jaNOEKmzP9f3YWDOnw63Hfc,1275
|
25
25
|
novel_downloader/core/interfaces/__init__.py,sha256=jeT8BmEEjIazVyX80ZdzQXgTccEj-ktG6Bbjs9uAVUM,843
|
26
26
|
novel_downloader/core/interfaces/async_downloader_protocol.py,sha256=QWjdhNc39hC3bD8Q1lUpBv2GqX3roxVxzKWh6cgwLhk,1002
|
27
|
-
novel_downloader/core/interfaces/async_requester_protocol.py,sha256=
|
27
|
+
novel_downloader/core/interfaces/async_requester_protocol.py,sha256=Jd54mJWnNt_BE2RRGYGmGDe93MM0I4xBLL4m6u6V_Is,2344
|
28
28
|
novel_downloader/core/interfaces/downloader_protocol.py,sha256=YJdSAE9uBWF7wNLWmlKsYd3J7M4rXOjqDV5m9O7kfio,947
|
29
29
|
novel_downloader/core/interfaces/parser_protocol.py,sha256=A2wIe7shEGdeKsNDFpMuPI8HFrK_H34HOseVAzqcnTo,1280
|
30
|
-
novel_downloader/core/interfaces/requester_protocol.py,sha256=
|
30
|
+
novel_downloader/core/interfaces/requester_protocol.py,sha256=Zskzwom104GWjB0LrV-VvAR7vfTB3LAcHvV110ISdo0,2058
|
31
31
|
novel_downloader/core/interfaces/saver_protocol.py,sha256=_3ha4koF-xBrogJwvCOsQM3GEXfLn3_aYZHvmRd1ZR4,1623
|
32
32
|
novel_downloader/core/parsers/__init__.py,sha256=TSarXiYxthyjFgruRFkpMEucqmylrCtR_4Y1C1RVMhk,544
|
33
|
-
novel_downloader/core/parsers/base_parser.py,sha256=
|
33
|
+
novel_downloader/core/parsers/base_parser.py,sha256=mRv6tmbWIuX5XnXYnSP9JMsXECgykZymq4zWNNk7wDQ,2936
|
34
34
|
novel_downloader/core/parsers/common_parser/__init__.py,sha256=GmV7Yj57zbLK0-WYmPtv6x1AhKwa3lzKlqsU7mc3lzg,379
|
35
|
-
novel_downloader/core/parsers/common_parser/helper.py,sha256=
|
35
|
+
novel_downloader/core/parsers/common_parser/helper.py,sha256=gY3HHYnXGHHiCaig59T7IlI7Fa7XEqlmAAKWGmeSmXI,12090
|
36
36
|
novel_downloader/core/parsers/common_parser/main_parser.py,sha256=ANvkZMYACZEwaYLz56lLyBz9dc_XqZMvWp2_jWWoF3g,2868
|
37
37
|
novel_downloader/core/parsers/qidian_parser/__init__.py,sha256=mYbZvWMn4oFFX3qGhGx6Qo6oqvE5I71b-jbanWsTOSI,522
|
38
38
|
novel_downloader/core/parsers/qidian_parser/browser/__init__.py,sha256=E8kMkQW_LdmVFYpHbbYtJTLNTYOy9XItQf_h7KcnGIU,353
|
39
|
-
novel_downloader/core/parsers/qidian_parser/browser/chapter_encrypted.py,sha256=
|
39
|
+
novel_downloader/core/parsers/qidian_parser/browser/chapter_encrypted.py,sha256=v-sCfQYyRNOdZ12Qlb9b5Tqq69rcOS_CKBUG5XG9WUs,17713
|
40
40
|
novel_downloader/core/parsers/qidian_parser/browser/chapter_normal.py,sha256=SZ9Ncw6yLCRo4gJNEtv4V8N2WfONvEAc8lftJREsBTY,3190
|
41
41
|
novel_downloader/core/parsers/qidian_parser/browser/chapter_router.py,sha256=qjN10SpQCUMjFcCaWnqIZhcLDx5sN5jzDfWIrBSbnyo,2101
|
42
|
-
novel_downloader/core/parsers/qidian_parser/browser/main_parser.py,sha256=
|
42
|
+
novel_downloader/core/parsers/qidian_parser/browser/main_parser.py,sha256=8nmmTlhgina3JNrKoIMkFoNF6d9ztki7kAcCyGysy4g,3856
|
43
43
|
novel_downloader/core/parsers/qidian_parser/session/__init__.py,sha256=Rs2Sz1vNn1-UdpY0O_reECBN4kgb3JYHQZoZ20P7lHU,358
|
44
|
-
novel_downloader/core/parsers/qidian_parser/session/chapter_encrypted.py,sha256=
|
44
|
+
novel_downloader/core/parsers/qidian_parser/session/chapter_encrypted.py,sha256=XbQV0MQVsiumyrwGddAUaK9JrZpWZlfbZ0_2vBhGupU,16016
|
45
45
|
novel_downloader/core/parsers/qidian_parser/session/chapter_normal.py,sha256=ySQ7vUs4dLCkHv_nPSifDnH3xq3wqxa9FWGy_ETX-uw,3875
|
46
46
|
novel_downloader/core/parsers/qidian_parser/session/chapter_router.py,sha256=ob8ULDhNdnJgU3rlA-tLy0w0PqbC20vi8auFqQipJww,1978
|
47
|
-
novel_downloader/core/parsers/qidian_parser/session/main_parser.py,sha256=
|
47
|
+
novel_downloader/core/parsers/qidian_parser/session/main_parser.py,sha256=fL-IYhd99Rbb2eHCOy0DmYpmHeIOSe3DIFbtQKCj53s,3947
|
48
48
|
novel_downloader/core/parsers/qidian_parser/session/node_decryptor.py,sha256=7ZuneGzL7HX1g8taMzn-2qkJXLDHgrVee-FDkMZtIIw,5755
|
49
49
|
novel_downloader/core/parsers/qidian_parser/shared/__init__.py,sha256=K5HX7pgiRiJuTLdbQDbtm60mO-sXgr6bo5Ft8H1-JLs,978
|
50
|
-
novel_downloader/core/parsers/qidian_parser/shared/book_info_parser.py,sha256=
|
51
|
-
novel_downloader/core/parsers/qidian_parser/shared/helpers.py,sha256=
|
50
|
+
novel_downloader/core/parsers/qidian_parser/shared/book_info_parser.py,sha256=CGoJXRrf65CjJU3wPjZ8FRy96zV2rkYyWSMEyEFUrzE,4853
|
51
|
+
novel_downloader/core/parsers/qidian_parser/shared/helpers.py,sha256=zQqcts8f_JddtKvQjvVJBJQvN5HjeaqlP2I3ztwO75o,4306
|
52
52
|
novel_downloader/core/requesters/__init__.py,sha256=U2jDvt5RxF5P9yL2lwyZ-cRueJBZgRnjil3_5TvAh3Y,798
|
53
|
-
novel_downloader/core/requesters/base_async_session.py,sha256=
|
54
|
-
novel_downloader/core/requesters/base_browser.py,sha256=
|
55
|
-
novel_downloader/core/requesters/base_session.py,sha256=
|
53
|
+
novel_downloader/core/requesters/base_async_session.py,sha256=xojNO_TCLUHmkuk379ttoiScHwmLCNhQAFzQKSpk5AM,10635
|
54
|
+
novel_downloader/core/requesters/base_browser.py,sha256=HceDLOkl86K_nAkZR1XGIzSa-4KyFGt0dG5PyhefJ3c,6899
|
55
|
+
novel_downloader/core/requesters/base_session.py,sha256=0yl3wR-myu-r9NrtwnGWzEFMzWPxcD3ROT5x9xeX6zQ,8328
|
56
56
|
novel_downloader/core/requesters/common_requester/__init__.py,sha256=kVKZyrS7PVlUnaV1xGsZdoW2J9XuyQ11A4oMV9Cc64Q,523
|
57
|
-
novel_downloader/core/requesters/common_requester/common_async_session.py,sha256=
|
58
|
-
novel_downloader/core/requesters/common_requester/common_session.py,sha256=
|
57
|
+
novel_downloader/core/requesters/common_requester/common_async_session.py,sha256=Bt_pgiJdxfoSDswMANeiZxaUQ4E5YitqEmcTlL4ImLY,3556
|
58
|
+
novel_downloader/core/requesters/common_requester/common_session.py,sha256=hzah5pvRqFBTzmz1J5d7GE5jbpKSOZWBPz-lh18cTv4,4686
|
59
59
|
novel_downloader/core/requesters/qidian_requester/__init__.py,sha256=s0ldqNvfqUsEnm_biM_bXEGN7gz88Z5IAx1OBvGW1lY,682
|
60
|
-
novel_downloader/core/requesters/qidian_requester/qidian_broswer.py,sha256=
|
61
|
-
novel_downloader/core/requesters/qidian_requester/qidian_session.py,sha256=
|
60
|
+
novel_downloader/core/requesters/qidian_requester/qidian_broswer.py,sha256=BkweHqf-TEC2VCGKFxdUp24lPDuQPUepfHPFUXUgTh0,15146
|
61
|
+
novel_downloader/core/requesters/qidian_requester/qidian_session.py,sha256=R-B6Hc61v5C-KGdEckDJWBt7Bnn_dbpW5ukQgh3x--Q,7664
|
62
62
|
novel_downloader/core/savers/__init__.py,sha256=p9O6p8ZUblrSheDVJoTSuDr6s1mJpQi8mz3QmQ16nHs,391
|
63
63
|
novel_downloader/core/savers/base_saver.py,sha256=VocVl8go80IkzAp9qY4dgZjmLbK8TVkg48Ugl53pxrc,5513
|
64
64
|
novel_downloader/core/savers/qidian_saver.py,sha256=MVAcWdM-IX_qsRW5It2aIkx9QPdRCLcZGcD3ihfm3gU,627
|
65
65
|
novel_downloader/core/savers/common_saver/__init__.py,sha256=Pg52cjAwG9fgT5qWgVer5oLMACU-duNFNbtfcq4t5xA,292
|
66
|
-
novel_downloader/core/savers/common_saver/common_epub.py,sha256=
|
66
|
+
novel_downloader/core/savers/common_saver/common_epub.py,sha256=80a-ibhhTy08wsZr7uiqrlvmITcsd1MH-z1OAj1Dl3c,7182
|
67
67
|
novel_downloader/core/savers/common_saver/common_txt.py,sha256=fgBoKPApmODeUoxCi54txoD322G7mlU9o8HEM5X5atk,5765
|
68
68
|
novel_downloader/core/savers/common_saver/main_saver.py,sha256=scjERGgC7X2R3f0KuLwf462VHkFJ2D2duod53aWlMkg,2765
|
69
69
|
novel_downloader/core/savers/epub_utils/__init__.py,sha256=rqWUMkdebZ2dO-aZRYSutZ-w5uKgFVwe83nBJbYx40E,738
|
@@ -71,10 +71,10 @@ novel_downloader/core/savers/epub_utils/css_builder.py,sha256=ZiYEAuC4_u3BWBcf6-
|
|
71
71
|
novel_downloader/core/savers/epub_utils/initializer.py,sha256=QuPWuChq2dcFlGp-PeZBrhfqSwoM7Nko-zHe9beluZw,3255
|
72
72
|
novel_downloader/core/savers/epub_utils/text_to_html.py,sha256=UW70pMmc9HdgSCMKVEgukONFdlNCmQIKs9PCDLNAFQU,4117
|
73
73
|
novel_downloader/core/savers/epub_utils/volume_intro.py,sha256=1NhnLKRL_ieoDgXTRt3vTNeENGvUj7JTZxTME4TmYm8,1820
|
74
|
-
novel_downloader/locales/en.json,sha256=
|
75
|
-
novel_downloader/locales/zh.json,sha256=
|
74
|
+
novel_downloader/locales/en.json,sha256=4Zn2cD2vGkHHIam2j_Ig-gpicD14L3ufKX_lq0k0yR4,5531
|
75
|
+
novel_downloader/locales/zh.json,sha256=nKmxyb84gmq9tg9DFLSx1r0MWLmo4Jwzf27S4ggDzV4,5420
|
76
76
|
novel_downloader/resources/config/rules.toml,sha256=hrED6h3Z3cjSY5hRPQhp4TFAU5QXnN9xHfVABOJQNrM,4979
|
77
|
-
novel_downloader/resources/config/settings.yaml,sha256=
|
77
|
+
novel_downloader/resources/config/settings.yaml,sha256=NxtYrf2HWJQyGwIuj3f3JKA72Do5WPvSghonPM0Q7SM,3493
|
78
78
|
novel_downloader/resources/css_styles/main.css,sha256=WM6GePwdOGgM86fbbOxQ0_0oerTBDZeQHt8zRVfcJp8,1617
|
79
79
|
novel_downloader/resources/css_styles/volume-intro.css,sha256=6gaUnNKkrb2w8tYJRq1BGD1FwbhT1I5W2GI_Zelo9G4,1156
|
80
80
|
novel_downloader/resources/images/volume_border.png,sha256=2dEVimnTHKOfLMhi7bhkh_5joWNnrqg8duomLSNOZx4,28613
|
@@ -83,7 +83,7 @@ novel_downloader/resources/json/replace_word_map.json,sha256=ptL9sGO9aK7rnnAaOIy
|
|
83
83
|
novel_downloader/resources/text/blacklist.txt,sha256=sovK9JgARZP3lud5b1EZgvv8LSVKPthf4ADpCSZZgQ8,154
|
84
84
|
novel_downloader/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
85
85
|
novel_downloader/utils/cache.py,sha256=NB5j7CWNscfE4eFA0A9O5mYR1eW-216M-ljlMo0LDqE,615
|
86
|
-
novel_downloader/utils/constants.py,sha256=
|
86
|
+
novel_downloader/utils/constants.py,sha256=geLu9ufkM1plktIbF2VRzS5N5_N2XuHn0T03Kc0lGCQ,5520
|
87
87
|
novel_downloader/utils/crypto_utils.py,sha256=whGgir2oi_17pNteiIRztiMNaB-ZP63GMP3KPJkXA80,4178
|
88
88
|
novel_downloader/utils/hash_store.py,sha256=rpr61GsvZ9wT_1fEn4_83JZ-nWc1KLtcvb56ZqHawdk,9826
|
89
89
|
novel_downloader/utils/hash_utils.py,sha256=6S4-Q_uLNzdEDkBOUG9QEcflbuPFNDAYe6Gx718AOo4,2998
|
@@ -98,18 +98,18 @@ novel_downloader/utils/file_utils/normalize.py,sha256=7lqtVAMQO6z1JoCihLo-cf9PYn
|
|
98
98
|
novel_downloader/utils/file_utils/sanitize.py,sha256=dRgdtJx33G6DTFgEK0f1CFyTGUBKG5jxej2A-f7grQU,2324
|
99
99
|
novel_downloader/utils/fontocr/__init__.py,sha256=j8IrSs7wUPX8shg18wafo15hgQmqwUaqrfExbHJAaMY,567
|
100
100
|
novel_downloader/utils/fontocr/ocr_v1.py,sha256=hWB7cv6qQATpmrM0mVtRPlhBRmYKxJ9xNMiBrmo6__U,11351
|
101
|
-
novel_downloader/utils/fontocr/ocr_v2.py,sha256=
|
101
|
+
novel_downloader/utils/fontocr/ocr_v2.py,sha256=RSmHfrilrRudExAjzkBm-_PknDNT9blp_2Eu2wCw54M,24457
|
102
102
|
novel_downloader/utils/text_utils/__init__.py,sha256=Iq6ZuS93J_M54nv1zPECryuPXJ-a0b3OE2wnyWqo-qs,830
|
103
103
|
novel_downloader/utils/text_utils/chapter_formatting.py,sha256=NeRKvZFspA5fcBrxhgqf4ZP-zq1vr8zNZ3viNOXhwhM,1347
|
104
104
|
novel_downloader/utils/text_utils/diff_display.py,sha256=cLjpeAOtpLOVMHnjgq2yv91fHvH0LvL1lMB80v3bPjQ,2552
|
105
105
|
novel_downloader/utils/text_utils/font_mapping.py,sha256=lai3lZSaxvSL1BZWgD6JLWdI56aWlZDeZ3zUYQS8pkc,916
|
106
106
|
novel_downloader/utils/text_utils/text_cleaning.py,sha256=1yuaDeUBHqBRkkWhw43rV1i8TL5rx1yK0I78FyEwcTw,1656
|
107
107
|
novel_downloader/utils/time_utils/__init__.py,sha256=bRpO14eorfH5C5xfqvW7QwSe3fQHhpr34j4O3qY5cGc,580
|
108
|
-
novel_downloader/utils/time_utils/datetime_utils.py,sha256=
|
109
|
-
novel_downloader/utils/time_utils/sleep_utils.py,sha256=
|
110
|
-
novel_downloader-1.2.
|
111
|
-
novel_downloader-1.2.
|
112
|
-
novel_downloader-1.2.
|
113
|
-
novel_downloader-1.2.
|
114
|
-
novel_downloader-1.2.
|
115
|
-
novel_downloader-1.2.
|
108
|
+
novel_downloader/utils/time_utils/datetime_utils.py,sha256=BX6W2dWpqEDMpAXF0pm2bPT7xZsy_Q_TZAiwd3dsiiE,4883
|
109
|
+
novel_downloader/utils/time_utils/sleep_utils.py,sha256=xClrFcjn4DdOO5KskO5WkGKt6LKZx0Cb8SMH8mQrlT0,1864
|
110
|
+
novel_downloader-1.2.2.dist-info/licenses/LICENSE,sha256=XgmnH0mBf-qEiizoVAfJQAKzPB9y3rBa-ni7M0Aqv4A,1066
|
111
|
+
novel_downloader-1.2.2.dist-info/METADATA,sha256=IjqO-vr2DU20Tdz3JEHo5hSWI6-3qDuXsbFAW8Af68c,6291
|
112
|
+
novel_downloader-1.2.2.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
|
113
|
+
novel_downloader-1.2.2.dist-info/entry_points.txt,sha256=v23QrJrfrAcYpxUYslCVxubOVRRTaTw7vlG_tfMsFP8,65
|
114
|
+
novel_downloader-1.2.2.dist-info/top_level.txt,sha256=hP4jYWM2LTm1jxsW4hqEB8N0dsRvldO2QdhggJT917I,17
|
115
|
+
novel_downloader-1.2.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|