summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/Main.hs17
1 files changed, 17 insertions, 0 deletions
diff --git a/main/Main.hs b/main/Main.hs
index d7d42aa..a876d7b 100644
--- a/main/Main.hs
+++ b/main/Main.hs
@@ -621,6 +621,7 @@ commands =
, ( "contact-accept", cmdContactAccept )
, ( "contact-reject", cmdContactReject )
, ( "conversations", cmdConversations )
+ , ( "new", cmdNew )
, ( "details", cmdDetails )
, ( "discovery", cmdDiscovery )
, ( "join", cmdJoin )
@@ -959,6 +960,22 @@ cmdConversations = do
forM_ (zip [1..] conversations) $ \(i :: Int, conv) -> do
cmdPutStrLn $ "[" ++ show i ++ "] " ++ T.unpack (conversationName conv)
+cmdNew :: Command
+cmdNew = do
+ conversations <- mapMaybe checkNew <$> lookupConversations
+ set <- asks ciSetContextOptions
+ set WatchConversations $ map (SelectedConversation . fst) conversations
+ tzone <- liftIO $ getCurrentTimeZone
+ forM_ (zip [1..] conversations) $ \(i :: Int, ( conv, msg )) -> do
+ cmdPutStrLn $ "[" ++ show i ++ "] " ++ T.unpack (conversationName conv) ++ " " ++ formatMessage tzone msg
+ where
+ checkNew conv
+ | (msg : _) <- conversationHistory conv
+ , messageUnread msg
+ = Just ( conv, msg )
+ checkNew _ = Nothing
+
+
cmdDetails :: Command
cmdDetails = do
getSelectedOrManualContext >>= \case