Spaces:
Sleeping
Sleeping
Upload tools/verify_afterblock_demo.py with huggingface_hub
Browse files
tools/verify_afterblock_demo.py
CHANGED
|
@@ -73,6 +73,8 @@ def server_zip_checks(path: Path) -> dict:
|
|
| 73 |
"afterblock-demo-world.zip",
|
| 74 |
"afterblock-demo-proof.json",
|
| 75 |
"afterblock-server-profile.json",
|
|
|
|
|
|
|
| 76 |
"server.properties.append",
|
| 77 |
"README.md",
|
| 78 |
]
|
|
@@ -80,6 +82,8 @@ def server_zip_checks(path: Path) -> dict:
|
|
| 80 |
config = zf.read("plugins/DreamWall/config.yml").decode("utf-8")
|
| 81 |
demo_proof = json.loads(zf.read("afterblock-demo-proof.json").decode("utf-8"))
|
| 82 |
server_profile = json.loads(zf.read("afterblock-server-profile.json").decode("utf-8"))
|
|
|
|
|
|
|
| 83 |
return {
|
| 84 |
"file": path.name,
|
| 85 |
"required_files_present": {name: name in names for name in required},
|
|
@@ -108,8 +112,25 @@ def server_zip_checks(path: Path) -> dict:
|
|
| 108 |
),
|
| 109 |
"upload_map": len(server_profile.get("upload_map", [])) >= 4,
|
| 110 |
"museum_check": "/dreamwall museum check" in server_profile.get("verification_commands", []),
|
|
|
|
|
|
|
| 111 |
"no_password": "password" not in json.dumps(server_profile).lower().replace("no password", ""),
|
| 112 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 113 |
}
|
| 114 |
|
| 115 |
|
|
@@ -162,6 +183,8 @@ def main() -> int:
|
|
| 162 |
"has_verify_commands": "/dreamwall museum check" in server_bundle[2]
|
| 163 |
and "/dreamwall import here" in server_bundle[2],
|
| 164 |
"mentions_profile_json": "afterblock-server-profile.json" in server_bundle[2],
|
|
|
|
|
|
|
| 165 |
},
|
| 166 |
"demo_path_contract": {
|
| 167 |
"has_judge_scorecard": "judge-scorecard" in demo_path,
|
|
@@ -223,6 +246,7 @@ def main() -> int:
|
|
| 223 |
proof["server_config_ui_contract"]["has_upload_map"],
|
| 224 |
proof["server_config_ui_contract"]["has_verify_commands"],
|
| 225 |
proof["server_config_ui_contract"]["mentions_profile_json"],
|
|
|
|
| 226 |
proof["demo_path_contract"]["has_judge_scorecard"],
|
| 227 |
proof["demo_path_contract"]["has_winning_signal"],
|
| 228 |
proof["demo_path_contract"]["cuts_feature_buffet"],
|
|
@@ -239,6 +263,7 @@ def main() -> int:
|
|
| 239 |
all(proof["per_relic_server_zip"]["config_contains"].values()),
|
| 240 |
all(proof["per_relic_server_zip"]["demo_proof_contract"].values()),
|
| 241 |
all(proof["per_relic_server_zip"]["server_profile_contract"].values()),
|
|
|
|
| 242 |
]
|
| 243 |
)
|
| 244 |
|
|
|
|
| 73 |
"afterblock-demo-world.zip",
|
| 74 |
"afterblock-demo-proof.json",
|
| 75 |
"afterblock-server-profile.json",
|
| 76 |
+
"UPLOAD_TO_SERVER.md",
|
| 77 |
+
"install-afterblock-paper.sh",
|
| 78 |
"server.properties.append",
|
| 79 |
"README.md",
|
| 80 |
]
|
|
|
|
| 82 |
config = zf.read("plugins/DreamWall/config.yml").decode("utf-8")
|
| 83 |
demo_proof = json.loads(zf.read("afterblock-demo-proof.json").decode("utf-8"))
|
| 84 |
server_profile = json.loads(zf.read("afterblock-server-profile.json").decode("utf-8"))
|
| 85 |
+
upload_guide = zf.read("UPLOAD_TO_SERVER.md").decode("utf-8")
|
| 86 |
+
install_helper = zf.read("install-afterblock-paper.sh").decode("utf-8")
|
| 87 |
return {
|
| 88 |
"file": path.name,
|
| 89 |
"required_files_present": {name: name in names for name in required},
|
|
|
|
| 112 |
),
|
| 113 |
"upload_map": len(server_profile.get("upload_map", [])) >= 4,
|
| 114 |
"museum_check": "/dreamwall museum check" in server_profile.get("verification_commands", []),
|
| 115 |
+
"helper_files": set(server_profile.get("helper_files", []))
|
| 116 |
+
>= {"UPLOAD_TO_SERVER.md", "install-afterblock-paper.sh"},
|
| 117 |
"no_password": "password" not in json.dumps(server_profile).lower().replace("no password", ""),
|
| 118 |
},
|
| 119 |
+
"upload_helper_contract": {
|
| 120 |
+
"script_has_sftp_env": "AFTERBLOCK_SFTP_HOST" in install_helper
|
| 121 |
+
and "AFTERBLOCK_SFTP_USER" in install_helper,
|
| 122 |
+
"script_runs_sftp": "sftp -P" in install_helper,
|
| 123 |
+
"script_has_verify_commands": "/dreamwall museum check" in install_helper
|
| 124 |
+
and "/dreamwall import here" in install_helper,
|
| 125 |
+
"script_no_private_endpoint": not any(
|
| 126 |
+
secret in install_helper.lower()
|
| 127 |
+
for secret in ["password", "gmail", "itsarnav", "uk144"]
|
| 128 |
+
),
|
| 129 |
+
"guide_has_upload_map": "Upload Map" in upload_guide
|
| 130 |
+
and "plugins/DreamWall/config.yml" in upload_guide,
|
| 131 |
+
"guide_has_minecraft_commands": "/dreamwall museum build" in upload_guide
|
| 132 |
+
and "/dreamwall import here" in upload_guide,
|
| 133 |
+
},
|
| 134 |
}
|
| 135 |
|
| 136 |
|
|
|
|
| 183 |
"has_verify_commands": "/dreamwall museum check" in server_bundle[2]
|
| 184 |
and "/dreamwall import here" in server_bundle[2],
|
| 185 |
"mentions_profile_json": "afterblock-server-profile.json" in server_bundle[2],
|
| 186 |
+
"mentions_upload_helper": "UPLOAD_TO_SERVER.md" in server_bundle[2]
|
| 187 |
+
and "install-afterblock-paper.sh" in server_bundle[2],
|
| 188 |
},
|
| 189 |
"demo_path_contract": {
|
| 190 |
"has_judge_scorecard": "judge-scorecard" in demo_path,
|
|
|
|
| 246 |
proof["server_config_ui_contract"]["has_upload_map"],
|
| 247 |
proof["server_config_ui_contract"]["has_verify_commands"],
|
| 248 |
proof["server_config_ui_contract"]["mentions_profile_json"],
|
| 249 |
+
proof["server_config_ui_contract"]["mentions_upload_helper"],
|
| 250 |
proof["demo_path_contract"]["has_judge_scorecard"],
|
| 251 |
proof["demo_path_contract"]["has_winning_signal"],
|
| 252 |
proof["demo_path_contract"]["cuts_feature_buffet"],
|
|
|
|
| 263 |
all(proof["per_relic_server_zip"]["config_contains"].values()),
|
| 264 |
all(proof["per_relic_server_zip"]["demo_proof_contract"].values()),
|
| 265 |
all(proof["per_relic_server_zip"]["server_profile_contract"].values()),
|
| 266 |
+
all(proof["per_relic_server_zip"]["upload_helper_contract"].values()),
|
| 267 |
]
|
| 268 |
)
|
| 269 |
|