init
This commit is contained in:
commit
83ad349f30
16 changed files with 3428 additions and 0 deletions
1
hack/metagame-gen/.gitignore
vendored
Normal file
1
hack/metagame-gen/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/target
|
1247
hack/metagame-gen/Cargo.lock
generated
Normal file
1247
hack/metagame-gen/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
12
hack/metagame-gen/Cargo.toml
Normal file
12
hack/metagame-gen/Cargo.toml
Normal 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"] }
|
43
hack/metagame-gen/src/main.rs
Normal file
43
hack/metagame-gen/src/main.rs
Normal 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");
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue