This commit is contained in:
41666 2023-06-09 04:42:23 -04:00
commit 83ad349f30
16 changed files with 3428 additions and 0 deletions

1
hack/metagame-gen/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/target

1247
hack/metagame-gen/Cargo.lock generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,12 @@
[package]
name = "metagame-gen"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
reqwest = { version = "0.11", features = ["json"] }
serde = { version = "1.0", features = ["derive"] }
serde-aux = { version = "4" }
tokio = { version = "1", features = ["full"] }

View file

@ -0,0 +1,43 @@
use serde::Deserialize;
use serde_aux::prelude::*;
#[derive(Deserialize)]
struct MetagameEventResponse {
metagame_event_list: Vec<MetagameEvent>,
}
#[derive(Deserialize)]
struct MetagameEvent {
metagame_event_id: String,
#[serde(rename = "type", deserialize_with = "deserialize_number_from_string")]
event_type: i32,
}
#[tokio::main]
async fn main() {
let response = reqwest::get(
"https://census.daybreakgames.com/s:ps2livepublic/get/ps2/metagame_event?c:limit=1000",
)
.await
.unwrap();
let metagame_events: MetagameEventResponse = response.json().await.unwrap();
let template = format!("// GENERATED CODE. DO NOT EDIT MANUALLY. Run `cd hack/metagame-gen; cargo run` to generate.
pub fn alert_type(metagame_event_id: i32) -> String {{
match metagame_event_id {{
{} => \"air\".to_string(),
{} => \"sudden_death\".to_string(),
{} | _ => \"conquest\".to_string(),
}}
}}",
metagame_events.metagame_event_list.iter().filter(|e| e.event_type == 10).map(|e| e.metagame_event_id.clone()).collect::<Vec<String>>().join(" | "),
metagame_events.metagame_event_list.iter().filter(|e| e.event_type == 6).map(|e| e.metagame_event_id.clone()).collect::<Vec<String>>().join(" | "),
metagame_events.metagame_event_list.iter().filter(|e| e.event_type == 9).map(|e| e.metagame_event_id.clone()).collect::<Vec<String>>().join(" | "),
);
std::fs::write("../../src/alert_types.rs", template).unwrap();
println!("Generated alert_types.rs");
}