diff --git a/src/config.rs b/src/config.rs index f4dd1a9..07d80a3 100644 --- a/src/config.rs +++ b/src/config.rs @@ -176,7 +176,7 @@ impl UserSession { let relationships = db.fetch_relationships(self.user_id).await?; let dm_channels = db.fetch_all_dm_channels_for_user(self.user_id).await?; let unacked = db.fetch_unacked(self.user_id, &guilds).await?; - + Ok(OutboundMessage::Ready { session_id: self.id.clone(), user, @@ -184,8 +184,6 @@ impl UserSession { dm_channels, presences, relationships, - unacked, - inbox: vec![], }) } } diff --git a/src/main.rs b/src/main.rs index ed022f7..a61d7e4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -64,7 +64,9 @@ async fn main() { .expect("Failed to create global event exchange"); events::setup(con); - presence::reset_all().await.expect("failed to reset presence"); + presence::reset_all() + .await + .expect("failed to reset presence"); let listener = TcpListener::bind("0.0.0.0:8076") .await diff --git a/src/presence.rs b/src/presence.rs index 221c572..dda0d76 100644 --- a/src/presence.rs +++ b/src/presence.rs @@ -143,11 +143,8 @@ pub async fn update_presence(user_id: u64, status: PresenceStatus) -> Result<()> let key = format!("presence-{user_id}"); if status == PresenceStatus::Offline { - get_con() - .await? - .del(key) - .await?; - } else { + get_con().await?.del(key).await?; + } else { get_con() .await? .set(key, bincode::encode_to_vec(status, CONFIG)?) diff --git a/src/recv.rs b/src/recv.rs index 665517e..183009c 100644 --- a/src/recv.rs +++ b/src/recv.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use essence::{ws::OutboundMessage, models::Channel as EssenceChannel}; +use essence::{models::Channel as EssenceChannel, ws::OutboundMessage}; use flume::Sender; use futures_util::TryStreamExt; use lapin::{ @@ -19,17 +19,21 @@ enum HandleState { Break, } -async fn unsubscribe(channel: &Channel, session_id: impl AsRef, exchange: impl AsRef) -> Result { +async fn unsubscribe( + channel: &Channel, + session_id: impl AsRef, + exchange: impl AsRef, +) -> Result { channel - .queue_unbind( - session_id.as_ref(), - exchange.as_ref(), - "all", - FieldTable::default(), - ) - .await - .map(|_| HandleState::Continue) - .map_err(|e| e.into()) + .queue_unbind( + session_id.as_ref(), + exchange.as_ref(), + "all", + FieldTable::default(), + ) + .await + .map(|_| HandleState::Continue) + .map_err(|e| e.into()) } async fn handle( @@ -59,16 +63,26 @@ async fn handle( .await .map(|_| HandleState::Continue) } - OutboundMessage::GuildRemove { guild_id, .. } => unsubscribe(&channel, &session_id, guild_id.to_string()).await, + OutboundMessage::GuildRemove { guild_id, .. } => { + unsubscribe(&channel, &session_id, guild_id.to_string()).await + } OutboundMessage::ChannelCreate { channel: chan } => { if let EssenceChannel::Dm(chan) = chan { - upstream::subscribe(&channel, chan.id.to_string(), &session_id, ExchangeKind::Fanout).await - .map(|_| HandleState::Continue) + upstream::subscribe( + &channel, + chan.id.to_string(), + &session_id, + ExchangeKind::Fanout, + ) + .await + .map(|_| HandleState::Continue) } else { Ok(HandleState::Continue) } } - OutboundMessage::ChannelDelete { channel_id } => unsubscribe(&channel, &session_id, channel_id.to_string()).await, + OutboundMessage::ChannelDelete { channel_id } => { + unsubscribe(&channel, &session_id, channel_id.to_string()).await + } OutboundMessage::MessageCreate { message, .. } => { if hidden_channels.contains(&message.channel_id) { Ok(HandleState::Break) diff --git a/src/upstream.rs b/src/upstream.rs index 767fe0c..32777b7 100644 --- a/src/upstream.rs +++ b/src/upstream.rs @@ -6,7 +6,7 @@ use essence::{ models::Guild, }; use flume::Sender; -use futures_util::future::{JoinAll}; +use futures_util::future::JoinAll; use lapin::{ options::{BasicConsumeOptions, ExchangeDeclareOptions, QueueBindOptions, QueueDeclareOptions}, types::FieldTable, @@ -17,7 +17,7 @@ use tokio_tungstenite::tungstenite::Message; use crate::{ config::{HiddenChannels, MessageFormat}, - error::{Result}, + error::Result, recv, };