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