mirror of
https://github.com/revanced/revanced-discord-bot.git
synced 2025-04-30 22:44:26 +02:00
perf: clone Arc
of data.database
This commit is contained in:
parent
8840a65c94
commit
3ad345b009
@ -1,4 +1,4 @@
|
||||
pub mod configuration;
|
||||
pub mod misc;
|
||||
pub mod moderation;
|
||||
pub mod utils;
|
||||
pub mod misc;
|
@ -30,7 +30,7 @@ pub async fn unmute(
|
||||
&ctx,
|
||||
ModerationKind::Unmute(
|
||||
queue_unmute_member(
|
||||
ctx.discord(),
|
||||
&ctx.discord().http,
|
||||
&data.database,
|
||||
&member,
|
||||
configuration.general.mute.role,
|
||||
@ -161,7 +161,7 @@ pub async fn mute(
|
||||
data.pending_unmutes.insert(
|
||||
member.user.id.0,
|
||||
queue_unmute_member(
|
||||
ctx.discord(),
|
||||
&ctx.discord().http,
|
||||
&data.database,
|
||||
&member,
|
||||
mute_role_id,
|
||||
@ -303,11 +303,7 @@ pub async fn ban(
|
||||
.unwrap();
|
||||
|
||||
let ban_result = member
|
||||
.ban_with_reason(
|
||||
&ctx.discord().http,
|
||||
cmp::min(dmd.unwrap_or(0), 7),
|
||||
reason,
|
||||
)
|
||||
.ban_with_reason(&ctx.discord().http, cmp::min(dmd.unwrap_or(0), 7), reason)
|
||||
.await;
|
||||
|
||||
let embed_color = ctx.data().read().await.configuration.general.embed_color;
|
||||
|
@ -39,7 +39,7 @@ pub async fn load_muted_members(ctx: &serenity::Context, _: &serenity::Ready) {
|
||||
data.pending_unmutes.insert(
|
||||
member.user.id.0,
|
||||
queue_unmute_member(
|
||||
ctx,
|
||||
&ctx.http,
|
||||
&data.database,
|
||||
&member,
|
||||
mute_role_id,
|
||||
|
@ -28,7 +28,7 @@ impl serenity::TypeMapKey for Data {
|
||||
|
||||
pub struct Data {
|
||||
configuration: Configuration,
|
||||
database: Database,
|
||||
database: Arc<Database>,
|
||||
pending_unmutes: HashMap<u64, JoinHandle<Option<Error>>>,
|
||||
}
|
||||
|
||||
@ -67,12 +67,14 @@ async fn main() {
|
||||
|
||||
let data = Arc::new(RwLock::new(Data {
|
||||
configuration,
|
||||
database: Database::new(
|
||||
database: Arc::new(
|
||||
Database::new(
|
||||
&env::var("MONGODB_URI").expect("MONGODB_URI environment variable not set"),
|
||||
"revanced_discord_bot",
|
||||
)
|
||||
.await
|
||||
.unwrap(),
|
||||
),
|
||||
pending_unmutes: HashMap::new(),
|
||||
}));
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use poise::serenity_prelude::Http;
|
||||
use tokio::task::JoinHandle;
|
||||
|
||||
use super::*;
|
||||
@ -11,13 +14,13 @@ pub enum ModerationKind {
|
||||
}
|
||||
|
||||
pub fn queue_unmute_member(
|
||||
ctx: &serenity::Context,
|
||||
database: &Database,
|
||||
http: &Arc<Http>,
|
||||
database: &Arc<Database>,
|
||||
member: &Member,
|
||||
mute_role_id: u64,
|
||||
mute_duration: u64,
|
||||
) -> JoinHandle<Option<Error>> {
|
||||
let ctx = ctx.clone();
|
||||
let http = http.clone();
|
||||
let database = database.clone();
|
||||
let mut member = member.clone();
|
||||
|
||||
@ -46,9 +49,9 @@ pub fn queue_unmute_member(
|
||||
.map(|r| RoleId::from(r.parse::<u64>().unwrap()))
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
if let Err(add_role_result) = member.add_roles(&ctx.http, &taken_roles).await {
|
||||
if let Err(add_role_result) = member.add_roles(&http, &taken_roles).await {
|
||||
Some(Error::from(add_role_result))
|
||||
} else if let Err(remove_result) = member.remove_role(ctx.http, mute_role_id).await {
|
||||
} else if let Err(remove_result) = member.remove_role(http, mute_role_id).await {
|
||||
Some(Error::from(remove_result))
|
||||
} else {
|
||||
None
|
||||
|
Loading…
x
Reference in New Issue
Block a user