Compare commits

...

3 Commits

Author SHA1 Message Date
MisakaAldrich
77c23c1caa update repo.json
Some checks failed
Build repo.json / build (18.x) (push) Has been cancelled
Build repo.json / upload (push) Has been cancelled
2025-07-24 13:20:55 +00:00
起个名字好难的喵
2ad4565d23 fix: info authors 2025-07-24 21:19:50 +08:00
起个名字好难的喵
ed5b616f58 fix: 转码为UTF-8 2025-07-24 20:40:04 +08:00
359 changed files with 1263 additions and 1090 deletions

View File

@@ -1 +1 @@
{"info":{"name":"","description":"","type":""},"positions":[{"x":3563.2421875,"y":3018.57470703125,"type":"teleport","move_mode":"walk"},{"x":3583.29931640625,"y":3057.534423828125,"type":"path","move_mode":"walk"},{"x":3585.44873046875,"y":3072.050048828125,"type":"path","move_mode":"walk"},{"x":3586.3720703125,"y":3071.326904296875,"type":"path","move_mode":"walk"},{"x":3584.07958984375,"y":3071.462646484375,"type":"path","move_mode":"walk"}]}
{"info":{"name":"","description":"","type":""},"positions":[{"x":3563.2421875,"y":3018.57470703125,"type":"teleport","move_mode":"walk"},{"x":3583.29931640625,"y":3057.534423828125,"type":"path","move_mode":"walk"},{"x":3585.44873046875,"y":3072.050048828125,"type":"path","move_mode":"walk"},{"x":3586.3720703125,"y":3071.326904296875,"type":"path","move_mode":"walk"},{"x":3584.07958984375,"y":3071.462646484375,"type":"path","move_mode":"walk"}]}

View File

@@ -54,52 +54,76 @@ for root, dirs, files in os.walk(folder_path):
print("⚠️ 缺少 info 字段")
continue
author_field = info.get("author")
if author_field is None:
print("⚠️ 缺少 author 字段")
continue
modified = False
author_field = info.get("author")
# 字符串格式处理
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
print("✅ 替换为结构化 author")
# 列表格式处理
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
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]:
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
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
print(f"🔧 更新链接{new_name}{author_links[new_name]}")
elif "links" not in author_obj and existing_link:
author_obj["links"] = existing_link
modified = True
print(f"🔄 标准化已有链接字段为 links → {existing_link}")
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
modified = True
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
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
modified = True
print(f"🔄 标准化已有链接字段为 links → {existing_link}")
else:
print("⚠️ 缺少 author 字段,且 authors 非标准格式")
if modified:
with open(file_path, "w", encoding="utf-8") as f:

926
repo.json

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "3稻妻富A路TP刷CD",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "4须弥富A路TP刷CD",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "5枫丹富A路TP刷CD",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "6纳塔富A路TP刷CD",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "001【激活程序】稻妻大炮",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "002【激活程序】须弥-凡爷屋顶罐子",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "003【激活程序】纳塔-鸡鸡",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "305【激活程序】稻妻-踏鞴砂狸猫炸药桶",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "204璃月-天遒谷3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "206璃月-绝云间3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "208璃月-望舒客栈4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "216璃月-珉林北4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "219璃月-华光林2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "220璃月-采浇谷4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "226璃月-层岩主矿区3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "301稻妻-菫色之庭副本4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "302稻妻-九条阵屋2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "401须弥-须弥城5",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "405须弥-天臂池西北4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "407须弥-无郁稠林3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "412须弥-阿如村3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "413须弥-阿如村西2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "414须弥-荼诃落谷营地2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "417须弥-千壑沙地露营地2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "428须弥-甘露花海4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "503枫丹-芒索斯山东麓2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "505枫丹-科学院左沙滩3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "605纳塔-流泉之众4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "611纳塔-花羽会西2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "305【收尾】稻妻-踏鞴砂①-10",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "305【收尾】稻妻-踏鞴砂②-7",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "305【收尾】稻妻-踏鞴砂③-8",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "02【额外】须弥-水天丛林7",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "03【额外】须弥-凡爷屋顶罐子1",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "04【额外】枫丹-科学院瓶子3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "05【额外】纳塔-鸡屁股9",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "06【额外】纳塔-灵谜纹13",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "98【额外】璃月-层岩地下1",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "203璃月-归离原北1",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "204璃月-天遒谷3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "215璃月-轻策庄西1",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "216璃月-珉林北2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "220璃月-采浇谷4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "223璃月-灵濛山北2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "405须弥-天臂池西北4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "407须弥-无郁稠林3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "412须弥-阿如村3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "508枫丹-研究院区西北6",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "511枫丹-实验室遗址右1",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "514枫丹-莫尔泰神像1",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "05【额外】纳塔-鸡屁股9",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "2.1璃月富A路TP刷CD",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "3稻妻富A路TP刷CD",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "4须弥富A路TP刷CD",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "5枫丹富A路TP刷CD",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "6纳塔富A路TP刷CD",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "001【激活程序】稻妻大炮",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "002【激活程序】须弥-凡爷屋顶罐子",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "003【激活程序】纳塔-鸡鸡",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "305【激活程序】稻妻-踏鞴砂狸猫炸药桶",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "204璃月-天遒谷3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "206璃月-绝云间3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "216璃月-珉林北4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "219璃月-华光林2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "220璃月-采浇谷4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "226璃月-层岩主矿区3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "228璃月-沉玉谷沉珑渊地洞3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "229璃月-沉玉谷灵濛山书洞3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "301稻妻-菫色之庭副本4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "302稻妻-九条阵屋2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "401须弥-须弥城5",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "405须弥-天臂池西北4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "407须弥-无郁稠林3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "412须弥-阿如村3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "414须弥-荼诃落谷营地2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "417须弥-千壑沙地露营地2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "428须弥-甘露花海4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "501枫丹-枫丹城廷区2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "503枫丹-芒索斯山东麓2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "505枫丹-科学院左沙滩3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "518枫丹-秋分山西侧2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "605纳塔-流泉之众4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "611纳塔-花羽会西2",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "305【收尾】稻妻-踏鞴砂①-10",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "305【收尾】稻妻-踏鞴砂②-7",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "305【收尾】稻妻-踏鞴砂③-8",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "01【额外】稻妻-踏鞴砂大炮点5",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "02【额外】须弥-水天丛林7",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "03【额外】须弥-凡爷屋顶罐子1",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "04【额外】枫丹-科学院瓶子3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "05【额外】纳塔-鸡屁股9",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "06【额外】纳塔-灵谜纹13",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "98【额外】璃月-层岩地下1",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "003【激活程序】纳塔-鸡鸡",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "204璃月-天遒谷3",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "208璃月-望舒客栈4",
"type": "collect",

View File

@@ -1,4 +1,4 @@
{
{
"info": {
"name": "214璃月-轻策庄3",
"type": "collect",

Some files were not shown because too many files have changed in this diff Show More