feat: cleaned up array that was used to count members/changes to a struct

This commit is contained in:
silver 2025-07-20 20:32:43 +01:00
parent e901f3ed74
commit 2b2dfc2531
Signed by: silver
GPG key ID: 36F93D61BAD3FD7D

View file

@ -5,6 +5,13 @@ pub mod normal {
use serenity::model::id::{GuildId, RoleId, UserId};
use sqlx::{Pool, Sqlite};
struct RolesChange {
total: i32,
new: i32,
current_add: i32,
current_rem: i32,
}
pub async fn update_server(ctx: &Context, server: &Servers, remove_roles: &[Option<RoleId>], members_changed: &[UserId]) {
let db_lock = {
let data_read = ctx.data.read().await;
@ -20,7 +27,12 @@ pub mod normal {
..
} = server;
let mut roles_set = [0, 0, 0];
let mut roles_set = RolesChange {
total: 0,
new: 0,
current_add: 0,
current_rem: 0,
};
let mut members = vec![];
for member in get_server_member_bulk(&db, server).await {
@ -38,17 +50,19 @@ pub mod normal {
}
if members.contains(&member.user.id) {
roles_set.total += 1;
let mut roles = vec![];
if let Some(role) = &role_past {
if !member.roles.contains(role) {
roles_set[0] += 1;
roles_set.new += 1;
roles.push(role.to_owned());
}
}
if !member.roles.contains(role_current) {
roles_set[1] += 1;
roles_set.current_add += 1;
roles.push(role_current.to_owned());
}
@ -65,7 +79,7 @@ pub mod normal {
}
if member.roles.contains(role_current) {
roles_set[2] += 1;
roles_set.current_rem += 1;
// if theya re not a current member and have the role then remove it
if let Err(e) = member.remove_role(ctx, role_current).await {
println!("{:?}", e);
@ -83,7 +97,14 @@ pub mod normal {
set_server_numbers(&db, server, members_all as i64, members.len() as i64).await;
// small bit of logging to note changes over time
println!("{:?} Changes: New: +{}, Current: +{}/-{}", server.get(), roles_set[0], roles_set[1], roles_set[2]);
println!(
"{:?} Total: {} Changes: New: +{}, Current: +{}/-{}",
server.get(),
roles_set.total,
roles_set.new,
roles_set.current_add,
roles_set.current_rem
);
}
pub async fn get_server_member_bulk(db: &Pool<Sqlite>, server: &GuildId) -> Vec<ServerMembersWolves> {