add tag all function

This commit is contained in:
Fabian Montero 2026-05-16 19:26:12 -06:00
parent 3ff112b1cd
commit 6e59919c62
Signed by: fabian
GPG key ID: 3EDA9AE3937CCDE3
8 changed files with 141 additions and 31 deletions

20
src/state.rs Normal file
View file

@ -0,0 +1,20 @@
use once_cell::sync::Lazy;
use std::collections::{HashMap, HashSet};
use std::sync::RwLock;
static SEEN_USERS: Lazy<RwLock<HashMap<i64, HashSet<String>>>> =
Lazy::new(|| RwLock::new(HashMap::new()));
pub fn track_user(chat_id: i64, username: String) {
let mut map = SEEN_USERS.write().unwrap();
map.entry(chat_id).or_default().insert(username);
}
pub fn get_tracked_users(chat_id: i64) -> Vec<String> {
SEEN_USERS
.read()
.unwrap()
.get(&chat_id)
.map(|s| s.iter().cloned().collect())
.unwrap_or_default()
}