fixed bugs when not using shorturl
This commit is contained in:
+5
-2
@@ -4,7 +4,7 @@ use std::path::Path;
|
|||||||
use serde_json::{self, Value, json};
|
use serde_json::{self, Value, json};
|
||||||
use tokio::sync::Mutex;
|
use tokio::sync::Mutex;
|
||||||
|
|
||||||
use crate::{errln, rs_println, Data, Error, CFG_DATA_RE, LANG, LANG_NAME};
|
use crate::{errln, rs_println, rs_warnln, Data, Error, CFG_DATA_RE, LANG, LANG_NAME};
|
||||||
use crate::websocket::send_cmd_json;
|
use crate::websocket::send_cmd_json;
|
||||||
|
|
||||||
|
|
||||||
@@ -94,7 +94,10 @@ fn generate_re_data() {
|
|||||||
let mut preset_json: Value = serde_json::from_str(&preset_str).unwrap();
|
let mut preset_json: Value = serde_json::from_str(&preset_str).unwrap();
|
||||||
|
|
||||||
if let Some(bk_week) = preset_json[CFG_DATA_RE].as_object_mut() {
|
if let Some(bk_week) = preset_json[CFG_DATA_RE].as_object_mut() {
|
||||||
bk_week.remove("EXAMPLE VALUE");
|
bk_week.remove("EXAMPLE URL");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
rs_warnln!("Couldn't find key \"{}\" in the Reddit data file ({})!", CFG_DATA_RE, DATA_PATH_RE);
|
||||||
}
|
}
|
||||||
|
|
||||||
let json_str = serde_json::to_string_pretty(&preset_json).unwrap();
|
let json_str = serde_json::to_string_pretty(&preset_json).unwrap();
|
||||||
|
|||||||
@@ -24,6 +24,19 @@ macro_rules! rs_errln {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#[macro_export]
|
||||||
|
macro_rules! rs_warnln {
|
||||||
|
($($arg:tt)*) => {
|
||||||
|
println!("{}WARNING{} RS - {}{}",
|
||||||
|
"\x1b[33m",
|
||||||
|
"\x1b[0m\x1b[31m",
|
||||||
|
format!($($arg)*),
|
||||||
|
"\x1b[0m"
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! errln {
|
macro_rules! errln {
|
||||||
($($arg:tt)*) => {
|
($($arg:tt)*) => {
|
||||||
@@ -37,6 +50,18 @@ macro_rules! errln {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#[macro_export]
|
||||||
|
macro_rules! warnln {
|
||||||
|
($($arg:tt)*) => {
|
||||||
|
println!("{}WARNING{} - {}",
|
||||||
|
"\x1b[33m",
|
||||||
|
"\x1b[0m",
|
||||||
|
format!($($arg)*)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! lang {
|
macro_rules! lang {
|
||||||
($key:expr) => {
|
($key:expr) => {
|
||||||
|
|||||||
+4
-2
@@ -58,5 +58,7 @@ async def main():
|
|||||||
|
|
||||||
await bot.stop()
|
await bot.stop()
|
||||||
|
|
||||||
|
try:
|
||||||
asyncio.run(main())
|
asyncio.run(main())
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
raise SystemExit
|
||||||
@@ -98,7 +98,7 @@ def read_data(bot: botPy.Bot) -> bool:
|
|||||||
with open(os.path.join(DEFAULT_PATH, "re_data_preset.json"), "r") as f:
|
with open(os.path.join(DEFAULT_PATH, "re_data_preset.json"), "r") as f:
|
||||||
data_preset_json: dict[str, Any] = json.load(f)
|
data_preset_json: dict[str, Any] = json.load(f)
|
||||||
|
|
||||||
data_preset_json[botPy.RE_DATA_POSTS].pop("EXAMPLE VALUE", None)
|
data_preset_json[botPy.RE_DATA_POSTS].pop("EXAMPLE URL", None)
|
||||||
|
|
||||||
with open(r_path, "w") as f:
|
with open(r_path, "w") as f:
|
||||||
json.dump(data_preset_json, f, indent = 2)
|
json.dump(data_preset_json, f, indent = 2)
|
||||||
|
|||||||
+3
-4
@@ -1,6 +1,6 @@
|
|||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
|
|
||||||
use crate::data::{get_mutex_data, update_re_data};
|
use crate::data::{get_mutex_data};
|
||||||
use crate::messages::send_msg;
|
use crate::messages::send_msg;
|
||||||
use crate::re_cmds::get::get_post_from_data;
|
use crate::re_cmds::get::get_post_from_data;
|
||||||
use crate::{data, websocket::send_cmd_json, Context, Error, CFG_DATA_RE};
|
use crate::{data, websocket::send_cmd_json, Context, Error, CFG_DATA_RE};
|
||||||
@@ -37,7 +37,7 @@ pub async fn cmd(
|
|||||||
send_msg(
|
send_msg(
|
||||||
ctx,
|
ctx,
|
||||||
r#"Unknown error!
|
r#"Unknown error!
|
||||||
Error trace: `bk_week_cmds.rs -> bk_week_add() -> Unknown error`.
|
Error trace: `re_cmds/add.rs -> cmd() -> Unknown error`.
|
||||||
Common reasons: The URL provided was likely invalid or 403: forbidden (e.g a private subreddit)."#.to_string(),
|
Common reasons: The URL provided was likely invalid or 403: forbidden (e.g a private subreddit)."#.to_string(),
|
||||||
true,
|
true,
|
||||||
true
|
true
|
||||||
@@ -55,8 +55,7 @@ pub async fn cmd(
|
|||||||
if a { send_msg(ctx, lang!("dc_msg_re_also_approved"), true, true).await; }
|
if a { send_msg(ctx, lang!("dc_msg_re_also_approved"), true, true).await; }
|
||||||
}
|
}
|
||||||
|
|
||||||
update_re_data(ctx.data()).await;
|
if let Some(post) = get_post_from_data(ctx, &reddit_data, &shorturl).await? {
|
||||||
if let Some(post) = get_post_from_data(ctx, &reddit_data, &url).await? {
|
|
||||||
send_embed_for_post(ctx, post, &url).await?;
|
send_embed_for_post(ctx, post, &url).await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
use serde_json::{json, Value};
|
use serde_json::{json, Value};
|
||||||
|
|
||||||
use crate::{data::{self, get_mutex_data}, lang, messages::send_msg, re_cmds::generic_fns::is_bk_mod_msg, websocket, Context, Error, CFG_DATA_RE};
|
use crate::{data::{self, get_mutex_data}, lang, messages::send_msg, re_cmds::generic_fns::{is_bk_mod_msg, to_shorturl}, websocket, Context, Error, CFG_DATA_RE};
|
||||||
|
|
||||||
use super::generic_fns::send_embed_for_removed;
|
use super::generic_fns::send_embed_for_removed;
|
||||||
|
|
||||||
@@ -20,10 +20,13 @@ pub async fn cmd(
|
|||||||
{
|
{
|
||||||
if !is_bk_mod_msg(ctx).await { return Ok(()); }
|
if !is_bk_mod_msg(ctx).await { return Ok(()); }
|
||||||
|
|
||||||
|
let shorturl_u = to_shorturl(&url);
|
||||||
|
let shorturl = &shorturl_u.unwrap_or(url.clone());
|
||||||
|
|
||||||
data::update_re_data(ctx.data()).await;
|
data::update_re_data(ctx.data()).await;
|
||||||
let reddit_data = get_mutex_data(&ctx.data().reddit_data).await?;
|
let reddit_data = get_mutex_data(&ctx.data().reddit_data).await?;
|
||||||
|
|
||||||
approve_cmd(ctx, &url, &reddit_data, !disapprove.unwrap_or(false)).await;
|
approve_cmd(ctx, &shorturl, &reddit_data, !disapprove.unwrap_or(false)).await;
|
||||||
|
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-3
@@ -1,6 +1,6 @@
|
|||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
|
||||||
use crate::{data::{self, get_mutex_data}, lang, messages::send_msg, re_cmds::generic_fns::send_embed_for_post, rs_println, Context, Error, CFG_DATA_RE};
|
use crate::{data::{self, get_mutex_data}, lang, messages::send_msg, re_cmds::generic_fns::{send_embed_for_post, to_shorturl}, rs_println, Context, Error, CFG_DATA_RE};
|
||||||
|
|
||||||
use super::generic_fns::send_embed_for_removed;
|
use super::generic_fns::send_embed_for_removed;
|
||||||
|
|
||||||
@@ -19,10 +19,13 @@ pub async fn cmd(
|
|||||||
{
|
{
|
||||||
data::update_re_data(ctx.data()).await;
|
data::update_re_data(ctx.data()).await;
|
||||||
|
|
||||||
|
let shorturl_u = to_shorturl(&url);
|
||||||
|
let shorturl = &shorturl_u.unwrap_or(url.clone());
|
||||||
|
|
||||||
let reddit_data = get_mutex_data(&ctx.data().reddit_data).await?;
|
let reddit_data = get_mutex_data(&ctx.data().reddit_data).await?;
|
||||||
|
|
||||||
if let Some(post) = get_post_from_data(ctx, &reddit_data, &url).await? {
|
if let Some(post) = get_post_from_data(ctx, &reddit_data, &shorturl).await? {
|
||||||
send_embed_for_post(ctx, post, &url).await?;
|
send_embed_for_post(ctx, post, &shorturl).await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Ok(());
|
return Ok(());
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
|
|
||||||
use crate::{data::{self, get_mutex_data}, lang, messages::send_msg, re_cmds::{generic_fns::{is_bk_mod_msg, send_embed_for_removed}, get::get_post_from_data}, websocket::send_cmd_json, Context, Error};
|
use crate::{data::{self, get_mutex_data}, lang, messages::send_msg, re_cmds::{generic_fns::{is_bk_mod_msg, send_embed_for_removed, to_shorturl}, get::get_post_from_data}, websocket::send_cmd_json, Context, Error};
|
||||||
|
|
||||||
#[poise::command(
|
#[poise::command(
|
||||||
slash_command,
|
slash_command,
|
||||||
@@ -18,27 +18,30 @@ pub async fn cmd(
|
|||||||
{
|
{
|
||||||
if !is_bk_mod_msg(ctx).await { return Ok(()); }
|
if !is_bk_mod_msg(ctx).await { return Ok(()); }
|
||||||
|
|
||||||
|
let shorturl_u = to_shorturl(&url);
|
||||||
|
let shorturl = &shorturl_u.unwrap_or(url.clone());
|
||||||
|
|
||||||
let auth = &ctx.author().name;
|
let auth = &ctx.author().name;
|
||||||
let r = send_cmd_json("remove_post_url", Some(json!([&url, &auth, &reason])), true).await.unwrap();
|
let r = send_cmd_json("remove_post_url", Some(json!([&shorturl, &auth, &reason])), true).await.unwrap();
|
||||||
|
|
||||||
if r["value"].as_bool().unwrap() {
|
if r["value"].as_bool().unwrap() {
|
||||||
send_msg(
|
send_msg(
|
||||||
ctx,
|
ctx,
|
||||||
lang!("dc_msg_re_post_remove_success", &url),
|
lang!("dc_msg_re_post_remove_success", &shorturl),
|
||||||
true,
|
true,
|
||||||
true
|
true
|
||||||
).await;
|
).await;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
send_msg(ctx, lang!("dc_msg_re_post_404"), false, false).await;
|
send_msg(ctx, lang!("dc_msg_re_post_404"), true, true).await;
|
||||||
}
|
}
|
||||||
|
|
||||||
data::update_re_data(ctx.data()).await;
|
data::update_re_data(ctx.data()).await;
|
||||||
let reddit_data = get_mutex_data(&ctx.data().reddit_data).await?;
|
let reddit_data = get_mutex_data(&ctx.data().reddit_data).await?;
|
||||||
|
|
||||||
if let Some(post) = get_post_from_data(ctx, &reddit_data, &url).await? {
|
if let Some(post) = get_post_from_data(ctx, &reddit_data, &shorturl).await? {
|
||||||
if post["removed"]["removed"].as_bool().unwrap() {
|
if post["removed"]["removed"].as_bool().unwrap() {
|
||||||
send_embed_for_removed(ctx, &url, &post).await;
|
send_embed_for_removed(ctx, &shorturl, &post).await;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+9
-6
@@ -1,6 +1,6 @@
|
|||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
|
|
||||||
use crate::{data::{self, get_mutex_data}, lang, messages::send_msg, re_cmds::generic_fns::{is_bk_mod, send_embed_for_removed}, websocket::send_cmd_json, Context, Error, CFG_DATA_RE};
|
use crate::{data::{self, get_mutex_data}, lang, messages::send_msg, re_cmds::generic_fns::{is_bk_mod, send_embed_for_removed, to_shorturl}, websocket::send_cmd_json, Context, Error, CFG_DATA_RE};
|
||||||
|
|
||||||
#[poise::command(
|
#[poise::command(
|
||||||
slash_command,
|
slash_command,
|
||||||
@@ -21,17 +21,20 @@ pub async fn cmd(
|
|||||||
let re_data = get_mutex_data(&ctx.data().reddit_data).await?;
|
let re_data = get_mutex_data(&ctx.data().reddit_data).await?;
|
||||||
let post_data = re_data[CFG_DATA_RE].clone();
|
let post_data = re_data[CFG_DATA_RE].clone();
|
||||||
let unw_vote = un_vote.unwrap_or(false);
|
let unw_vote = un_vote.unwrap_or(false);
|
||||||
|
|
||||||
|
let shorturl_u = to_shorturl(&url);
|
||||||
|
let shorturl = &shorturl_u.unwrap_or(url.clone());
|
||||||
|
|
||||||
if post_data.get(&url).is_none() {
|
if post_data.get(&shorturl).is_none() {
|
||||||
send_msg(ctx, lang!("dc_msg_re_post_404"), false, false).await;
|
send_msg(ctx, lang!("dc_msg_re_post_404"), false, false).await;
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
if post_data[&url]["removed"]["removed"].as_bool().unwrap() {
|
if post_data[&shorturl]["removed"]["removed"].as_bool().unwrap() {
|
||||||
send_embed_for_removed(ctx, &url, &post_data[&url]).await;
|
send_embed_for_removed(ctx, &shorturl, &post_data[&shorturl]).await;
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
let url_data = &post_data[&url];
|
let url_data = &post_data[&shorturl];
|
||||||
|
|
||||||
let is_mod = is_bk_mod(ctx.data().bk_mods.clone(), ctx.author().id.get());
|
let is_mod = is_bk_mod(ctx.data().bk_mods.clone(), ctx.author().id.get());
|
||||||
let voters_dc = url_data["votes"]["voters_dc"].as_array().unwrap();
|
let voters_dc = url_data["votes"]["voters_dc"].as_array().unwrap();
|
||||||
@@ -47,7 +50,7 @@ pub async fn cmd(
|
|||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
let r = send_cmd_json("set_vote_post", Some(json!([url, uid, is_mod, true, unw_vote])), true).await.unwrap();
|
let r = send_cmd_json("set_vote_post", Some(json!([shorturl, uid, is_mod, true, unw_vote])), true).await.unwrap();
|
||||||
let unw_r = r["value"].as_bool().unwrap();
|
let unw_r = r["value"].as_bool().unwrap();
|
||||||
|
|
||||||
if unw_r && !unw_vote && is_mod {
|
if unw_r && !unw_vote && is_mod {
|
||||||
|
|||||||
Reference in New Issue
Block a user