From ad084d6dc885951edd028466c521c1b9d52ced55 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 24 Mar 2023 02:04:58 +0100 Subject: [PATCH] Make set codes configurable via `DATA_DRAGON_SET_CODES` --- src/data/setbundle/mod.rs | 21 +++------------------ src/discord/main.rs | 9 ++++++++- src/telegram/main.rs | 9 ++++++++- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/data/setbundle/mod.rs b/src/data/setbundle/mod.rs index fb6ec39..a12ec74 100644 --- a/src/data/setbundle/mod.rs +++ b/src/data/setbundle/mod.rs @@ -145,32 +145,17 @@ pub fn create_cardindex_from_wd() -> card::CardIndex { create_cardindex_from_paths(paths) } -/// List of all known Data Dragon set codes. -/// -/// See [the Riot Developer Portal](https://developer.riotgames.com/docs/lor#data-dragon_set-bundles) for more details. -/// -/// Not related with [`set::CardSet`]. -pub const DD_KNOWN_SET_CODES: [&str; 7] = [ - "set1", - "set2", - "set3", - "set4", - "set5", - "set6", - "set6cde", -]; - /// Create a [`card::CardIndex`] from the latest known english data in Data Dragon. /// /// This function tries to load data from `https://dd.b.pvp.net/latest`. -pub async fn create_cardindex_from_dd_latest(locale: &str) -> card::CardIndex { +pub async fn create_cardindex_from_dd_latest(known_set_codes: &Vec, locale: &str) -> card::CardIndex { let client = reqwest::Client::new(); let mut index = card::CardIndex::new(); - for set_code in DD_KNOWN_SET_CODES { + for set_code in known_set_codes { log::debug!("Fetching {} SetBundle with code {} from Data Dragon...", locale, &set_code); - let set = SetBundle::fetch(&client, "https://dd.b.pvp.net/latest", locale, set_code).await + let set = SetBundle::fetch(&client, "https://dd.b.pvp.net/latest", locale, &set_code).await .expect("to be able to fetch set bundle"); log::debug!("Fetched {} SetBundle with code {}: it defines {} cards!", locale, &set_code, set.cards.len()); diff --git a/src/discord/main.rs b/src/discord/main.rs index 2437550..c117538 100644 --- a/src/discord/main.rs +++ b/src/discord/main.rs @@ -18,12 +18,19 @@ pub async fn main() { .expect("DATA_DRAGON_LOCALE to be set"); debug!("Using {} locale!", &locale); + debug!("Detecting set codes to fetch..."); + let known_set_codes: Vec = env::var("DATA_DRAGON_SET_CODES") + .expect("DATA_DRAGON_SET_CODES to be set") + .split(",") + .into(); + debug!("Using set codes: {:#?}", &known_set_codes); + debug!("Creating LocalizedGlobalIndexes..."); let globals = create_globalindexes_from_dd_latest(&locale).await; debug!("Created LocalizedGlobalIndexes!"); debug!("Creating CardIndex..."); - let cards = create_cardindex_from_dd_latest(&locale).await; + let cards = create_cardindex_from_dd_latest(&known_set_codes, &locale).await; debug!("Created CardIndex!"); debug!("Creating CardSearchEngine..."); diff --git a/src/telegram/main.rs b/src/telegram/main.rs index 95df6e6..0ccca67 100644 --- a/src/telegram/main.rs +++ b/src/telegram/main.rs @@ -19,12 +19,19 @@ pub async fn main() { .expect("DATA_DRAGON_LOCALE to be set"); debug!("Using {} locale!", &locale); + debug!("Detecting set codes to fetch..."); + let known_set_codes: Vec = env::var("DATA_DRAGON_SET_CODES") + .expect("DATA_DRAGON_SET_CODES to be set") + .split(",") + .into(); + debug!("Using set codes: {:#?}", &known_set_codes); + debug!("Creating LocalizedGlobalIndexes..."); let globals = create_globalindexes_from_dd_latest(&locale).await; debug!("Created LocalizedGlobalIndexes!"); debug!("Creating CardIndex..."); - let cards = create_cardindex_from_dd_latest(&locale).await; + let cards = create_cardindex_from_dd_latest(&known_set_codes, &locale).await; debug!("Created CardIndex!"); debug!("Creating CardSearchEngine...");