added /bk_week_remove command
This commit is contained in:
@@ -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
|
||||
|
||||
+24
-3
@@ -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,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;
|
||||
}
|
||||
|
||||
let r = websocket::send_cmd_json("set_approve_post", json!([approve, &url])).await;
|
||||
if let Some(v) = r.unwrap().get("value") {
|
||||
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
@@ -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()
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user