From 97427b2f49daa9d86661ad999d4da17ac7a4acb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sun, 17 Jul 2022 22:29:22 +0200 Subject: Contacts using Set sructure --- src/Main.hs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/Main.hs') diff --git a/src/Main.hs b/src/Main.hs index d764fe0..295a486 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -15,6 +15,7 @@ import qualified Data.ByteString.Lazy as BL import Data.Char import Data.List import Data.Maybe +import Data.Ord import qualified Data.Text as T import qualified Data.Text.IO as T import Data.Time.LocalTime @@ -35,6 +36,7 @@ import Message import Network import PubKey import Service +import Set import State import Storage import Storage.Merge @@ -313,11 +315,14 @@ cmdContacts :: Command cmdContacts = do args <- words <$> asks ciLine ehead <- asks ciHead - let contacts = toContactList $ lookupSharedValue $ lsShared $ headObject ehead + let contacts = fromSetBy (comparing contactName) $ lookupSharedValue $ lsShared $ headObject ehead verbose = "-v" `elem` args forM_ (zip [1..] contacts) $ \(i :: Int, c) -> do - liftIO $ putStrLn $ show i ++ ": " ++ T.unpack (displayIdentity $ contactIdentity c) ++ - (if verbose then " " ++ (unwords $ map (BC.unpack . showRef . storedRef) $ idDataF $ contactIdentity c) else "") + liftIO $ putStrLn $ concat + [ show i, ": ", T.unpack $ contactName c + , case contactIdentity c of Nothing -> ""; Just idt -> " (" ++ T.unpack (displayIdentity idt) ++ ")" + , if verbose then " " ++ (unwords $ map (BC.unpack . showRef . storedRef) $ maybe [] idDataF $ contactIdentity c) else "" + ] cmdContactAdd :: Command cmdContactAdd = join $ contactRequest -- cgit v1.2.3