mirror of
https://github.com/revanced/revanced-discord-bot.git
synced 2025-05-17 05:17:06 +02:00
chore: update cargo dependencies
This commit is contained in:
parent
14a1052cd8
commit
85b43f1c59
821
Cargo.lock
generated
821
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
30
Cargo.toml
30
Cargo.toml
@ -17,20 +17,20 @@ panic = "abort"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bson = "2.4"
|
bson = "2.4"
|
||||||
serde_with_macros = "2.0"
|
serde_with_macros = "2.0.1"
|
||||||
mongodb = "2.3"
|
mongodb = "2.4.0"
|
||||||
poise = "0.3"
|
poise = "0.5.2"
|
||||||
decancer = "1.4"
|
decancer = "1.5.4"
|
||||||
tokio = { version = "1.20", features = ["rt-multi-thread"] }
|
tokio = { version = "1.26.0", features = ["rt-multi-thread"] }
|
||||||
dotenv = "0.15"
|
dotenv = "0.15.0"
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0.158", features = ["derive"] }
|
||||||
serde_json = "1.0"
|
serde_json = "1.0.94"
|
||||||
regex = "1.0"
|
regex = "1.7.3"
|
||||||
serde_regex = "1.1"
|
serde_regex = "1.1.0"
|
||||||
reqwest = { version = "0.11", features= ["rustls-tls"], default-features = false }
|
reqwest = { version = "0.11.15", features= ["rustls-tls"], default-features = false }
|
||||||
chrono = "0.4"
|
chrono = "0.4.24"
|
||||||
dirs = "4.0"
|
dirs = "5.0.0"
|
||||||
tracing = { version = "0.1", features = ["max_level_debug", "release_max_level_info"] }
|
tracing = { version = "0.1.37", features = ["max_level_debug", "release_max_level_info"] }
|
||||||
tracing-subscriber = "0.3"
|
tracing-subscriber = "0.3.16"
|
||||||
hmac-sha256 = "1.1.6"
|
hmac-sha256 = "1.1.6"
|
||||||
base64 = "0.21.0"
|
base64 = "0.21.0"
|
||||||
|
@ -18,7 +18,7 @@ pub async fn reply(
|
|||||||
ctx.send(|f| f.ephemeral(true).content(content)).await
|
ctx.send(|f| f.ephemeral(true).content(content)).await
|
||||||
}
|
}
|
||||||
|
|
||||||
let http = &ctx.discord().http;
|
let http = &ctx.serenity_context().http;
|
||||||
let channel = &ctx.channel_id();
|
let channel = &ctx.channel_id();
|
||||||
|
|
||||||
if let Some(reply_message) = reply_message {
|
if let Some(reply_message) = reply_message {
|
||||||
@ -68,7 +68,7 @@ pub async fn poll(
|
|||||||
let channel_id = get_id(&mut segments)?;
|
let channel_id = get_id(&mut segments)?;
|
||||||
|
|
||||||
let message = ctx
|
let message = ctx
|
||||||
.discord()
|
.serenity_context()
|
||||||
.http
|
.http
|
||||||
.get_message(channel_id, message_id)
|
.get_message(channel_id, message_id)
|
||||||
.await?;
|
.await?;
|
||||||
|
@ -2,7 +2,11 @@ use bson::{doc, Document};
|
|||||||
use chrono::{Duration, Utc};
|
use chrono::{Duration, Utc};
|
||||||
use mongodb::options::{UpdateModifications, UpdateOptions};
|
use mongodb::options::{UpdateModifications, UpdateOptions};
|
||||||
use poise::serenity_prelude::{
|
use poise::serenity_prelude::{
|
||||||
self as serenity, Mentionable, PermissionOverwrite, Permissions, UserId,
|
self as serenity,
|
||||||
|
Mentionable,
|
||||||
|
PermissionOverwrite,
|
||||||
|
Permissions,
|
||||||
|
UserId,
|
||||||
};
|
};
|
||||||
use tracing::{debug, error, trace};
|
use tracing::{debug, error, trace};
|
||||||
|
|
||||||
@ -10,7 +14,11 @@ use crate::db::model::{LockedChannel, Muted};
|
|||||||
use crate::utils::bot::get_member;
|
use crate::utils::bot::get_member;
|
||||||
use crate::utils::macros::to_user;
|
use crate::utils::macros::to_user;
|
||||||
use crate::utils::moderation::{
|
use crate::utils::moderation::{
|
||||||
ban_moderation, queue_unmute_member, respond_moderation, BanKind, ModerationKind,
|
ban_moderation,
|
||||||
|
queue_unmute_member,
|
||||||
|
respond_moderation,
|
||||||
|
BanKind,
|
||||||
|
ModerationKind,
|
||||||
};
|
};
|
||||||
use crate::{Context, Error};
|
use crate::{Context, Error};
|
||||||
|
|
||||||
@ -20,7 +28,7 @@ pub async fn lock(ctx: Context<'_>) -> Result<(), Error> {
|
|||||||
let data = &ctx.data().read().await;
|
let data = &ctx.data().read().await;
|
||||||
let configuration = &data.configuration;
|
let configuration = &data.configuration;
|
||||||
let database = &data.database;
|
let database = &data.database;
|
||||||
let discord = &ctx.discord();
|
let discord = &ctx.serenity_context();
|
||||||
let cache = &discord.cache;
|
let cache = &discord.cache;
|
||||||
let http = &discord.http;
|
let http = &discord.http;
|
||||||
|
|
||||||
@ -89,14 +97,11 @@ pub async fn lock(ctx: Context<'_>) -> Result<(), Error> {
|
|||||||
let permission = Permissions::SEND_MESSAGES & Permissions::ADD_REACTIONS;
|
let permission = Permissions::SEND_MESSAGES & Permissions::ADD_REACTIONS;
|
||||||
|
|
||||||
if let Err(err) = channel
|
if let Err(err) = channel
|
||||||
.create_permission(
|
.create_permission(http, &PermissionOverwrite {
|
||||||
http,
|
|
||||||
&PermissionOverwrite {
|
|
||||||
allow: permission_overwrite.allow & !permission,
|
allow: permission_overwrite.allow & !permission,
|
||||||
deny: permission_overwrite.deny | permission,
|
deny: permission_overwrite.deny | permission,
|
||||||
kind: permission_overwrite.kind,
|
kind: permission_overwrite.kind,
|
||||||
},
|
})
|
||||||
)
|
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
error!("Failed to create the new permission: {:?}", err);
|
error!("Failed to create the new permission: {:?}", err);
|
||||||
@ -117,7 +122,7 @@ pub async fn unlock(ctx: Context<'_>) -> Result<(), Error> {
|
|||||||
let data = &ctx.data().read().await;
|
let data = &ctx.data().read().await;
|
||||||
let configuration = &data.configuration;
|
let configuration = &data.configuration;
|
||||||
let database = &data.database;
|
let database = &data.database;
|
||||||
let discord = &ctx.discord();
|
let discord = &ctx.serenity_context();
|
||||||
let cache = &discord.cache;
|
let cache = &discord.cache;
|
||||||
let http = &discord.http;
|
let http = &discord.http;
|
||||||
|
|
||||||
@ -177,7 +182,7 @@ pub async fn unmute(
|
|||||||
let author = ctx.author();
|
let author = ctx.author();
|
||||||
|
|
||||||
let queue = queue_unmute_member(
|
let queue = queue_unmute_member(
|
||||||
ctx.discord().clone(),
|
ctx.serenity_context().clone(),
|
||||||
data.database.clone(),
|
data.database.clone(),
|
||||||
ctx.guild_id().unwrap(),
|
ctx.guild_id().unwrap(),
|
||||||
id,
|
id,
|
||||||
@ -244,7 +249,7 @@ pub async fn mute(
|
|||||||
let mute = &configuration.general.mute;
|
let mute = &configuration.general.mute;
|
||||||
let guild_id = ctx.guild_id().unwrap();
|
let guild_id = ctx.guild_id().unwrap();
|
||||||
|
|
||||||
let discord = ctx.discord();
|
let discord = ctx.serenity_context();
|
||||||
|
|
||||||
let unmute_time = if !mute_duration.is_zero() {
|
let unmute_time = if !mute_duration.is_zero() {
|
||||||
Some((now + mute_duration).timestamp() as u64)
|
Some((now + mute_duration).timestamp() as u64)
|
||||||
@ -357,7 +362,7 @@ pub async fn purge(
|
|||||||
let channel = ctx.channel_id();
|
let channel = ctx.channel_id();
|
||||||
let too_old_timestamp = Utc::now().timestamp() - MAX_BULK_DELETE_AGO_SECS;
|
let too_old_timestamp = Utc::now().timestamp() - MAX_BULK_DELETE_AGO_SECS;
|
||||||
|
|
||||||
let current_user = ctx.discord().http.get_current_user().await?;
|
let current_user = ctx.serenity_context().http.get_current_user().await?;
|
||||||
let image = current_user.face();
|
let image = current_user.face();
|
||||||
|
|
||||||
let author = ctx.author();
|
let author = ctx.author();
|
||||||
@ -383,7 +388,7 @@ pub async fn purge(
|
|||||||
loop {
|
loop {
|
||||||
// Filter out messages that are too old
|
// Filter out messages that are too old
|
||||||
let mut messages = channel
|
let mut messages = channel
|
||||||
.messages(&ctx.discord(), |m| {
|
.messages(&ctx.serenity_context(), |m| {
|
||||||
m.limit(count_to_delete as u64).before(response.id)
|
m.limit(count_to_delete as u64).before(response.id)
|
||||||
})
|
})
|
||||||
.await?
|
.await?
|
||||||
@ -419,7 +424,9 @@ pub async fn purge(
|
|||||||
let purge_count = messages.len();
|
let purge_count = messages.len();
|
||||||
if purge_count > 0 {
|
if purge_count > 0 {
|
||||||
deleted_amount += purge_count;
|
deleted_amount += purge_count;
|
||||||
channel.delete_messages(&ctx.discord(), &messages).await?;
|
channel
|
||||||
|
.delete_messages(&ctx.serenity_context(), &messages)
|
||||||
|
.await?;
|
||||||
} else {
|
} else {
|
||||||
empty_pages += 1;
|
empty_pages += 1;
|
||||||
}
|
}
|
||||||
@ -431,7 +438,7 @@ pub async fn purge(
|
|||||||
|
|
||||||
response
|
response
|
||||||
.to_mut()
|
.to_mut()
|
||||||
.edit(&ctx.discord(), |e| {
|
.edit(&ctx.serenity_context(), |e| {
|
||||||
e.set_embed(
|
e.set_embed(
|
||||||
serenity::CreateEmbed::default()
|
serenity::CreateEmbed::default()
|
||||||
.title("Purge successful")
|
.title("Purge successful")
|
||||||
|
@ -152,7 +152,7 @@ async fn main() {
|
|||||||
Ok(true)
|
Ok(true)
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
listener: |_ctx, event, _framework, _data| {
|
event_handler: |_ctx, event, _framework, _data| {
|
||||||
Box::pin(async move {
|
Box::pin(async move {
|
||||||
tracing::trace!("{:?}", event.name());
|
tracing::trace!("{:?}", event.name());
|
||||||
Ok(())
|
Ok(())
|
||||||
|
@ -62,8 +62,10 @@ pub async fn auto_respond(ctx: &serenity::Context, new_message: &serenity::Messa
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
.unix_timestamp();
|
.unix_timestamp();
|
||||||
|
|
||||||
let must_joined_at =
|
let must_joined_at = DateTime::<Utc>::from_utc(
|
||||||
DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(joined_at, 0), Utc);
|
NaiveDateTime::from_timestamp_opt(joined_at, 0).unwrap(),
|
||||||
|
Utc,
|
||||||
|
);
|
||||||
let but_joined_at = Utc::now() - Duration::days(min_age);
|
let but_joined_at = Utc::now() - Duration::days(min_age);
|
||||||
|
|
||||||
if must_joined_at <= but_joined_at {
|
if must_joined_at <= but_joined_at {
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
use ::decancer::Decancer;
|
extern crate decancer;
|
||||||
|
|
||||||
use tracing::{error, info, trace};
|
use tracing::{error, info, trace};
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
const DECANCER: Decancer = Decancer::new();
|
|
||||||
|
|
||||||
pub async fn cure(
|
pub async fn cure(
|
||||||
ctx: &serenity::Context,
|
ctx: &serenity::Context,
|
||||||
old_if_available: &Option<serenity::Member>,
|
old_if_available: &Option<serenity::Member>,
|
||||||
@ -27,7 +26,7 @@ pub async fn cure(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut cured_name = DECANCER.cure(&name).replace(
|
let mut cured_name = decancer::cure(&name).replace(
|
||||||
|c: char| !(c == ' ' || c == '-' || c == '_' || c.is_ascii_alphanumeric()),
|
|c: char| !(c == ' ' || c == '-' || c == '_' || c.is_ascii_alphanumeric()),
|
||||||
"",
|
"",
|
||||||
);
|
);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
macro_rules! to_user {
|
macro_rules! to_user {
|
||||||
($user:ident, $ctx:ident) => {{
|
($user:ident, $ctx:ident) => {{
|
||||||
$user.to_user(&$ctx.discord().http).await?
|
$user.to_user(&$ctx.serenity_context().http).await?
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ use crate::utils::bot::get_member;
|
|||||||
use crate::{Context, Error};
|
use crate::{Context, Error};
|
||||||
|
|
||||||
pub enum ModerationKind {
|
pub enum ModerationKind {
|
||||||
Mute(User, User, String, Option<String>, Option<Error>), // User, Command author, Reason, Expires, Error
|
Mute(User, User, String, Option<String>, Option<Error>), /* User, Command author, Reason, Expires, Error */
|
||||||
Unmute(User, User, Option<Error>), // User, Command author, Error
|
Unmute(User, User, Option<Error>), // User, Command author, Error
|
||||||
Ban(User, User, Option<String>, Option<SerenityError>), // User, Command author, Reason, Error
|
Ban(User, User, Option<String>, Option<SerenityError>), // User, Command author, Reason, Error
|
||||||
Unban(User, User, Option<SerenityError>), // User, Command author, Error
|
Unban(User, User, Option<SerenityError>), // User, Command author, Error
|
||||||
@ -121,7 +121,7 @@ pub async fn respond_moderation<'a>(
|
|||||||
moderation: &ModerationKind,
|
moderation: &ModerationKind,
|
||||||
configuration: &Configuration,
|
configuration: &Configuration,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let current_user = ctx.discord().http.get_current_user().await?;
|
let current_user = ctx.serenity_context().http.get_current_user().await?;
|
||||||
|
|
||||||
let create_embed = |f: &mut serenity::CreateEmbed| {
|
let create_embed = |f: &mut serenity::CreateEmbed| {
|
||||||
let mut moderated_user: Option<&User> = None;
|
let mut moderated_user: Option<&User> = None;
|
||||||
@ -300,7 +300,7 @@ pub async fn respond_moderation<'a>(
|
|||||||
|
|
||||||
let response = reply.message().await?;
|
let response = reply.message().await?;
|
||||||
ChannelId(configuration.general.logging_channel)
|
ChannelId(configuration.general.logging_channel)
|
||||||
.send_message(&ctx.discord().http, |reply| {
|
.send_message(&ctx.serenity_context().http, |reply| {
|
||||||
reply.embed(|embed| {
|
reply.embed(|embed| {
|
||||||
create_embed(embed);
|
create_embed(embed);
|
||||||
embed.field(
|
embed.field(
|
||||||
@ -322,7 +322,8 @@ pub async fn respond_moderation<'a>(
|
|||||||
|
|
||||||
pub async fn ban_moderation(ctx: &Context<'_>, kind: &BanKind) -> Option<SerenityError> {
|
pub async fn ban_moderation(ctx: &Context<'_>, kind: &BanKind) -> Option<SerenityError> {
|
||||||
let guild_id = ctx.guild_id().unwrap().0;
|
let guild_id = ctx.guild_id().unwrap().0;
|
||||||
let http = &ctx.discord().http;
|
|
||||||
|
let http = &ctx.serenity_context().http;
|
||||||
|
|
||||||
match kind {
|
match kind {
|
||||||
BanKind::Ban(user, dmd, reason) => {
|
BanKind::Ban(user, dmd, reason) => {
|
||||||
@ -370,7 +371,9 @@ pub async fn mute_moderation(
|
|||||||
|
|
||||||
let is_currently_muted = member.roles.iter().any(|r| r.0 == mute_role_id);
|
let is_currently_muted = member.roles.iter().any(|r| r.0 == mute_role_id);
|
||||||
|
|
||||||
member.add_role(&ctx.discord().http, mute_role_id).await?;
|
member
|
||||||
|
.add_role(&ctx.serenity_context().http, mute_role_id)
|
||||||
|
.await?;
|
||||||
|
|
||||||
// accumulate all roles to take from the member
|
// accumulate all roles to take from the member
|
||||||
let removed_roles = member
|
let removed_roles = member
|
||||||
@ -382,12 +385,15 @@ pub async fn mute_moderation(
|
|||||||
// take them from the member.
|
// take them from the member.
|
||||||
member
|
member
|
||||||
.remove_roles(
|
.remove_roles(
|
||||||
&ctx.discord().http,
|
&ctx.serenity_context().http,
|
||||||
&take.iter().map(|&r| RoleId::from(r)).collect::<Vec<_>>(),
|
&take.iter().map(|&r| RoleId::from(r)).collect::<Vec<_>>(),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
if let Err(e) = member.disconnect_from_voice(&ctx.discord().http).await {
|
if let Err(e) = member
|
||||||
|
.disconnect_from_voice(&ctx.serenity_context().http)
|
||||||
|
.await
|
||||||
|
{
|
||||||
warn!("Could not disconnect member from voice channel: {}", e);
|
warn!("Could not disconnect member from voice channel: {}", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user