change structure, update deps, add avatar command

This commit is contained in:
oupson 2022-03-11 10:25:26 +01:00
parent 55e2c428e2
commit fdd88db34c
26 changed files with 2352 additions and 42 deletions

1
.gitignore vendored
View File

@ -1,7 +1,6 @@
/target /target
/.vscode /.vscode
/logging/ /logging/
Cargo.lock
Conf.toml Conf.toml
/data /data
/log /log

2284
Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,27 +1,5 @@
[package] [workspace]
name = "rusty_bot" members = [
version = "0.1.0" "rusty-bot",
authors = ["oupson"] "rusty-bot-database"
edition = "2018" ]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
music = ["serenity/voice", "songbird"]
[dependencies]
serenity = { version = "0.10.9", features = ["unstable_discord_api"] }
toml = "0.5"
serde = { version = "1.0", features = ["derive"] }
reqwest = "0.11"
rand = "0.8"
lazy_static = "1.4"
async-trait = "0.1"
tokio = { version = "1.0", features = ["full"] }
futures = "0.3"
chrono = "0.4"
serde_json = "1.0"
log = "0.4"
log4rs = "1.0"
ctrlc = "3.1"
songbird = { version = "0.1.6", features = ["driver", "builtin-queue"], optional = true }

View File

@ -0,0 +1,8 @@
[package]
name = "rusty-bot-database"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View File

@ -0,0 +1 @@
// KEEP

27
rusty-bot/Cargo.toml Normal file
View File

@ -0,0 +1,27 @@
[package]
name = "rusty_bot"
version = "0.1.0"
authors = ["oupson"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
music = ["serenity/voice", "songbird"]
[dependencies]
serenity = { version = "0.10.10", features = ["unstable_discord_api"] }
toml = "0.5"
serde = { version = "1.0", features = ["derive"] }
reqwest = "0.11"
rand = "0.8"
lazy_static = "1.4"
async-trait = "0.1"
tokio = { version = "1.0", features = ["full"] }
futures = "0.3"
chrono = "0.4"
serde_json = "1.0"
log = "0.4"
log4rs = "1.0"
ctrlc = "3.1"
songbird = { version = "0.2", features = ["driver", "builtin-queue", "yt-dlp"], optional = true }

View File

@ -1,10 +1,16 @@
use crate::{api, data::ShardManagerContainer}; use crate::{api, data::ShardManagerContainer};
use futures::StreamExt; use futures::StreamExt;
use log::error; use log::error;
use serenity::{client::bridge::gateway::ShardId, framework::standard::{ use serenity::{
client::bridge::gateway::ShardId,
framework::standard::{
macros::{command, group}, macros::{command, group},
ArgError, Args, CommandResult, ArgError, Args, CommandResult,
}, http::CacheHttp, model::{interactions::message_component::ButtonStyle, prelude::*}, prelude::*}; },
http::CacheHttp,
model::{interactions::message_component::ButtonStyle, prelude::*},
prelude::*,
};
#[group] #[group]
#[commands( #[commands(
@ -18,7 +24,8 @@ use serenity::{client::bridge::gateway::ShardId, framework::standard::{
ping, ping,
random_mute, random_mute,
uptime, uptime,
button button,
avatar
)] )]
pub struct General; pub struct General;
@ -241,14 +248,6 @@ async fn ping(ctx: &Context, msg: &Message) -> CommandResult {
#[description = "Image"] #[description = "Image"]
#[bucket = "image"] #[bucket = "image"]
pub async fn image(ctx: &Context, msg: &Message, args: Args) -> CommandResult { pub async fn image(ctx: &Context, msg: &Message, args: Args) -> CommandResult {
msg.author
.has_role(
ctx,
msg.guild_id.unwrap(),
msg.guild(ctx).await.unwrap().role_by_name("mute").unwrap(),
)
.await
.unwrap();
if let Err(e) = _image(ctx, msg, args).await { if let Err(e) = _image(ctx, msg, args).await {
error!("Error in image : {:?}", e); error!("Error in image : {:?}", e);
} }
@ -370,6 +369,20 @@ async fn uptime(ctx: &Context, msg: &Message) -> CommandResult {
Ok(()) Ok(())
} }
#[command]
#[description("Get the avatar of a personn")]
async fn avatar(ctx: &Context, msg: &Message, _args : Args) -> CommandResult {
//let a = args.parse::<UserId>()?; TODO
if let Some(avatar_url) = &msg.author.avatar_url() {
msg.channel_id
.send_message(&ctx.http, |m| {
m.embed(|e| e.image(avatar_url).colour((247, 76, 0)))
})
.await?;
}
Ok(())
}
// TODO JSON FILE // TODO JSON FILE
enum Image { enum Image {
HackerMan(), HackerMan(),

View File

@ -9,7 +9,6 @@ use serenity::{
}, },
message_component::{MessageComponentInteraction, MessageComponentInteractionData}, message_component::{MessageComponentInteraction, MessageComponentInteractionData},
Interaction, InteractionApplicationCommandCallbackDataFlags, InteractionResponseType, Interaction, InteractionApplicationCommandCallbackDataFlags, InteractionResponseType,
MessageInteraction,
}, },
Permissions, Permissions,
}, },

View File

@ -3,10 +3,9 @@ use serenity::{
client::Context, client::Context,
framework::standard::CommandResult, framework::standard::CommandResult,
model::{ model::{
channel::{Message, ReactionType}, channel::Message,
guild::{Member, PartialMember}, guild::{Member, PartialMember},
id::GuildId, id::GuildId,
interactions::message_component::ButtonStyle,
Permissions, Permissions,
}, },
}; };
@ -136,6 +135,7 @@ impl<'a> CreateMessageExt for CreateMessage<'a> {
fn add_music_buttons<'b>(&'b mut self) -> &'b mut Self { fn add_music_buttons<'b>(&'b mut self) -> &'b mut Self {
return self; return self;
/*
self.components(|comp| { self.components(|comp| {
comp.create_action_row(|row| { comp.create_action_row(|row| {
row.create_button(|but| { row.create_button(|but| {
@ -165,5 +165,6 @@ impl<'a> CreateMessageExt for CreateMessage<'a> {
}) })
}) })
}) })
*/
} }
} }