Skip to content

[Bug] 插件 [download_cover],运行遇到未捕获异常 #523

Description

@JerryXu-code

请确认注意事项

  • 你已经在GitHub Issues和Discussions里搜索过类似的问题,并且没找到想要的答案。
  • 你使用的是最新的jmcomic版本
  • 非GitHub Actions类问题(此类问题请专门到置顶的Issue反馈)

发生Bug时,你的使用方式?

Python代码

你是否在禁漫官方网页或APP,验证过相应的功能是正常的?

我要反馈的bug无需验证/不方便验证

代码/option配置

Python 3.14.2 (tags/v3.14.2:df79316, Dec 5 2025, 17:18:21) [MSC v.1944 64 bit (AMD64)] on win32

Code snippet:

from jmcomic import *

option = create_option_by_file('option.yml')
try:
    download_photo(350234,option)
except JmcomicException as e:
    print(e)

option.yml snippet:

plugins:
    before_photo:
        - plugin: download_cover
          kwargs:
            dir_rule:
                base_dir: [base_dir]
                rule: '{Aid}/{Aid}_cover.jpg'

描述bug现象(你预期的结果,与实际结果的差别)

预期结果: 封面应存储为[base_dir]/{Aid}/{Aid}_cover.jpg
实际: 文件未正常创建

其他可提供的信息

[2026-03-28 23:25:23] [MainThread]:【plugin.invoke】调用插件: [download_cover]
[2026-03-28 23:25:23] [MainThread]:【dir_rule】路径规则"{Aid}"的解析出错: 'Aid', album=None, photo=JmPhotoDetail(photo-350234: "董卓 上+下")
[2026-03-28 23:25:23] [MainThread]:【plugin.error】插件 [download_cover],运行遇到未捕获异常,异常信息: ['Aid']
[2026-03-28 23:25:23] [MainThread]:【plugin.exception】'Aid'
Traceback (most recent call last):
  File "C:\Users\[username]\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\jmcomic\jm_option.py", line 541, in call_all_plugin
    self.invoke_plugin(pclass, kwargs, extra, pinfo)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\[username]\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\jmcomic\jm_option.py", line 584, in invoke_plugin
    self.handle_plugin_unexpected_error(e, pinfo, kwargs, plugin, pclass)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\[username]\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\jmcomic\jm_option.py", line 614, in handle_plugin_unexpected_error
    raise e
  File "C:\Users\[username]\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\jmcomic\jm_option.py", line 572, in invoke_plugin
    plugin.invoke(**kwargs)
    ~~~~~~~~~~~~~^^^^^^^^^^
  File "C:\Users\[username]\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\jmcomic\jm_plugin.py", line 1332, in invoke
    save_path = self.decide_filepath(
        album, photo,
        None, None, None,
        dir_rule
    )
  File "C:\Users\[username]\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\jmcomic\jm_plugin.py", line 128, in decide_filepath
    filepath = dir_rule.apply_rule_to_path(album, photo)
  File "C:\Users\[username]\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\jmcomic\jm_option.py", line 95, in apply_rule_to_path
    raise e
  File "C:\Users\[username]\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\jmcomic\jm_option.py", line 91, in apply_rule_to_path
    path = parser(album, photo, rule)
  File "C:\Users\[username]\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\jmcomic\jm_option.py", line 137, in parse_f_string_rule
    return rule.format(**properties)
           ~~~~~~~~~~~^^^^^^^^^^^^^^
KeyError: 'Aid'

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions