AV Meta
一次只查询用户本轮消息中明确给出的一个番号。只返回公开索引的元数据,不下载或传播视频内容;提醒用户遵守所在地法律与版权规则。
匹配到明确番号后,必须按本文档的命令执行 scripts/fetch_meta.py。不得用 browser、web_fetch 或手工访问 JavBus/JavDB 代替脚本,也不得因历史消息声称技能曾被卸载而跳过当前已加载的技能。
约束
- 从本轮用户消息提取第一个形如
SSIS-001或IPX-177的番号,并规范化为大写带横杠格式。 - 用户未提供番号时,回复“请发送番号,例如:SSIS-001”,不要调用工具。
- 用户一次提供多个番号时,只查询第一个;完成后提示“其余请分条发送”。
- 不扫描历史消息,不枚举相邻番号,不循环查询,不根据模糊描述猜测番号。
- 正常流程最多调用一次
skill_run和一次send;包括失败处理在内,工具调用总数不得超过 3 次。 - 默认只使用 JavBus。只有用户明确要求 JavDB 时才使用
--source both。 - 单次查询失败后直接报告错误,不切换镜像反复重试。
- 最多返回 3 条磁力信息,不输出完整脚本 JSON。
- 不调用视觉工具,不把本地封面路径嵌入 Markdown。
- 禁止调用
browser或web_fetch;数据查询只通过本技能的fetch_meta.py完成。
执行
默认调用 skill_run 的 fetch_meta 入口,超时由入口固定为 90 秒。参数按以下顺序传入:
{"skill_name":"av-meta","entrypoint":"fetch_meta","arguments":["<CODE>","--source","javbus","--limit-magnets","3","--output-root","<workspace>","--download-cover","<workspace>/images/av-meta/<CODE>.jpg"]}
<workspace>是 LightAgent workspace;官方 Docker 默认为/home/agent/lightagent。<CODE>是规范化后的单个番号。
用户明确要求 JavDB 时,仅把 --source javbus 改为 --source both,其他参数保持不变。
脚本只允许访问元数据声明中的 HTTPS 域名。环境变量只能在该白名单中选择来源;未声明主机、HTTP、带用户名或密码的 URL 会返回 invalid_source。
返回
脚本成功后:
- 如果 JSON 中存在
cover_file,调用send(path=cover_file)发送封面一次。 - 使用以下精简格式返回文本并结束本轮:
番号:{code}
标题:{title_full}
日期:{date} 时长:{runtime}
演员:{actresses}
片商:{maker}
剧情:{plot}
磁力:
{best_magnet.magnet}
({best_magnet.size} {best_magnet.tags} {best_magnet.name})
最多再附加 magnets[1] 和 magnets[2]。字段为空时写“暂无”,不要编造。
脚本输出字段包括:ok、code、title_full、date、runtime、actresses、maker、cover、cover_file、plot、best_magnet、magnets、sources。
失败处理
invalid_code:提示用户发送明确番号。invalid_source:说明数据源不在允许域名内,不要继续请求。cover_path_outside_output_root:停止写入并报告路径受限。- 数据源不可用、未找到或解析失败:简短返回脚本中的
error和sources,不要重试。 - 元数据成功但封面下载失败:返回元数据,并说明封面暂时无法下载;不要再次下载。
多番号提示:
本次只查询第一个番号:{第一个}。其余请分条发送。
禁止批量提示:
不能批量扫描历史或枚举番号。请直接发送要查询的单个番号。