made all buttons work! Now just QA and bugfixing before merging to main and publishing!
This commit is contained in:
+41
-9
@@ -1,6 +1,6 @@
|
|||||||
use crate::data::{get_mutex_data, update_re_data};
|
use crate::data::{get_mutex_data, update_re_data};
|
||||||
use crate::messages::{make_post_embed, make_removed_embed, EmbedOptions};
|
use crate::messages::{make_post_embed, make_removed_embed, EmbedOptions};
|
||||||
use crate::re_cmds::generic_fns::{is_bk_mod_serenity, serenity_edit_msg_embed, serenity_send_msg};
|
use crate::re_cmds::generic_fns::{is_bk_mod, is_bk_mod_serenity, serenity_edit_msg_embed, serenity_send_msg};
|
||||||
use crate::websocket::send_cmd_json;
|
use crate::websocket::send_cmd_json;
|
||||||
use crate::{lang, rs_println, Data, Error, CFG_DATA_RE};
|
use crate::{lang, rs_println, Data, Error, CFG_DATA_RE};
|
||||||
|
|
||||||
@@ -55,11 +55,11 @@ async fn handle_buttons(ctx: &serenity::Context, data: &Data, interaction: &Inte
|
|||||||
|
|
||||||
return match component.data.custom_id.as_str() {
|
return match component.data.custom_id.as_str() {
|
||||||
"approve_btn" => approve_btn(ctx, data, &component.member.as_ref().unwrap(), component, url, true).await,
|
"approve_btn" => approve_btn(ctx, data, &component.member.as_ref().unwrap(), component, url, true).await,
|
||||||
"remove_btn" => remove_btn(ctx, data, &component.member.as_ref().unwrap(), component, url, true).await,
|
"remove_btn" => remove_btn (ctx, data, &component.member.as_ref().unwrap(), component, url, true).await,
|
||||||
"unapprove_btn" => approve_btn(ctx, data, &component.member.as_ref().unwrap(), component, url, false).await,
|
"unapprove_btn" => approve_btn(ctx, data, &component.member.as_ref().unwrap(), component, url, false).await,
|
||||||
"unremove_btn" => remove_btn(ctx, data, &component.member.as_ref().unwrap(), component, url, false).await,
|
"unremove_btn" => remove_btn (ctx, data, &component.member.as_ref().unwrap(), component, url, false).await,
|
||||||
"unvote_btn" => Ok(()),
|
"unvote_btn" => vote_btn (ctx, data, &component.member.as_ref().unwrap(), component, url, false).await,
|
||||||
"vote_btn" => Ok(()),
|
"vote_btn" => vote_btn (ctx, data, &component.member.as_ref().unwrap(), component, url, true).await,
|
||||||
_ => Err("Message button with that ID isn't handled.".into())
|
_ => Err("Message button with that ID isn't handled.".into())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -78,12 +78,12 @@ async fn approve_btn(ctx: &serenity::Context, data: &Data, c_member: &Member, co
|
|||||||
let new_data = &get_mutex_data(&data.reddit_data).await.unwrap()[CFG_DATA_RE][&url];
|
let new_data = &get_mutex_data(&data.reddit_data).await.unwrap()[CFG_DATA_RE][&url];
|
||||||
let e = make_post_embed(new_data, &url, true);
|
let e = make_post_embed(new_data, &url, true);
|
||||||
|
|
||||||
|
serenity_edit_msg_embed(ctx, &c_id, &m_id, e).await;
|
||||||
|
|
||||||
if approve {
|
if approve {
|
||||||
serenity_edit_msg_embed(ctx, &c_id, &m_id, e).await;
|
|
||||||
serenity_send_msg(ctx, component, lang!("dc_msg_re_post_approve_success"), true).await;
|
serenity_send_msg(ctx, component, lang!("dc_msg_re_post_approve_success"), true).await;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
serenity_edit_msg_embed(ctx, &c_id, &m_id, e).await;
|
|
||||||
serenity_send_msg(ctx, component, lang!("dc_msg_re_post_disapprove_success"), true).await;
|
serenity_send_msg(ctx, component, lang!("dc_msg_re_post_disapprove_success"), true).await;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -114,15 +114,47 @@ async fn remove_btn(ctx: &serenity::Context, data: &Data, c_member: &Member, com
|
|||||||
if remove { e = make_removed_embed(new_data, &url, true); }
|
if remove { e = make_removed_embed(new_data, &url, true); }
|
||||||
else { e = make_post_embed (new_data, &url, true); }
|
else { e = make_post_embed (new_data, &url, true); }
|
||||||
|
|
||||||
|
serenity_edit_msg_embed(ctx, &c_id, &m_id, e).await;
|
||||||
|
|
||||||
if remove {
|
if remove {
|
||||||
serenity_edit_msg_embed(ctx, &c_id, &m_id, e).await;
|
|
||||||
serenity_send_msg(ctx, component, lang!("dc_msg_re_post_remove_success", &url), true).await;
|
serenity_send_msg(ctx, component, lang!("dc_msg_re_post_remove_success", &url), true).await;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
serenity_edit_msg_embed(ctx, &c_id, &m_id, e).await;
|
|
||||||
serenity_send_msg(ctx, component, lang!("dc_msg_re_post_unremove_success", &url), true).await;
|
serenity_send_msg(ctx, component, lang!("dc_msg_re_post_unremove_success", &url), true).await;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async fn vote_btn(ctx: &serenity::Context, data: &Data, c_member: &Member, component: &ComponentInteraction, url: String, vote: bool) -> Result<(), Error> {
|
||||||
|
let uid: u64 = c_member.user.id.into();
|
||||||
|
let is_mod = is_bk_mod(data.bk_mods.clone(), uid);
|
||||||
|
|
||||||
|
let r = send_cmd_json("set_vote_post", Some(json!([&url, uid, is_mod, true, !vote])), true).await.unwrap();
|
||||||
|
|
||||||
|
let c_id = component.channel_id;
|
||||||
|
let m_id = component.message.id;
|
||||||
|
|
||||||
|
if r["value"].as_bool().unwrap() {
|
||||||
|
update_re_data(data).await;
|
||||||
|
let new_data = &get_mutex_data(&data.reddit_data).await.unwrap()[CFG_DATA_RE][&url];
|
||||||
|
let e = make_post_embed(new_data, &url, true);
|
||||||
|
|
||||||
|
serenity_edit_msg_embed(ctx, &c_id, &m_id, e).await;
|
||||||
|
|
||||||
|
if vote {
|
||||||
|
if is_mod { serenity_send_msg(ctx, component, lang!("dc_msg_re_vote_mod_success"), true).await; }
|
||||||
|
else { serenity_send_msg(ctx, component, lang!("dc_msg_re_vote_success"), true).await; }
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
serenity_send_msg(ctx, component, lang!("dc_msg_re_vote_remove_success"), true).await;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if !vote { serenity_send_msg(ctx, component, lang!("dc_msg_re_vote_remove_havent"), true).await; }
|
||||||
|
}
|
||||||
|
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
+5
-5
@@ -207,8 +207,8 @@ def set_vote_post(
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
votes = bot.data[botPy.RE_DATA_POSTS][url]["votes"]
|
votes = bot.data[botPy.RE_DATA_POSTS][url]["votes"]
|
||||||
re_voters: set[str] = set(votes["voters_re"])
|
re_voters: set[str] = set(votes["voters_re"])
|
||||||
dc_voters: set[int] = set(votes["voters_dc"])
|
dc_voters: set[int] = set(votes["voters_dc"])
|
||||||
mod_voters: set[int] = set(votes["mod_voters"])
|
mod_voters: set[int] = set(votes["mod_voters"])
|
||||||
|
|
||||||
target_voters = mod_voters if mod_vote else (dc_voters if from_dc else re_voters)
|
target_voters = mod_voters if mod_vote else (dc_voters if from_dc else re_voters)
|
||||||
@@ -222,9 +222,9 @@ def set_vote_post(
|
|||||||
if user in target_voters:
|
if user in target_voters:
|
||||||
return False
|
return False
|
||||||
target_voters.add(user)
|
target_voters.add(user)
|
||||||
|
|
||||||
bot.data[botPy.RE_DATA_POSTS][url]["votes"]["voters_re"] = list(re_voters)
|
bot.data[botPy.RE_DATA_POSTS][url]["votes"]["voters_re"] = list(re_voters)
|
||||||
bot.data[botPy.RE_DATA_POSTS][url]["votes"]["voters_dc"] = list(dc_voters)
|
bot.data[botPy.RE_DATA_POSTS][url]["votes"]["voters_dc"] = list(dc_voters)
|
||||||
bot.data[botPy.RE_DATA_POSTS][url]["votes"]["mod_voters"] = list(mod_voters)
|
bot.data[botPy.RE_DATA_POSTS][url]["votes"]["mod_voters"] = list(mod_voters)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|||||||
Reference in New Issue
Block a user