From adaa1e856c04d7af17f444bde5c5ab19d77ec717 Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Sat, 28 Mar 2020 17:28:49 +0300 Subject: [PATCH] chat: add ChatId.is_self_talk() and ChatId.is_device_talk() --- src/chat.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/chat.rs b/src/chat.rs index f219e47d8..657f4d7af 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -359,6 +359,25 @@ impl ChatId { .unwrap_or_default() as usize } + pub(crate) fn get_param(self, context: &Context) -> Result { + let res: Option = context + .sql + .query_get_value_result::<_, _>("SELECT param FROM chats WHERE id=?", params![self])?; + Ok(res + .map(|s| s.parse().unwrap_or_default()) + .unwrap_or_default()) + } + + // Returns true if chat is a saved messages chat. + pub fn is_self_talk(self, context: &Context) -> Result { + Ok(self.get_param(context)?.exists(Param::Selftalk)) + } + + /// Returns true if chat is a device chat. + pub fn is_device_talk(self, context: &Context) -> Result { + Ok(self.get_param(context)?.exists(Param::Devicetalk)) + } + /// Bad evil escape hatch. /// /// Avoid using this, eventually types should be cleaned up enough