From c85c2101b784925d80ba42201029f68ca85dec86 Mon Sep 17 00:00:00 2001 From: mokurin000 <1348292515a@gmail.com> Date: Sat, 2 Aug 2025 20:03:50 +0800 Subject: [PATCH] feat: filter abnormal users --- sdgb-cli/src/commands.rs | 5 +++++ sdgb-cli/src/main.rs | 13 +++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/sdgb-cli/src/commands.rs b/sdgb-cli/src/commands.rs index 10fbf63..85f8440 100644 --- a/sdgb-cli/src/commands.rs +++ b/sdgb-cli/src/commands.rs @@ -88,6 +88,11 @@ pub enum Commands { ScrapeAllB50 { #[arg(short, long, default_value_t = 5)] concurrency: usize, + + #[arg(long, default_value_t = 1000)] + min_rating: i64, + #[arg(long, default_value_t = 16500)] + max_rating: i64, }, #[cfg(feature = "fetchall")] ListAllUserDump {}, diff --git a/sdgb-cli/src/main.rs b/sdgb-cli/src/main.rs index ebf6be5..71d5bee 100644 --- a/sdgb-cli/src/main.rs +++ b/sdgb-cli/src/main.rs @@ -263,18 +263,23 @@ async fn main() -> Result<(), Box> { } #[cfg(feature = "fetchall")] - Commands::ScrapeAllB50 { concurrency } => { + Commands::ScrapeAllB50 { + concurrency, + min_rating, + max_rating, + } => { use sdgb_api::title::methods; use crate::{ cache::{PLAYER_B50, PLAYERS}, - utils::helpers::{cached_concurrent_fetch, read_cache_keys}, + utils::helpers::{cached_concurrent_fetch, read_cache}, }; - let user_ids = read_cache_keys(PLAYERS)?; + let mut players: Vec = read_cache(PLAYERS)?; + players.retain(|p| p.player_rating >= min_rating && p.player_rating <= max_rating); cached_concurrent_fetch::( - user_ids, + players.iter().map(|p| p.user_id).collect::>(), &client, concurrency, PLAYER_B50,