smol bot
Diffstat (limited to 'src/bot/mod.rs')
-rw-r--r--src/bot/mod.rs26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/bot/mod.rs b/src/bot/mod.rs
index d8dfdb3..cb26fc9 100644
--- a/src/bot/mod.rs
+++ b/src/bot/mod.rs
@@ -1,6 +1,6 @@
mod logic;
mod map;
-mod ownership;
+pub mod ownership;
mod schematic;
pub mod search;
@@ -154,7 +154,7 @@ pub async fn scour(c: Context<'_>, ch: ChannelId) -> Result<()> {
if let Ok(Some(mut x)) = schematic::from((&msg.content, &msg.attachments)).await {
x.schem.tags.insert("labels".into(), tags);
let who = msg.author_nick(c).await.unwrap_or(msg.author.name.clone());
- ownership::insert(msg.id.get(), (msg.author.name.clone(), msg.author.id.get()));
+ ownership::insert(msg.id.get(), (msg.author.name.clone(), msg.author.id.get())).await;
git::write(d, msg.id, x);
git::commit(&who, &format!("add {:x}.msch", msg.id.get()));
msg.react(c, emojis::get!(MERGE)).await?;
@@ -225,10 +225,6 @@ pub mod git {
path(dir, x).exists()
}
- pub fn whos(x: MessageId) -> String {
- ownership::get(x.get()).0
- }
-
pub fn remove(dir: &str, x: MessageId) {
assert!(std::process::Command::new("git")
.current_dir("repo")
@@ -309,7 +305,7 @@ impl Bot {
let m = c.http().get_message(*channel_id,* message_id).await?;
if let Ok(s) = git::schem(dir,*message_id) {
let who = nick.as_deref().unwrap_or(&user.name);
- let own = git::whos(*message_id);
+ let own = ownership::erase(message_id.get()).await.unwrap();
git::remove(dir, *message_id);
git::commit(who, &format!("remove {:x}.msch", message_id.get()));
git::push();
@@ -322,7 +318,6 @@ impl Bot {
.embed(CreateEmbed::new().color(RM)
.description(format!("https://discord.com/channels/925674713429184564/{channel_id}/{message_id} {} {} (added by {own}) (`{:x}`)", emojis::get!(DENY), emoji::mindustry::to_discord(&strip_colors(s.tags.get("name").unwrap())), message_id.get())))
).await;
- ownership::erase(message_id.get());
};
}
FullEvent::GuildCreate { guild ,..} => {
@@ -378,7 +373,7 @@ impl Bot {
}
if let Some(dir) = dir {
// add :)
- ownership::insert(m.id.get(), (m.author.name.clone(), m.author.id.get()));
+ ownership::insert(m.id.get(), (m.author.name.clone(), m.author.id.get())).await;
send(c,|x| x
.avatar_url(new_message.author.avatar_url().unwrap_or(CAT.to_string()))
.username(&who)
@@ -451,8 +446,7 @@ impl Bot {
} => {
if let Some(Ch{ d:dir,..}) = SPECIAL.get(&channel_id.get()) {
if let Ok(s) = git::schem(dir, *deleted_message_id) {
- ownership::erase(deleted_message_id.get());
- let own = git::whos(*deleted_message_id);
+ let own = ownership::erase(deleted_message_id.get()).await.unwrap();
git::remove(dir, *deleted_message_id);
git::commit("plent", &format!("remove {:x}", deleted_message_id.get()));
git::push();
@@ -639,7 +633,10 @@ pub async fn leaderboard(c: Context<'_>, channel: Option<ChannelId>, vds: bool)
search::dir(ch.get())
.unwrap()
.map(|y| {
- ownership::get(search::flake(y.file_name().unwrap().to_str().unwrap()).into()).1
+ pollster::block_on(ownership::get(
+ search::flake(y.file_name().unwrap().to_str().unwrap()).into(),
+ ))
+ .1
})
.filter(|x| vds || !VDS.contains(x))
.for_each(|x| *map.entry(x).or_default() += 1);
@@ -660,7 +657,10 @@ pub async fn leaderboard(c: Context<'_>, channel: Option<ChannelId>, vds: bool)
let mut map = std::collections::HashMap::new();
search::files()
.map(|(y, _)| {
- ownership::get(search::flake(y.file_name().unwrap().to_str().unwrap()).into()).1
+ pollster::block_on(ownership::get(
+ search::flake(y.file_name().unwrap().to_str().unwrap()).into(),
+ ))
+ .1
})
.filter(|x| vds || !VDS.contains(x))
.for_each(|x| *map.entry(x).or_default() += 1);