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
- [ ] via `u/[bot] add`
<!-- - [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]`~~ -->
- [ ] 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~~ -->
- [ ] Automatically remove posts older than 7 days from JSON
<!-- - [x] ~~Function~~ -->
- [x] ~~Function~~
- [ ] Automate
- [ ] Automatically approve posts that dont get caught by reverse image search (ris)
- [ ] Log all posts in a Discord thread
+25 -4
View File
@@ -1,3 +1,4 @@
use crate::websocket::send_cmd_json;
use crate::{rs_println, websocket, Context, Error, BK_WEEK};
use crate::messages::{send_embed, send_msg, EmbedOptions};
use crate::data;
@@ -135,7 +136,7 @@ async fn send_post_removed_message(ctx: Context<'_>, url: &str, rm_by: &str) {
send_msg(
ctx,
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."#,
url, rm_by
).trim().to_string(),
@@ -219,6 +220,21 @@ pub async fn bk_week_remove(
#[description = "The post URL"] url: String
) -> 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(());
}
@@ -246,9 +262,14 @@ 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;
}
let r = websocket::send_cmd_json("set_approve_post", json!([approve, &url])).await;
if let Some(v) = r.unwrap().get("value") {
send_msg(ctx, format!("Successfully flagged URL \"<{}>\" as `approved:by_human`!", &url), true, true).await;
let r = websocket::send_cmd_json("set_approve_post", json!([approve, &url])).await.unwrap();
if let Some(v) = r.get("value") {
if approve {
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 {
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_get(),
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_disapprove()
bk_week_cmds::bk_week_disapprove()
],
event_handler: events::event_handler,
..Default::default()
+8
View File
@@ -125,3 +125,11 @@ def set_approve_post(bot: botPy.Bot, approved: bool, url: str) -> bool:
return True
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"]:
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 "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 "stop_praw": result = result_json(await bot.stop())
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;
rs_println!("Received from Python: [RESPONSE] {:?}", r);
if r.is_none() {
rs_println!("--- Response from Python is None!");
}
return r;
}
}