React ❌ to delete message; cargo clippy --fix
This commit is contained in:
parent
b3cb507b16
commit
feb1142d6e
2 changed files with 52 additions and 30 deletions
28
src/main.rs
28
src/main.rs
|
@ -11,7 +11,7 @@ type Context<'a> = poise::Context<'a, Data, Error>;
|
|||
pub struct Data {}
|
||||
|
||||
use commands::{challenge::*, kanji::*, meta::*, owner::*};
|
||||
use poise::serenity_prelude as serenity;
|
||||
use poise::{serenity_prelude as serenity, Event};
|
||||
use poise::serenity_prelude::model::gateway::GatewayIntents;
|
||||
use clap::Parser;
|
||||
|
||||
|
@ -45,9 +45,9 @@ impl Arguments {
|
|||
domain: env::var("DOMAIN")?,
|
||||
discord_token: env::var("DISCORD_TOKEN")?,
|
||||
prefix: env::var("PREFIX")?,
|
||||
hugo: env::var("HUGO")?.into(),
|
||||
hugo: env::var("HUGO")?,
|
||||
build: env::var("BUILD")?,
|
||||
guild_data: env::var("GUILD_DATA")?.into(),
|
||||
guild_data: env::var("GUILD_DATA")?,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -67,6 +67,24 @@ lazy_static! {
|
|||
};
|
||||
}
|
||||
|
||||
async fn event_handler(
|
||||
ctx: &serenity::Context,
|
||||
event: &Event<'_>,
|
||||
framework: poise::FrameworkContext<'_, Data, Error>,
|
||||
_data: &Data,
|
||||
) -> Result<(), Error> {
|
||||
if let Event::ReactionAdd { add_reaction, .. } = event {
|
||||
if !add_reaction.emoji.unicode_eq("❌") {
|
||||
return Ok(());
|
||||
}
|
||||
let message = add_reaction.message(&ctx.http).await?;
|
||||
if message.author.id == framework.bot_id && add_reaction.user_id.map(|id| *id.as_u64() == 441283734214279178).unwrap_or(false) {
|
||||
message.delete(&ctx.http).await?;
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() {
|
||||
// Initialize the logger to use environment variables.
|
||||
|
@ -102,6 +120,9 @@ async fn main() {
|
|||
hyogai(),
|
||||
so(),
|
||||
],
|
||||
event_handler: |ctx, event, framework, data| {
|
||||
Box::pin(event_handler(ctx, event, framework, data))
|
||||
},
|
||||
prefix_options: poise::PrefixFrameworkOptions {
|
||||
prefix: Some(ARGS.prefix.clone()),
|
||||
..Default::default()
|
||||
|
@ -113,6 +134,7 @@ async fn main() {
|
|||
GatewayIntents::GUILD_MESSAGES
|
||||
| GatewayIntents::DIRECT_MESSAGES
|
||||
| GatewayIntents::MESSAGE_CONTENT
|
||||
| GatewayIntents::GUILD_MESSAGE_REACTIONS
|
||||
| GatewayIntents::GUILDS,
|
||||
)
|
||||
.setup(move |_ctx, _ready, _framework| Box::pin(async move { Ok(Data {}) }));
|
||||
|
|
54
src/utils.rs
54
src/utils.rs
|
@ -26,31 +26,6 @@ impl User for serenity::User {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::serenity::User;
|
||||
use crate::utils::User as UserTrait;
|
||||
|
||||
fn test_user(name: &str, discriminator: u16) -> User {
|
||||
let mut user = User::default();
|
||||
user.name = name.to_owned();
|
||||
user.discriminator = discriminator;
|
||||
user
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_legacy_username() {
|
||||
let user = test_user("test", 123);
|
||||
assert_eq!(user.username(), "test#0123");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_new_username() {
|
||||
let user = test_user("test", 0);
|
||||
assert_eq!(user.username(), "test");
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_challenge_number() -> i32 {
|
||||
let challenge_dir = format!("{}/content/challenges", ARGS.hugo);
|
||||
let paths = fs::read_dir(challenge_dir).unwrap();
|
||||
|
@ -152,14 +127,14 @@ pub fn rebuild_site() {
|
|||
|
||||
pub fn get_guild_data() -> Map<String, Value> {
|
||||
let guild_data_path = &ARGS.guild_data;
|
||||
let guild_data_json = match File::open(&guild_data_path) {
|
||||
let guild_data_json = match File::open(guild_data_path) {
|
||||
Ok(mut file) => {
|
||||
let mut json = String::new();
|
||||
file.read_to_string(&mut json).unwrap();
|
||||
json
|
||||
}
|
||||
Err(ref e) if e.kind() == std::io::ErrorKind::NotFound => {
|
||||
let mut file = File::create(&guild_data_path).unwrap();
|
||||
let mut file = File::create(guild_data_path).unwrap();
|
||||
file.write_all(b"{}").unwrap();
|
||||
file.flush().unwrap();
|
||||
String::from("{}")
|
||||
|
@ -435,3 +410,28 @@ pub async fn leaderboard(ctx: &Context<'_>) -> Result<(), Error> {
|
|||
file.flush()?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::serenity::User;
|
||||
use crate::utils::User as UserTrait;
|
||||
|
||||
fn test_user(name: &str, discriminator: u16) -> User {
|
||||
let mut user = User::default();
|
||||
user.name = name.to_owned();
|
||||
user.discriminator = discriminator;
|
||||
user
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_legacy_username() {
|
||||
let user = test_user("test", 123);
|
||||
assert_eq!(user.username(), "test#0123");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_new_username() {
|
||||
let user = test_user("test", 0);
|
||||
assert_eq!(user.username(), "test");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue