diff --git a/src/main.rs b/src/main.rs index 40b3754..996e735 100644 --- a/src/main.rs +++ b/src/main.rs @@ -22,12 +22,10 @@ use winreg::RegKey; mod data_source; mod kb_data_source; mod ms_data_source; -mod pb_data_source; use data_source::DataSource; use kb_data_source::KBDataSource; use ms_data_source::MSDataSource; -use pb_data_source::PBDataSource; #[derive(Deserialize)] struct Realm { @@ -101,7 +99,6 @@ fn main() -> Result<(), Box> { info!("LoL numbers of champs: {}", champion.data.len()); let data_sources: Vec> = vec![ - Box::new(PBDataSource), Box::new(KBDataSource::new()), Box::new(MSDataSource), ]; diff --git a/src/pb_data_source.rs b/src/pb_data_source.rs deleted file mode 100644 index a7b124e..0000000 --- a/src/pb_data_source.rs +++ /dev/null @@ -1,103 +0,0 @@ -use indexmap::IndexMap; -use serde_derive::Deserialize; -use serde_json::Value; - -use crate::data_source::{DataSource, Stat}; -use crate::ChampInfo; -use crate::Champion as ChampionLoL; - -pub struct PBDataSource; - -#[derive(Deserialize)] -struct ChampionResponse { - champions: Vec, -} - -#[derive(Deserialize)] -struct Champion { - key: Option, -} - -impl DataSource for PBDataSource { - fn get_alias(&self) -> &str { - "PB" - } - - fn get_timeout(&self) -> u64 { - 300 - } - - fn get_champs_with_positions( - &self, - client: &ureq::Agent, - _champion: &ChampionLoL, - ) -> IndexMap> { - let mut champs = IndexMap::new(); - - let page = client - .get("https://www.probuilds.net/ajax/championListNew") - .set("Accept", "application/json") - .call() - .unwrap() - .into_string() - .unwrap(); - - let data: ChampionResponse = serde_json::from_str(&page).unwrap(); - - for champ in data.champions { - if let Some(k) = champ.key { - champs.insert(k.parse::().unwrap(), vec!["ANY".to_owned()]); - } - } - - champs - } - - fn get_champ_data_with_win_pourcentage( - &self, - champ: &ChampInfo, - positions: &[String], - client: &ureq::Agent, - ) -> Vec<(String, Vec, Stat)> { - let mut builds = vec![]; - - let rep = client - .get(format!("https://www.probuilds.net/ajax/gamesLive?limit=5&sort=gameDate-desc&championId={}&olderThan=0&lane=®ion=", champ.key).as_str()) - .set("Accept", "application/json") - .call(); - - if let Ok(page) = rep { - let rep: Vec = serde_json::from_str(&page.into_string().unwrap()).unwrap(); - - let mut blocks = vec![]; - for build in rep { - let pos = build.find("/players").unwrap(); - let tmp = &build[pos..]; - let name = &tmp[tmp.find('>').unwrap() + 1..tmp.find('<').unwrap()]; - - let mut items = vec![]; - let mut build = &build[build.find("'items'").unwrap()..]; - while build.contains("items") { - let pos = build.find("data-id=").unwrap(); - build = &build[pos + 9..]; - let end = build.find('"').unwrap(); - items.push(&build[..end]); - build = &build[end + 18..]; - } - - blocks.push(self.make_item_set(items, name.to_string())); - } - builds.push(( - positions[0].to_owned(), - blocks, - Stat { - win_rate: 0.0, - games: 1, - kda: 0.0, - patch: "".to_string(), - }, - )); - } - builds - } -}