moved database-related commands into subcommands & added wwrps database entry
This commit is contained in:
@@ -2,7 +2,8 @@
|
|||||||
"servers": {
|
"servers": {
|
||||||
"SERVER ID": {
|
"SERVER ID": {
|
||||||
"re_posts_channel": 0,
|
"re_posts_channel": 0,
|
||||||
"re_disabled": false
|
"re_disabled": false,
|
||||||
|
"wwrps_channel": 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+20
@@ -20,6 +20,7 @@ static PRESET_PATH_CFG: &str = "./data/defaults/cfg_default.toml";
|
|||||||
static DATA_PATH_LANG: &str = "./data/lang/";
|
static DATA_PATH_LANG: &str = "./data/lang/";
|
||||||
|
|
||||||
pub static DC_POSTS_CHANNEL_KEY: &str = "re_posts_channel";
|
pub static DC_POSTS_CHANNEL_KEY: &str = "re_posts_channel";
|
||||||
|
pub static DC_WWRPS_CHANNEL_KEY: &str = "wwrps_channel";
|
||||||
|
|
||||||
|
|
||||||
pub async fn read_dc_data(data: &Data, wipe: bool) {
|
pub async fn read_dc_data(data: &Data, wipe: bool) {
|
||||||
@@ -181,6 +182,25 @@ pub async fn dc_bind_bk(data: &Data, server_id: u64, channel_id: u64) -> Result<
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
pub async fn bind_wwrps(data: &Data, server_id: u64, channel_id: u64) -> Result<(), ()> {
|
||||||
|
let mut dc_data_lock = data.discord_data.lock().await;
|
||||||
|
let dc_data = dc_data_lock.as_mut().unwrap();
|
||||||
|
|
||||||
|
if dc_data.get("servers").is_none() { return Err(()); }
|
||||||
|
|
||||||
|
let servers = dc_data["servers"].as_object_mut().unwrap();
|
||||||
|
|
||||||
|
if !servers.contains_key(&server_id.to_string())
|
||||||
|
{ return Err(()); }
|
||||||
|
|
||||||
|
let server = servers[&server_id.to_string()].as_object_mut().unwrap();
|
||||||
|
|
||||||
|
server.insert(DC_WWRPS_CHANNEL_KEY.to_string(), channel_id.into());
|
||||||
|
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
pub async fn dc_contains_server(data: &Data, server_id: u64) -> bool {
|
pub async fn dc_contains_server(data: &Data, server_id: u64) -> bool {
|
||||||
let dc_data_lock = data.discord_data.lock().await;
|
let dc_data_lock = data.discord_data.lock().await;
|
||||||
let dc_data = dc_data_lock.as_ref().unwrap();
|
let dc_data = dc_data_lock.as_ref().unwrap();
|
||||||
|
|||||||
@@ -1,16 +1,6 @@
|
|||||||
use crate::{data::dc_add_server, lang, messages::send_msg, Context, Error};
|
use crate::{data::dc_add_server, lang, messages::send_msg, Context, Error};
|
||||||
|
|
||||||
|
|
||||||
#[poise::command(
|
|
||||||
slash_command,
|
|
||||||
prefix_command,
|
|
||||||
rename = "add_server",
|
|
||||||
category = "db",
|
|
||||||
default_member_permissions = "ADMINISTRATOR",
|
|
||||||
guild_only,
|
|
||||||
required_bot_permissions = "SEND_MESSAGES | VIEW_CHANNEL"
|
|
||||||
)]
|
|
||||||
/// Add your server to my database so I can sell it! (/s), I only store some minimal data the bot needs.
|
|
||||||
pub async fn cmd(
|
pub async fn cmd(
|
||||||
ctx: Context<'_>
|
ctx: Context<'_>
|
||||||
) -> Result<(), Error>
|
) -> Result<(), Error>
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
use crate::{Context, Error, db_cmds::{add_server, reddit_channel, wwrps_channel}};
|
||||||
|
|
||||||
|
|
||||||
|
#[derive(poise::ChoiceParameter, PartialEq)]
|
||||||
|
pub enum Subcommands {
|
||||||
|
AddServer,
|
||||||
|
RedditChannel,
|
||||||
|
WWRPSChannel
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#[poise::command(
|
||||||
|
slash_command,
|
||||||
|
prefix_command,
|
||||||
|
category = "db",
|
||||||
|
rename = "database",
|
||||||
|
owners_only,
|
||||||
|
default_member_permissions = "ADMINISTRATOR",
|
||||||
|
required_bot_permissions = "SEND_MESSAGES | VIEW_CHANNEL"
|
||||||
|
)]
|
||||||
|
/// Various debug utilities
|
||||||
|
pub async fn cmd(
|
||||||
|
ctx: Context<'_>,
|
||||||
|
#[description = "Subcommand"] subcommand: Subcommands,
|
||||||
|
) -> Result<(), Error>
|
||||||
|
{
|
||||||
|
match subcommand {
|
||||||
|
Subcommands::AddServer => add_server::cmd(ctx).await?,
|
||||||
|
Subcommands::RedditChannel => reddit_channel::cmd(ctx).await?,
|
||||||
|
Subcommands::WWRPSChannel => wwrps_channel::cmd(ctx).await?,
|
||||||
|
//_ => return Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
@@ -1,15 +1,5 @@
|
|||||||
use crate::{data::dc_bind_bk, lang, messages::send_msg, Context, Error};
|
use crate::{data::dc_bind_bk, lang, messages::send_msg, Context, Error};
|
||||||
|
|
||||||
#[poise::command(
|
|
||||||
slash_command,
|
|
||||||
prefix_command,
|
|
||||||
rename = "admin_re_bindchannel",
|
|
||||||
category = "db",
|
|
||||||
default_member_permissions = "ADMINISTRATOR",
|
|
||||||
guild_only,
|
|
||||||
required_bot_permissions = "SEND_MESSAGES | VIEW_CHANNEL"
|
|
||||||
)]
|
|
||||||
/// Sets the channel where the bot will dump all Reddit data upon using /re_updateDiscord.
|
|
||||||
pub async fn cmd(
|
pub async fn cmd(
|
||||||
ctx: Context<'_>
|
ctx: Context<'_>
|
||||||
) -> Result<(), Error>
|
) -> Result<(), Error>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
use crate::{Context, Error, data::bind_wwrps, lang, messages::send_msg};
|
||||||
|
|
||||||
|
pub async fn cmd(
|
||||||
|
ctx: Context<'_>
|
||||||
|
) -> Result<(), Error>
|
||||||
|
{
|
||||||
|
let c_id = ctx.channel_id().into();
|
||||||
|
let r = bind_wwrps(ctx.data(), ctx.guild_id().unwrap().into(), c_id).await;
|
||||||
|
|
||||||
|
if r.is_ok() {
|
||||||
|
send_msg(ctx, lang!("dc_msg_bound_channel", c_id), true, true).await;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
send_msg(ctx, lang!("dc_msg_data_server_404"), true, true).await;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
+2
-3
@@ -6,7 +6,7 @@ use poise::serenity_prelude::Client;
|
|||||||
use toml::Value;
|
use toml::Value;
|
||||||
|
|
||||||
use crate::data::get_toml_mutex;
|
use crate::data::get_toml_mutex;
|
||||||
use crate::{Args, Cmd, Data, cmds, data, debug_cmds, events, re_cmds, rs_println};
|
use crate::{Args, Cmd, Data, cmds, data, db_cmds, debug_cmds, events, re_cmds, rs_println};
|
||||||
|
|
||||||
|
|
||||||
pub async fn gen_data(args: Args, owners: Vec<u64>) -> Data {
|
pub async fn gen_data(args: Args, owners: Vec<u64>) -> Data {
|
||||||
@@ -100,8 +100,7 @@ async fn make_cmd_vec(data: &Data) -> Vec<Cmd> {
|
|||||||
cmds::send::cmd(),
|
cmds::send::cmd(),
|
||||||
debug_cmds::main_cmd::cmd(),
|
debug_cmds::main_cmd::cmd(),
|
||||||
// DATABASE
|
// DATABASE
|
||||||
re_cmds::admin_bind::cmd(),
|
db_cmds::main_cmd::cmd()
|
||||||
cmds::add_server::cmd(),
|
|
||||||
];
|
];
|
||||||
let cfg = get_toml_mutex(&data.cfg).await.unwrap();
|
let cfg = get_toml_mutex(&data.cfg).await.unwrap();
|
||||||
|
|
||||||
|
|||||||
+6
-2
@@ -3,7 +3,6 @@
|
|||||||
#![allow(static_mut_refs)]
|
#![allow(static_mut_refs)]
|
||||||
|
|
||||||
mod cmds {
|
mod cmds {
|
||||||
pub mod add_server;
|
|
||||||
pub mod eight_ball;
|
pub mod eight_ball;
|
||||||
pub mod embed;
|
pub mod embed;
|
||||||
pub mod help;
|
pub mod help;
|
||||||
@@ -11,7 +10,6 @@ mod cmds {
|
|||||||
}
|
}
|
||||||
mod re_cmds {
|
mod re_cmds {
|
||||||
pub mod add;
|
pub mod add;
|
||||||
pub mod admin_bind;
|
|
||||||
pub mod approve;
|
pub mod approve;
|
||||||
pub mod generic_fns;
|
pub mod generic_fns;
|
||||||
pub mod get;
|
pub mod get;
|
||||||
@@ -31,6 +29,12 @@ mod debug_cmds {
|
|||||||
pub mod view_guilds;
|
pub mod view_guilds;
|
||||||
pub mod whoami;
|
pub mod whoami;
|
||||||
}
|
}
|
||||||
|
mod db_cmds {
|
||||||
|
pub mod add_server;
|
||||||
|
pub mod reddit_channel;
|
||||||
|
pub mod main_cmd;
|
||||||
|
pub mod wwrps_channel;
|
||||||
|
}
|
||||||
mod events;
|
mod events;
|
||||||
mod messages;
|
mod messages;
|
||||||
mod python;
|
mod python;
|
||||||
|
|||||||
Reference in New Issue
Block a user