1414from src .utils .plugin_test import PluginTest , strip_ansi
1515
1616from .constants import PLUGIN_CONFIGS_URL
17- from .models import Metadata , PluginData
17+ from .models import Metadata , PluginData , ValidationResult
1818
1919
2020def get_configs () -> dict [str , list [str ]]:
@@ -50,7 +50,7 @@ def extract_version(path: Path) -> str | None:
5050
5151async def validate_metadata (
5252 result : bool , plugin : PluginData , metadata : Metadata | None
53- ):
53+ ) -> ValidationResult :
5454 """验证插件元数据"""
5555 project_link = plugin ["project_link" ]
5656 module_name = plugin ["module_name" ]
@@ -87,7 +87,7 @@ async def validate_metadata(
8787 return {
8888 "valid" : True ,
8989 "raw" : raw_data ,
90- "data" : publish_info .dict (exclude = {"plugin_test_result" }),
90+ "data" : publish_info .dict (exclude = {"plugin_test_result" }), # type: ignore
9191 "message" : "通过" ,
9292 }
9393 except ValidationError as e :
@@ -119,6 +119,11 @@ async def validate_plugin(key: str, plugin: PluginData):
119119 metadata_result = await validate_metadata (result , plugin , metadata )
120120 version = extract_version (test .path )
121121
122+ current_plugin = metadata_result ["data" ]
123+ # 插件验证过程中无法获取是否是官方插件,因此需要从原始数据中获取
124+ if current_plugin :
125+ current_plugin ["is_official" ] = plugin ["is_official" ]
126+
122127 # 测试完成后删除测试文件夹
123128 shutil .rmtree (test .path )
124129
@@ -130,7 +135,7 @@ async def validate_plugin(key: str, plugin: PluginData):
130135 "validation_message" : metadata_result ["message" ],
131136 "validation_raw_data" : metadata_result ["raw" ],
132137 "previous" : plugin ,
133- "current" : metadata_result [ "data" ] ,
138+ "current" : current_plugin ,
134139 "time" : datetime .now (ZoneInfo ("Asia/Shanghai" )).strftime ("%Y-%m-%d %H:%M:%S" ),
135140 "version" : version ,
136141 }
0 commit comments