diff --git a/src/database/database.rs b/src/database/database.rs index b4e6c68..f68cd1b 100644 --- a/src/database/database.rs +++ b/src/database/database.rs @@ -13,11 +13,15 @@ impl Database { } pub async fn get_user_config(&mut self, user_id: u64) -> redis::RedisResult> { - let config: String = self.client.get_connection().unwrap().get(format!("discord_user:{}", user_id)).unwrap_or_default(); + if let Ok(connection) = self.client.get_connection() { + let config: String = connection.get(format!("discord_user:{}", user_id)).unwrap_or_default(); - match serde_json::from_str(&config) { - Ok(config) => Ok(Some(config)), - Err(_) => Ok(None) + match serde_json::from_str(&config) { + Ok(config) => Ok(Some(config)), + Err(_) => Ok(None) + } + } else { + Ok(None) } } diff --git a/src/events/voice_state_update.rs b/src/events/voice_state_update.rs index 5a0ecf7..a9e5656 100644 --- a/src/events/voice_state_update.rs +++ b/src/events/voice_state_update.rs @@ -8,6 +8,9 @@ pub async fn voice_state_update( old: Option, new: VoiceState, ) { + if new.member.unwrap().user.bot { + return; + } let guild_id = guild_id.unwrap(); let storage_lock = { diff --git a/src/implement/message.rs b/src/implement/message.rs index 227b35a..c467bb7 100644 --- a/src/implement/message.rs +++ b/src/implement/message.rs @@ -19,7 +19,7 @@ use crate::{ impl TTSMessage for Message { async fn parse(&self, instance: &mut TTSInstance, _: &Context) -> String { let text = validator::remove_url(self.content.clone()); - let res = if let Some(before_message) = &instance.before_message { + let mut res = if let Some(before_message) = &instance.before_message { if before_message.author.id == self.author.id { text.clone() } else { @@ -41,6 +41,10 @@ impl TTSMessage for Message { format!("{}さんの発言{}", name, text) }; + if self.attachments.len() > 0 { + res = format!("{}{}個の添付ファイル", res, self.attachments.len()); + } + instance.before_message = Some(self.clone()); res