feat: cleaned up array that was used to count members/changes to a struct
This commit is contained in:
parent
e901f3ed74
commit
2b2dfc2531
1 changed files with 26 additions and 5 deletions
|
@ -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> {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue