added /bk_week_remove command

This commit is contained in:
2025-02-13 18:21:06 +01:00
parent 2a10508534
commit 7f0a1cd476
6 changed files with 45 additions and 10 deletions
+3 -3
View File
@@ -9,12 +9,12 @@
- [ ] Manually add posts - [ ] Manually add posts
- [ ] via `u/[bot] add` - [ ] via `u/[bot] add`
<!-- - [x] ~~via `/bk_week_add [url]`~~ --> <!-- - [x] ~~via `/bk_week_add [url]`~~ -->
- [ ] Manually remove posts via `/bk_week_remove [url]` <!-- - [x] ~~Manually remove posts via `/bk_week_remove [url]`~~ -->
<!-- - [x] ~~Manually approve posts via `/bk_week_approve [url]`~~ --> <!-- - [x] ~~Manually approve posts via `/bk_week_approve [url]`~~ -->
- [ ] Manually un-approve posts via `/bk_week_disapprove [url]` <!-- - [x] ~~Manually un-approve posts via `/bk_week_disapprove [url]`~~ -->
<!-- - [x] ~~Automatically add scraped posts to JSON~~ --> <!-- - [x] ~~Automatically add scraped posts to JSON~~ -->
- [ ] Automatically remove posts older than 7 days from JSON - [ ] Automatically remove posts older than 7 days from JSON
<!-- - [x] ~~Function~~ --> - [x] ~~Function~~
- [ ] Automate - [ ] Automate
- [ ] Automatically approve posts that dont get caught by reverse image search (ris) - [ ] Automatically approve posts that dont get caught by reverse image search (ris)
- [ ] Log all posts in a Discord thread - [ ] Log all posts in a Discord thread
+24 -3
View File
@@ -1,3 +1,4 @@
use crate::websocket::send_cmd_json;
use crate::{rs_println, websocket, Context, Error, BK_WEEK}; use crate::{rs_println, websocket, Context, Error, BK_WEEK};
use crate::messages::{send_embed, send_msg, EmbedOptions}; use crate::messages::{send_embed, send_msg, EmbedOptions};
use crate::data; use crate::data;
@@ -135,7 +136,7 @@ async fn send_post_removed_message(ctx: Context<'_>, url: &str, rm_by: &str) {
send_msg( send_msg(
ctx, ctx,
format!( format!(
r#"Post URL \"<{}>\" is removed: Post is removed from the data! (Removed by: {}) r#"Post URL \"<{}>\" is removed: Post is removed from the data! (Removed by: `{}`)
Hint: Run the command `/bk_week_add [URL]` in a Discord channel or `u/ByteDiceAssistant bk_week_add` in a Reddit post."#, Hint: Run the command `/bk_week_add [URL]` in a Discord channel or `u/ByteDiceAssistant bk_week_add` in a Reddit post."#,
url, rm_by url, rm_by
).trim().to_string(), ).trim().to_string(),
@@ -219,6 +220,21 @@ pub async fn bk_week_remove(
#[description = "The post URL"] url: String #[description = "The post URL"] url: String
) -> Result<(), Error> ) -> Result<(), Error>
{ {
let auth = &ctx.author().name;
let r = send_cmd_json("remove_post_url", json!([&url, &auth])).await.unwrap();
if r["value"].as_bool().unwrap() {
send_msg(
ctx,
format!("Successfully flagged URL \"{}\" as `\"removed\": true` and `\"removed_by\": \"{}\"`", url, auth),
true,
true
).await;
}
else {
send_post_not_found_message(ctx, &url).await;
}
return Ok(()); return Ok(());
} }
@@ -246,10 +262,15 @@ async fn approve_cmd(ctx: Context<'_>, url: &str, reddit_data: &Value, approve:
send_post_removed_message(ctx, &url, post.get("removed_by").unwrap().as_str().unwrap()).await; send_post_removed_message(ctx, &url, post.get("removed_by").unwrap().as_str().unwrap()).await;
} }
let r = websocket::send_cmd_json("set_approve_post", json!([approve, &url])).await; let r = websocket::send_cmd_json("set_approve_post", json!([approve, &url])).await.unwrap();
if let Some(v) = r.unwrap().get("value") { if let Some(v) = r.get("value") {
if approve {
send_msg(ctx, format!("Successfully flagged URL \"<{}>\" as `approved:by_human`!", &url), true, true).await; send_msg(ctx, format!("Successfully flagged URL \"<{}>\" as `approved:by_human`!", &url), true, true).await;
} }
else {
send_msg(ctx, format!("Successfully removed flag `approved:by_human` from URL \"<{}>\"!", &url), true, true).await;
}
}
else { else {
send_msg(ctx, format!("Unknown error!\nError trace: `bk_week_cmds.rs -> bk_week_approve() -> unwrap websocket result error`."), true, true).await; send_msg(ctx, format!("Unknown error!\nError trace: `bk_week_cmds.rs -> bk_week_approve() -> unwrap websocket result error`."), true, true).await;
} }
+2 -2
View File
@@ -146,9 +146,9 @@ async fn gen_bot(data: Data) -> Client {
bk_week_cmds::bk_week_help(), bk_week_cmds::bk_week_help(),
bk_week_cmds::bk_week_get(), bk_week_cmds::bk_week_get(),
bk_week_cmds::bk_week_add(), bk_week_cmds::bk_week_add(),
//bk_week_cmds::bk_week_remove(), bk_week_cmds::bk_week_remove(),
bk_week_cmds::bk_week_approve(), bk_week_cmds::bk_week_approve(),
//bk_week_cmds::bk_week_disapprove() bk_week_cmds::bk_week_disapprove()
], ],
event_handler: events::event_handler, event_handler: events::event_handler,
..Default::default() ..Default::default()
+8
View File
@@ -125,3 +125,11 @@ def set_approve_post(bot: botPy.Bot, approved: bool, url: str) -> bool:
return True return True
return False return False
def remove_post(bot: botPy.Bot, url: str, removed_by: str = "UNKNOWN") -> bool:
if url in bot.data[BK_WEEKLY]:
bot.data[BK_WEEKLY][url] = { "removed": True, "removed_by": removed_by }
return True
else:
return False
+1
View File
@@ -65,6 +65,7 @@ async def json_to_func(v: dict, bot: botPy.Bot) -> dict:
match v["value"]: match v["value"]:
case "update_data_file": result = result_json(data.write_data(bot)) case "update_data_file": result = result_json(data.write_data(bot))
case "add_post_url": result = result_json(await posts.add_post_url(bot, *v["args"])) case "add_post_url": result = result_json(await posts.add_post_url(bot, *v["args"]))
case "remove_post_url": result = result_json(data.remove_post(bot, *v["args"]))
case "set_approve_post": result = result_json(data.set_approve_post(bot, *v["args"])) case "set_approve_post": result = result_json(data.set_approve_post(bot, *v["args"]))
case "stop_praw": result = result_json(await bot.stop()) case "stop_praw": result = result_json(await bot.stop())
case _: value_supported = False case _: value_supported = False
+5
View File
@@ -62,6 +62,11 @@ pub async fn send_cmd_json(func_name: &str, func_args: Value) -> Option<Value> {
let r = receive_response().await; let r = receive_response().await;
rs_println!("Received from Python: [RESPONSE] {:?}", r); rs_println!("Received from Python: [RESPONSE] {:?}", r);
if r.is_none() {
rs_println!("--- Response from Python is None!");
}
return r; return r;
} }
} }