From f0201f39e5b6dc7c91b51ce0b7a697566b22fc3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B7=E4=B8=AA=E5=90=8D=E5=AD=97=E5=A5=BD=E9=9A=BE?= =?UTF-8?q?=E7=9A=84=E5=96=B5?= <25520958+MisakaAldrich@users.noreply.github.com> Date: Sat, 26 Jul 2025 19:41:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A0=A1=E9=AA=8C=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E6=98=A0=E5=B0=84=E8=A1=A8=E6=B7=BB=E5=8A=A0=E4=BD=9C=E8=80=85?= =?UTF-8?q?=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/author_config.json | 3 +- build/pathing_authors.py | 245 ++++++++++-------- build/validate.py | 162 +++++++++++- .../01-海露花-枫丹-海露港-10个.json | 7 +- .../02-海露花-枫丹-看书-6个.json | 7 +- .../03-海露花-枫丹-龙头-4个.json | 7 +- .../04-海露花-枫丹-龙骨-4个.json | 7 +- .../05-海露花-枫丹-枫丹廷-4个.json | 7 +- .../06-海露花-枫丹-沫洁站-6个.json | 7 +- .../07-海露花-枫丹-实验室-2个.json | 7 +- .../08-海露花-枫丹-沫洁再站-6个.json | 7 +- .../09-海露花-枫丹-幽灵-5个.json | 7 +- .../10-海露花-枫丹-幽灵右-10个.json | 7 +- .../枫丹/苍晶螺/01-苍晶螺-安眠处1-8个.json | 2 +- .../枫丹/苍晶螺/02-苍晶螺-安眠处2-4个.json | 2 +- .../枫丹/苍晶螺/03-苍晶螺-塔拉塔海谷-3个.json | 2 +- .../璃月/清心/00-清心-爬轻策山-4朵.json | 3 +- .../璃月/清心/02-清心-华光林山间飞行-11朵.json | 3 +- .../07-树王圣体菇-降诸魔山地下-6个.json | 2 +- .../08-树王圣体菇-荼河之座地下-5个.json | 2 +- .../09-树王圣体菇-往昔的桓那兰那上方地下-4个.json | 2 +- .../无草神@Tool_tingsu/10-树王圣体菇-觉王之殿-3个.json | 2 +- .../11-树王圣体菇-无郁稠林地下-4个.json | 2 +- .../12-树王圣体菇-禅那园地下1-4个.json | 2 +- .../13-树王圣体菇-禅那园地下2-5个.json | 2 +- .../A01-紫晶块-稻妻-鸣神岛-绀田村-东-2个.json | 2 +- .../D03-紫晶块-稻妻-海衹岛-望泷村01(有战斗,小怪)-4个.json | 2 +- .../E02-紫晶块-稻妻-清籁岛-天云峠下-12个.json | 2 +- .../G12-紫晶块-渊下宫-常夜灵庙上-4个.json | 2 +- .../04-冷鲜肉-龙脊雪山-大雪猪王(触发)-4x2-8个.json | 2 +- 30 files changed, 379 insertions(+), 137 deletions(-) diff --git a/build/author_config.json b/build/author_config.json index 17d542d1..89a321cd 100644 --- a/build/author_config.json +++ b/build/author_config.json @@ -1,6 +1,7 @@ { "rename": { - "起个名字好难": "起个名字好难的喵" + "起个名字好难": "起个名字好难的喵", + "this-Fish": "蜜柑魚" }, "links": { "秋云": "https://github.com/physligl", diff --git a/build/pathing_authors.py b/build/pathing_authors.py index affe61e4..bae19277 100644 --- a/build/pathing_authors.py +++ b/build/pathing_authors.py @@ -1,136 +1,169 @@ import os -import sys import json -# 获取配置文件路径(和脚本在同一目录) -script_dir = os.path.dirname(os.path.abspath(__file__)) -config_path = os.path.join(script_dir, "author_config.json") +def process_json_authors(input_path, config_path="author_config.json", verbose=True): + """ + 处理 JSON 文件中的作者信息(支持 author → authors 结构化迁移、作者名重命名和链接统一) + + 参数: + input_path (str): 要处理的文件路径或目录路径 + config_path (str): 配置文件路径(默认在脚本同级) + verbose (bool): 是否打印详细日志信息 + + 返回: + dict: 包含处理总数和修改数量的统计信息 + """ + result = { + "total_files": 0, + "modified_files": 0, + "errors": [] + } -# 获取要处理的文件夹路径 -if len(sys.argv) < 2: - print("❌ 用法:python pathing_authors.py ") - sys.exit(1) + if not os.path.exists(input_path): + raise FileNotFoundError(f"路径不存在:{input_path}") + if not os.path.exists(config_path): + raise FileNotFoundError(f"配置文件不存在:{config_path}") -folder_path = sys.argv[1] + # 加载配置 + try: + with open(config_path, "r", encoding="utf-8") as f: + config = json.load(f) + except Exception as e: + raise RuntimeError(f"配置文件加载失败:{e}") -if not os.path.exists(folder_path): - print(f"❌ JSON目录不存在:{folder_path}") - sys.exit(1) -if not os.path.exists(config_path): - print(f"❌ 配置文件不存在:{config_path}") - sys.exit(1) + author_rename = config.get("rename", {}) + author_links = config.get("links", {}) -# 加载配置 -try: - with open(config_path, "r", encoding="utf-8") as f: - config = json.load(f) -except Exception as e: - print(f"❌ 配置文件加载失败:{e}") - sys.exit(1) + # 构建待处理文件列表 + file_list = [] + if os.path.isfile(input_path) and input_path.endswith(".json"): + file_list.append(input_path) + elif os.path.isdir(input_path): + for root, dirs, files in os.walk(input_path): + for filename in files: + if filename.endswith(".json"): + file_list.append(os.path.join(root, filename)) + else: + raise ValueError("输入路径必须是 .json 文件或目录") -author_rename = config.get("rename", {}) -author_links = config.get("links", {}) - -print(f"🚀 启动,处理目录:{folder_path}") -count_total = 0 -count_modified = 0 - -for root, dirs, files in os.walk(folder_path): - for filename in files: - if filename.endswith(".json"): - count_total += 1 - file_path = os.path.join(root, filename) + for file_path in file_list: + result["total_files"] += 1 + if verbose: print(f"\n🔍 处理文件:{file_path}") - try: - with open(file_path, "r", encoding="utf-8") as f: - data = json.load(f) - except Exception as e: - print(f"❌ 解析失败:{e}") - continue + try: + with open(file_path, "r", encoding="utf-8") as f: + data = json.load(f) + except Exception as e: + msg = f"❌ 解析失败:{e}" + if verbose: + print(msg) + result["errors"].append((file_path, str(e))) + continue - info = data.get("info") - if not isinstance(info, dict): + info = data.get("info") + if not isinstance(info, dict): + if verbose: print("⚠️ 缺少 info 字段") - continue + continue - modified = False - author_field = info.get("author") + modified = False + author_field = info.get("author") - if author_field is not None: - # 旧格式字符串处理 - if isinstance(author_field, str): - names = [name.strip() for name in author_field.split("&")] - new_authors = [] - for name in names: - new_name = author_rename.get(name, name) - author_obj = {"name": new_name} - if new_name in author_links: - author_obj["links"] = author_links[new_name] - new_authors.append(author_obj) - data["info"]["authors"] = new_authors - modified = True + if author_field is not None: + if isinstance(author_field, str): + names = [name.strip() for name in author_field.split("&")] + new_authors = [] + for name in names: + new_name = author_rename.get(name, name) + author_obj = {"name": new_name} + if new_name in author_links: + author_obj["links"] = author_links[new_name] + new_authors.append(author_obj) + data["info"]["authors"] = new_authors + modified = True + if verbose: print("✅ 替换为结构化 authors") - elif isinstance(author_field, list): - for author_obj in author_field: - if not isinstance(author_obj, dict): - continue - name = author_obj.get("name") - if not name: - continue - new_name = author_rename.get(name, name) - if name != new_name: - author_obj["name"] = new_name - modified = True + elif isinstance(author_field, list): + for author_obj in author_field: + if not isinstance(author_obj, dict): + continue + name = author_obj.get("name") + if not name: + continue + new_name = author_rename.get(name, name) + if name != new_name: + author_obj["name"] = new_name + modified = True + if verbose: print(f"📝 重命名:{name} → {new_name}") - existing_link = author_obj.pop("link", None) or author_obj.pop("url", None) or author_obj.get("links") - if new_name in author_links: - if author_obj.get("links") != author_links[new_name]: - author_obj["links"] = author_links[new_name] - modified = True - print(f"🔧 更新链接:{new_name} → {author_links[new_name]}") - elif "links" not in author_obj and existing_link: - author_obj["links"] = existing_link + existing_link = author_obj.pop("link", None) or author_obj.pop("url", None) or author_obj.get("links") + if new_name in author_links: + if author_obj.get("links") != author_links[new_name]: + author_obj["links"] = author_links[new_name] modified = True + if verbose: + print(f"🔧 更新链接:{new_name} → {author_links[new_name]}") + elif "links" not in author_obj and existing_link: + author_obj["links"] = existing_link + modified = True + if verbose: print(f"🔄 标准化已有链接字段为 links → {existing_link}") - else: - # 🔧 处理已有结构化 authors 字段,补充 links - authors_field = info.get("authors") - if isinstance(authors_field, list): - for author_obj in authors_field: - if not isinstance(author_obj, dict): - continue - name = author_obj.get("name") - if not name: - continue - new_name = author_rename.get(name, name) - if name != new_name: - author_obj["name"] = new_name - modified = True + else: + authors_field = info.get("authors") + if isinstance(authors_field, list): + for author_obj in authors_field: + if not isinstance(author_obj, dict): + continue + name = author_obj.get("name") + if not name: + continue + new_name = author_rename.get(name, name) + if name != new_name: + author_obj["name"] = new_name + modified = True + if verbose: print(f"📝 重命名(authors):{name} → {new_name}") - existing_link = author_obj.pop("link", None) or author_obj.pop("url", None) or author_obj.get("links") - if new_name in author_links: - if author_obj.get("links") != author_links[new_name]: - author_obj["links"] = author_links[new_name] - modified = True - print(f"🔧 更新链接(authors):{new_name} → {author_links[new_name]}") - elif "links" not in author_obj and existing_link: - author_obj["links"] = existing_link + existing_link = author_obj.pop("link", None) or author_obj.pop("url", None) or author_obj.get("links") + if new_name in author_links: + if author_obj.get("links") != author_links[new_name]: + author_obj["links"] = author_links[new_name] modified = True + if verbose: + print(f"🔧 更新链接(authors):{new_name} → {author_links[new_name]}") + elif "links" not in author_obj and existing_link: + author_obj["links"] = existing_link + modified = True + if verbose: print(f"🔄 标准化已有链接字段为 links → {existing_link}") - else: + else: + if verbose: print("⚠️ 缺少 author 字段,且 authors 非标准格式") - if modified: - with open(file_path, "w", encoding="utf-8") as f: - json.dump(data, f, ensure_ascii=False, indent=2) - count_modified += 1 + if modified: + with open(file_path, "w", encoding="utf-8") as f: + json.dump(data, f, ensure_ascii=False, indent=2) + result["modified_files"] += 1 + if verbose: print("✅ 写入完成") - else: + else: + if verbose: print("⏭️ 无需修改") -print(f"\n🎉 处理完成:共 {count_total} 个 JSON 文件,修改了 {count_modified} 个") + if verbose: + print(f"\n🎉 处理完成:共 {result['total_files']} 个 JSON 文件,修改了 {result['modified_files']} 个") + + return result + + +# 如果作为独立脚本运行 +if __name__ == "__main__": + import sys + if len(sys.argv) < 2: + print("❌ 用法:python pathing_authors.py ") + else: + process_json_authors(sys.argv[1]) diff --git a/build/validate.py b/build/validate.py index da82c090..2068da49 100755 --- a/build/validate.py +++ b/build/validate.py @@ -415,7 +415,7 @@ def check_position_ids(positions): return validation_issues, corrections -# ==================== 验证修复编码 ==================== +# ==================== 验证修复文件编码 ==================== def detect_encoding(file_path, read_size=2048): try: @@ -477,6 +477,164 @@ def scan_and_convert(path, target_extensions=None): else: print(f"❌ Path not found: {path}") +# ==================== 验证修复作者信息 ==================== + +def process_json_authors(input_path, config_path="author_config.json", verbose=False): + """ + 处理 JSON 文件中的作者信息(支持 author → authors 结构化迁移、作者名重命名和链接统一) + + 参数: + input_path (str): 要处理的文件路径或目录路径 + config_path (str): 配置文件路径(默认在脚本同级) + verbose (bool): 是否打印详细日志信息 + + 返回: + dict: 包含处理总数和修改数量的统计信息 + """ + result = { + "total_files": 0, + "modified_files": 0, + "errors": [] + } + + if not os.path.exists(input_path): + raise FileNotFoundError(f"路径不存在:{input_path}") + if not os.path.exists(config_path): + raise FileNotFoundError(f"配置文件不存在:{config_path}") + + # 加载配置 + try: + with open(config_path, "r", encoding="utf-8") as f: + config = json.load(f) + except Exception as e: + raise RuntimeError(f"配置文件加载失败:{e}") + + author_rename = config.get("rename", {}) + author_links = config.get("links", {}) + + # 构建待处理文件列表 + file_list = [] + if os.path.isfile(input_path) and input_path.endswith(".json"): + file_list.append(input_path) + elif os.path.isdir(input_path): + for root, dirs, files in os.walk(input_path): + for filename in files: + if filename.endswith(".json"): + file_list.append(os.path.join(root, filename)) + else: + raise ValueError("输入路径必须是 .json 文件或目录") + + for file_path in file_list: + result["total_files"] += 1 + if verbose: + print(f"\n🔍 处理文件:{file_path}") + + try: + with open(file_path, "r", encoding="utf-8") as f: + data = json.load(f) + except Exception as e: + msg = f"❌ 解析失败:{e}" + if verbose: + print(msg) + result["errors"].append((file_path, str(e))) + continue + + info = data.get("info") + if not isinstance(info, dict): + if verbose: + print("⚠️ 缺少 info 字段") + continue + + modified = False + author_field = info.get("author") + + if author_field is not None: + if isinstance(author_field, str): + names = [name.strip() for name in author_field.split("&")] + new_authors = [] + for name in names: + new_name = author_rename.get(name, name) + author_obj = {"name": new_name} + if new_name in author_links: + author_obj["links"] = author_links[new_name] + new_authors.append(author_obj) + data["info"]["authors"] = new_authors + modified = True + if verbose: + print("✅ 替换为结构化 authors") + + elif isinstance(author_field, list): + for author_obj in author_field: + if not isinstance(author_obj, dict): + continue + name = author_obj.get("name") + if not name: + continue + new_name = author_rename.get(name, name) + if name != new_name: + author_obj["name"] = new_name + modified = True + if verbose: + print(f"📝 重命名:{name} → {new_name}") + + existing_link = author_obj.pop("link", None) or author_obj.pop("url", None) or author_obj.get("links") + if new_name in author_links: + if author_obj.get("links") != author_links[new_name]: + author_obj["links"] = author_links[new_name] + modified = True + if verbose: + print(f"🔧 更新链接:{new_name} → {author_links[new_name]}") + elif "links" not in author_obj and existing_link: + author_obj["links"] = existing_link + modified = True + if verbose: + print(f"🔄 标准化已有链接字段为 links → {existing_link}") + + else: + authors_field = info.get("authors") + if isinstance(authors_field, list): + for author_obj in authors_field: + if not isinstance(author_obj, dict): + continue + name = author_obj.get("name") + if not name: + continue + new_name = author_rename.get(name, name) + if name != new_name: + author_obj["name"] = new_name + modified = True + if verbose: + print(f"📝 重命名(authors):{name} → {new_name}") + + existing_link = author_obj.pop("link", None) or author_obj.pop("url", None) or author_obj.get("links") + if new_name in author_links: + if author_obj.get("links") != author_links[new_name]: + author_obj["links"] = author_links[new_name] + modified = True + if verbose: + print(f"🔧 更新链接(authors):{new_name} → {author_links[new_name]}") + elif "links" not in author_obj and existing_link: + author_obj["links"] = existing_link + modified = True + if verbose: + print(f"🔄 标准化已有链接字段为 links → {existing_link}") + else: + # if verbose: + print("⚠️ 缺少 author 字段,且 authors 非标准格式") + + if modified: + with open(file_path, "w", encoding="utf-8") as f: + json.dump(data, f, ensure_ascii=False, indent=2) + result["modified_files"] += 1 + if verbose: + print("✅ 写入完成") + else: + if verbose: + print("⏭️ 无需修改") + + if verbose: + print(f"\n🎉 处理完成:共 {result['total_files']} 个 JSON 文件,修改了 {result['modified_files']} 个") + # ==================== 主验证逻辑 ==================== def initialize_data(data, file_path): @@ -678,6 +836,7 @@ def main(): if os.path.isfile(path) and path.endswith('.json'): scan_and_convert(path) + process_json_authors(path) # print(f"\n🔍 校验文件: {path}") notices = validate_file(path, auto_fix) if notices: @@ -694,6 +853,7 @@ def main(): file_path = os.path.join(root, file) print(f"\n🔍 校验文件: {file_path}") scan_and_convert(file_path) + process_json_authors(file_path) notices = validate_file(file_path, auto_fix) if notices: all_notices.extend([f"{file_path}: {n}" for n in notices]) diff --git a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/01-海露花-枫丹-海露港-10个.json b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/01-海露花-枫丹-海露港-10个.json index acc9075d..2c48207b 100644 --- a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/01-海露花-枫丹-海露港-10个.json +++ b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/01-海露花-枫丹-海露港-10个.json @@ -10,7 +10,12 @@ "tags": [ "芭芭拉" ], - "last_modified_time": 1750469776906 + "last_modified_time": 1750469776906, + "authors": [ + { + "name": "寥寥轻舟" + } + ] }, "positions": [ { diff --git a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/02-海露花-枫丹-看书-6个.json b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/02-海露花-枫丹-看书-6个.json index c9f2b1a6..46ffcdfd 100644 --- a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/02-海露花-枫丹-看书-6个.json +++ b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/02-海露花-枫丹-看书-6个.json @@ -10,7 +10,12 @@ "tags": [ "芭芭拉" ], - "last_modified_time": 1750488231659 + "last_modified_time": 1750488231659, + "authors": [ + { + "name": "寥寥轻舟" + } + ] }, "positions": [ { diff --git a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/03-海露花-枫丹-龙头-4个.json b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/03-海露花-枫丹-龙头-4个.json index c82cc519..71fcbb1b 100644 --- a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/03-海露花-枫丹-龙头-4个.json +++ b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/03-海露花-枫丹-龙头-4个.json @@ -10,7 +10,12 @@ "tags": [ "芭芭拉" ], - "last_modified_time": 1750489051636 + "last_modified_time": 1750489051636, + "authors": [ + { + "name": "寥寥轻舟" + } + ] }, "positions": [ { diff --git a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/04-海露花-枫丹-龙骨-4个.json b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/04-海露花-枫丹-龙骨-4个.json index 11f79036..5259eeae 100644 --- a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/04-海露花-枫丹-龙骨-4个.json +++ b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/04-海露花-枫丹-龙骨-4个.json @@ -10,7 +10,12 @@ "tags": [ "芭芭拉" ], - "last_modified_time": 1750493202651 + "last_modified_time": 1750493202651, + "authors": [ + { + "name": "寥寥轻舟" + } + ] }, "positions": [ { diff --git a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/05-海露花-枫丹-枫丹廷-4个.json b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/05-海露花-枫丹-枫丹廷-4个.json index c9c9d3e5..600594ff 100644 --- a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/05-海露花-枫丹-枫丹廷-4个.json +++ b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/05-海露花-枫丹-枫丹廷-4个.json @@ -10,7 +10,12 @@ "tags": [ "芭芭拉" ], - "last_modified_time": 1750493402601 + "last_modified_time": 1750493402601, + "authors": [ + { + "name": "寥寥轻舟" + } + ] }, "positions": [ { diff --git a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/06-海露花-枫丹-沫洁站-6个.json b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/06-海露花-枫丹-沫洁站-6个.json index 3f582c3e..f562d8fa 100644 --- a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/06-海露花-枫丹-沫洁站-6个.json +++ b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/06-海露花-枫丹-沫洁站-6个.json @@ -10,7 +10,12 @@ "tags": [ "芭芭拉" ], - "last_modified_time": 1750490619726 + "last_modified_time": 1750490619726, + "authors": [ + { + "name": "寥寥轻舟" + } + ] }, "positions": [ { diff --git a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/07-海露花-枫丹-实验室-2个.json b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/07-海露花-枫丹-实验室-2个.json index 7b4ce4b1..2de109d7 100644 --- a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/07-海露花-枫丹-实验室-2个.json +++ b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/07-海露花-枫丹-实验室-2个.json @@ -10,7 +10,12 @@ "tags": [ "芭芭拉" ], - "last_modified_time": 1750490831463 + "last_modified_time": 1750490831463, + "authors": [ + { + "name": "寥寥轻舟" + } + ] }, "positions": [ { diff --git a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/08-海露花-枫丹-沫洁再站-6个.json b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/08-海露花-枫丹-沫洁再站-6个.json index b509e12c..ae4ca806 100644 --- a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/08-海露花-枫丹-沫洁再站-6个.json +++ b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/08-海露花-枫丹-沫洁再站-6个.json @@ -10,7 +10,12 @@ "tags": [ "芭芭拉" ], - "last_modified_time": 1750493845402 + "last_modified_time": 1750493845402, + "authors": [ + { + "name": "寥寥轻舟" + } + ] }, "positions": [ { diff --git a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/09-海露花-枫丹-幽灵-5个.json b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/09-海露花-枫丹-幽灵-5个.json index 5a816d49..60b47064 100644 --- a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/09-海露花-枫丹-幽灵-5个.json +++ b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/09-海露花-枫丹-幽灵-5个.json @@ -10,7 +10,12 @@ "tags": [ "芭芭拉" ], - "last_modified_time": 1750491808549 + "last_modified_time": 1750491808549, + "authors": [ + { + "name": "寥寥轻舟" + } + ] }, "positions": [ { diff --git a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/10-海露花-枫丹-幽灵右-10个.json b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/10-海露花-枫丹-幽灵右-10个.json index 5ad5ac51..fda6bac3 100644 --- a/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/10-海露花-枫丹-幽灵右-10个.json +++ b/repo/pathing/地方特产/枫丹/海露花/芭芭拉效率路线@寥寥轻舟/10-海露花-枫丹-幽灵右-10个.json @@ -10,7 +10,12 @@ "tags": [ "芭芭拉" ], - "last_modified_time": 1750492515991 + "last_modified_time": 1750492515991, + "authors": [ + { + "name": "寥寥轻舟" + } + ] }, "positions": [ { diff --git a/repo/pathing/地方特产/枫丹/苍晶螺/01-苍晶螺-安眠处1-8个.json b/repo/pathing/地方特产/枫丹/苍晶螺/01-苍晶螺-安眠处1-8个.json index d8c6a9e3..a8e19f99 100644 --- a/repo/pathing/地方特产/枫丹/苍晶螺/01-苍晶螺-安眠处1-8个.json +++ b/repo/pathing/地方特产/枫丹/苍晶螺/01-苍晶螺-安眠处1-8个.json @@ -5,7 +5,7 @@ "authors": [ { "name": "Tool_tingsu", - "links": "" + "links": "https://github.com/Tooltingsu" } ], "version": "1.0", diff --git a/repo/pathing/地方特产/枫丹/苍晶螺/02-苍晶螺-安眠处2-4个.json b/repo/pathing/地方特产/枫丹/苍晶螺/02-苍晶螺-安眠处2-4个.json index 7b4edcc5..b34ec53d 100644 --- a/repo/pathing/地方特产/枫丹/苍晶螺/02-苍晶螺-安眠处2-4个.json +++ b/repo/pathing/地方特产/枫丹/苍晶螺/02-苍晶螺-安眠处2-4个.json @@ -5,7 +5,7 @@ "authors": [ { "name": "Tool_tingsu", - "links": "" + "links": "https://github.com/Tooltingsu" } ], "version": "1.0", diff --git a/repo/pathing/地方特产/枫丹/苍晶螺/03-苍晶螺-塔拉塔海谷-3个.json b/repo/pathing/地方特产/枫丹/苍晶螺/03-苍晶螺-塔拉塔海谷-3个.json index ad7bb476..688a49de 100644 --- a/repo/pathing/地方特产/枫丹/苍晶螺/03-苍晶螺-塔拉塔海谷-3个.json +++ b/repo/pathing/地方特产/枫丹/苍晶螺/03-苍晶螺-塔拉塔海谷-3个.json @@ -5,7 +5,7 @@ "authors": [ { "name": "Tool_tingsu", - "links": "" + "links": "https://github.com/Tooltingsu" } ], "version": "1.0", diff --git a/repo/pathing/地方特产/璃月/清心/00-清心-爬轻策山-4朵.json b/repo/pathing/地方特产/璃月/清心/00-清心-爬轻策山-4朵.json index 609d5d72..faee9d11 100644 --- a/repo/pathing/地方特产/璃月/清心/00-清心-爬轻策山-4朵.json +++ b/repo/pathing/地方特产/璃月/清心/00-清心-爬轻策山-4朵.json @@ -12,8 +12,7 @@ "enable_monster_loot_split": false, "authors": [ { - "name": "未知作者", - "links": "https://github.com/babalae/bettergi-scripts-list" + "name": "白白喵" } ] }, diff --git a/repo/pathing/地方特产/璃月/清心/02-清心-华光林山间飞行-11朵.json b/repo/pathing/地方特产/璃月/清心/02-清心-华光林山间飞行-11朵.json index 452c3eac..de436804 100644 --- a/repo/pathing/地方特产/璃月/清心/02-清心-华光林山间飞行-11朵.json +++ b/repo/pathing/地方特产/璃月/清心/02-清心-华光林山间飞行-11朵.json @@ -12,8 +12,7 @@ "enable_monster_loot_split": false, "authors": [ { - "name": "未知作者", - "links": "https://github.com/babalae/bettergi-scripts-list" + "name": "白白喵" } ] }, diff --git a/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/07-树王圣体菇-降诸魔山地下-6个.json b/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/07-树王圣体菇-降诸魔山地下-6个.json index d51e704c..1c953cfc 100644 --- a/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/07-树王圣体菇-降诸魔山地下-6个.json +++ b/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/07-树王圣体菇-降诸魔山地下-6个.json @@ -5,7 +5,7 @@ "authors": [ { "name": "Tool_tingsu", - "links": "" + "links": "https://github.com/Tooltingsu" } ], "version": "1.0", diff --git a/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/08-树王圣体菇-荼河之座地下-5个.json b/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/08-树王圣体菇-荼河之座地下-5个.json index bc087c67..aed3fd81 100644 --- a/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/08-树王圣体菇-荼河之座地下-5个.json +++ b/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/08-树王圣体菇-荼河之座地下-5个.json @@ -5,7 +5,7 @@ "authors": [ { "name": "Tool_tingsu", - "links": "" + "links": "https://github.com/Tooltingsu" } ], "version": "1.0", diff --git a/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/09-树王圣体菇-往昔的桓那兰那上方地下-4个.json b/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/09-树王圣体菇-往昔的桓那兰那上方地下-4个.json index 98b7284c..17d9d24a 100644 --- a/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/09-树王圣体菇-往昔的桓那兰那上方地下-4个.json +++ b/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/09-树王圣体菇-往昔的桓那兰那上方地下-4个.json @@ -5,7 +5,7 @@ "authors": [ { "name": "Tool_tingsu", - "links": "" + "links": "https://github.com/Tooltingsu" } ], "version": "1.0", diff --git a/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/10-树王圣体菇-觉王之殿-3个.json b/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/10-树王圣体菇-觉王之殿-3个.json index 6016e703..99f16774 100644 --- a/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/10-树王圣体菇-觉王之殿-3个.json +++ b/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/10-树王圣体菇-觉王之殿-3个.json @@ -5,7 +5,7 @@ "authors": [ { "name": "Tool_tingsu", - "links": "" + "links": "https://github.com/Tooltingsu" } ], "version": "1.0", diff --git a/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/11-树王圣体菇-无郁稠林地下-4个.json b/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/11-树王圣体菇-无郁稠林地下-4个.json index 98205637..119585fd 100644 --- a/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/11-树王圣体菇-无郁稠林地下-4个.json +++ b/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/11-树王圣体菇-无郁稠林地下-4个.json @@ -5,7 +5,7 @@ "authors": [ { "name": "Tool_tingsu", - "links": "" + "links": "https://github.com/Tooltingsu" } ], "version": "1.0", diff --git a/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/12-树王圣体菇-禅那园地下1-4个.json b/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/12-树王圣体菇-禅那园地下1-4个.json index 028dcecd..812335d8 100644 --- a/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/12-树王圣体菇-禅那园地下1-4个.json +++ b/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/12-树王圣体菇-禅那园地下1-4个.json @@ -5,7 +5,7 @@ "authors": [ { "name": "Tool_tingsu", - "links": "" + "links": "https://github.com/Tooltingsu" } ], "version": "1.0", diff --git a/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/13-树王圣体菇-禅那园地下2-5个.json b/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/13-树王圣体菇-禅那园地下2-5个.json index cbeab676..5f50c7ff 100644 --- a/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/13-树王圣体菇-禅那园地下2-5个.json +++ b/repo/pathing/地方特产/须弥/树王圣体菇/无草神@Tool_tingsu/13-树王圣体菇-禅那园地下2-5个.json @@ -5,7 +5,7 @@ "authors": [ { "name": "Tool_tingsu", - "links": "" + "links": "https://github.com/Tooltingsu" } ], "version": "1.0", diff --git a/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/A01-紫晶块-稻妻-鸣神岛-绀田村-东-2个.json b/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/A01-紫晶块-稻妻-鸣神岛-绀田村-东-2个.json index eb51a942..7608eef1 100644 --- a/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/A01-紫晶块-稻妻-鸣神岛-绀田村-东-2个.json +++ b/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/A01-紫晶块-稻妻-鸣神岛-绀田村-东-2个.json @@ -4,7 +4,7 @@ "type": "collect", "authors": [ { - "name": "this-Fish", + "name": "蜜柑魚", "links": "https://github.com/this-Fish" } ], diff --git a/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/D03-紫晶块-稻妻-海衹岛-望泷村01(有战斗,小怪)-4个.json b/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/D03-紫晶块-稻妻-海衹岛-望泷村01(有战斗,小怪)-4个.json index a89bd2b6..376c1170 100644 --- a/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/D03-紫晶块-稻妻-海衹岛-望泷村01(有战斗,小怪)-4个.json +++ b/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/D03-紫晶块-稻妻-海衹岛-望泷村01(有战斗,小怪)-4个.json @@ -4,7 +4,7 @@ "type": "collect", "authors": [ { - "name": "this-Fish", + "name": "蜜柑魚", "links": "https://github.com/this-Fish" } ], diff --git a/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/E02-紫晶块-稻妻-清籁岛-天云峠下-12个.json b/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/E02-紫晶块-稻妻-清籁岛-天云峠下-12个.json index 7af22b16..c3c3bbf4 100644 --- a/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/E02-紫晶块-稻妻-清籁岛-天云峠下-12个.json +++ b/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/E02-紫晶块-稻妻-清籁岛-天云峠下-12个.json @@ -4,7 +4,7 @@ "type": "collect", "authors": [ { - "name": "this-Fish", + "name": "蜜柑魚", "links": "https://github.com/this-Fish" } ], diff --git a/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/G12-紫晶块-渊下宫-常夜灵庙上-4个.json b/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/G12-紫晶块-渊下宫-常夜灵庙上-4个.json index d6b44c1b..c9efb6f6 100644 --- a/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/G12-紫晶块-渊下宫-常夜灵庙上-4个.json +++ b/repo/pathing/矿物/紫晶块/紫晶块[大剑]@蜜柑魚/G12-紫晶块-渊下宫-常夜灵庙上-4个.json @@ -4,7 +4,7 @@ "type": "collect", "authors": [ { - "name": "this-Fish", + "name": "蜜柑魚", "links": "https://github.com/this-Fish" } ], diff --git a/repo/pathing/食材与炼金/冷鲜肉/冷鲜肉[迪希雅]@密柑魚/04-冷鲜肉-龙脊雪山-大雪猪王(触发)-4x2-8个.json b/repo/pathing/食材与炼金/冷鲜肉/冷鲜肉[迪希雅]@密柑魚/04-冷鲜肉-龙脊雪山-大雪猪王(触发)-4x2-8个.json index d7cb5f85..754d1f32 100644 --- a/repo/pathing/食材与炼金/冷鲜肉/冷鲜肉[迪希雅]@密柑魚/04-冷鲜肉-龙脊雪山-大雪猪王(触发)-4x2-8个.json +++ b/repo/pathing/食材与炼金/冷鲜肉/冷鲜肉[迪希雅]@密柑魚/04-冷鲜肉-龙脊雪山-大雪猪王(触发)-4x2-8个.json @@ -211,4 +211,4 @@ "type": "teleport" } ] -} +} \ No newline at end of file