diff --git a/.envrc b/.envrc index 5d8b0dd..7189e29 100644 --- a/.envrc +++ b/.envrc @@ -1,4 +1,4 @@ use flake -export DISCORD_TOKEN_FILE=./token -export DB_FILE=db.sqlite +export DISCORD_TOKEN_FILE=./token-prod +export DB_FILE=db-prod.sqlite diff --git a/src/main.rs b/src/main.rs index bb34489..5bc833f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -use std::{future::Future, io, path::Path}; +use std::{io, path::Path}; use ::serenity::all::{ChannelId, GuildId, Mentionable, UserId}; use eyre::{Context as _, Error, OptionExt, Result}; @@ -107,19 +107,21 @@ async fn channel_children( } #[tracing::instrument] -fn move_users<'a>( +async fn move_users<'a>( ctx: Context<'a>, guild: GuildId, users: Vec<(ChannelId, UserId)>, -) -> impl Future> + Send + 'a { - futures::stream::iter(users.into_iter().map(move |(channel, user)| async move { - tracing::info!(?channel, ?user, "Moving user"); - guild.move_member(ctx, user, channel).await?; - tracing::info!(?channel, ?user, "Moved user"); - Ok(()) - })) - .buffer_unordered(10) - .try_collect::<()>() +) -> Result<()> { + futures::stream::iter(users.into_iter()) + .map(Ok::<_, eyre::Error>) + .try_for_each_concurrent(10, move |(channel, user)| async move { + tracing::info!(?channel, ?user, "Moving user"); + guild.move_member(ctx, user, channel).await?; + tracing::info!(?channel, ?user, "Moved user"); + Ok(()) + }) + .await?; + Ok(()) } #[tracing::instrument] @@ -321,7 +323,9 @@ async fn currently_playing(ctx: Context<'_>, player: Option) - let guild = ctx .guild_id() .ok_or_eyre("This bot only works in servers")?; - let GuildData { currently_playing, .. } = ctx.data().get(guild).await?; + let GuildData { + currently_playing, .. + } = ctx.data().get(guild).await?; let member = guild .member(&ctx, player.unwrap_or(ctx.author().id)) @@ -336,7 +340,12 @@ async fn currently_playing(ctx: Context<'_>, player: Option) - }; ctx.reply(if player.is_some() { - format!("{} is {} {}", member.mention(), msg, currently_playing.mention()) + format!( + "{} is {} {}", + member.mention(), + msg, + currently_playing.mention() + ) } else { format!("You are {} {}", msg, currently_playing.mention()) })