1+ from jmcomic import *
2+
13# 下方填入你要下载的本子的id,一行一个。
24# 每行的首尾可以有空白字符
5+ # 你也可以填入本子网址,程序会识别出本子id
6+ # 例如:
7+ # [https://18comic.vip/album/452859/mana-ディシア-1-原神-中国語-無修正] -> [452859]
8+ #
39jm_albums = '''
4- 452859
5- https://18comic.vip/photo/452859/mana-ディシア-1-原神-中国語-無修正
6- JM452859
10+
711
812
913'''
1014
1115
1216def get_jm_album_ids ():
13- from common import str_to_set
14-
1517 aid_set = set ()
1618 for text in [
1719 jm_albums ,
@@ -23,51 +25,62 @@ def get_jm_album_ids():
2325
2426
2527def main ():
26- from jmcomic import download_album
2728 # 下载漫画
2829 download_album (get_jm_album_ids (), option = get_option ())
2930
3031
3132def get_option ():
32- from jmcomic import create_option , print_eye_catching
33-
3433 # 读取 option 配置文件
3534 option = create_option ('../assets/config/option_workflow_download.yml' )
35+
36+ # 支持工作流覆盖配置文件的配置
37+ cover_option_config (option )
38+
39+ # 覆盖client实现类,实现把请求错误的html下载到文件,方便GitHub Actions下载查看日志
3640 hook_debug (option )
3741
3842 # 启用 client 的缓存
3943 client = option .build_jm_client ()
4044 client .enable_cache ()
4145
46+ # 登录,如果有配置的话
47+ login_if_configured (client )
48+
49+ return option
50+
51+
52+ def cover_option_config (option : JmOption ):
53+ dir_rule = get_env ('DIR_RULE' )
54+ if dir_rule is not None :
55+ the_old = option .dir_rule
56+ the_new = DirRule (dir_rule , base_dir = the_old .base_dir )
57+ option .dir_rule = the_new
58+
59+
60+ def login_if_configured (client ):
4261 # 检查环境变量中是否有禁漫的用户名和密码,如果有则登录
4362 # 禁漫的大部分本子,下载是不需要登录的,少部分敏感题材需要登录
4463 # 如果你希望以登录状态下载本子,你需要自己配置一下GitHub Actions的 `secrets`
4564 # 配置的方式很简单,网页上点一点就可以了
4665 # 具体做法请去看官方教程:https://docs.github.com/en/actions/security-guides/encrypted-secrets
47-
4866 # 萌新注意!!!如果你想 `开源` 你的禁漫帐号,你也可以直接把账号密码写到下面的代码😅
49-
5067 username = get_env ('JM_USERNAME' )
5168 password = get_env ('JM_PASSWORD' )
52-
5369 if username is not None and password is not None :
5470 client .login (username , password , True )
5571 print_eye_catching (f'登录禁漫成功' )
5672
57- return option
58-
5973
74+ # noinspection PyUnusedLocal
6075def hook_debug (option ):
61- from jmcomic import JmHtmlClient , workspace , mkdir_if_not_exists , JmModuleConfig
62-
6376 jm_download_dir = get_env ('JM_DOWNLOAD_DIR' ) or workspace ()
6477 mkdir_if_not_exists (jm_download_dir )
6578
6679 class RaiseErrorAwareClient (JmHtmlClient ):
6780
6881 @classmethod
6982 def raise_request_error (cls , resp , msg = None ):
70- from common import write_text , fix_windir_name , format_ts
83+ from common import write_text , fix_windir_name
7184 write_text (
7285 f'{ jm_download_dir } /{ fix_windir_name (resp .url )} ' ,
7386 resp .text
0 commit comments