From a8faaef54e3c4f697458fd877dc0ac6506e83718 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Wed, 12 Jan 2022 17:37:46 +0000 Subject: [PATCH] team user address, remove onboarding --- src/Simplex/Chat.hs | 22 ++++++++-------------- src/Simplex/Chat/Help.hs | 38 ++++++++++---------------------------- src/Simplex/Chat/Store.hs | 16 ---------------- src/Simplex/Chat/Types.hs | 8 -------- 4 files changed, 18 insertions(+), 66 deletions(-) diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index 049d8783d9..4e4d1e41bc 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -78,8 +78,7 @@ data ChatCommand | Welcome | AddContact | Connect (Maybe AConnectionRequestUri) - | -- | ConnectAdmin - SendAdminWelcome ContactName + | ConnectAdmin | DeleteContact ContactName | ListContacts | CreateMyAddress @@ -154,7 +153,7 @@ newChatController config@ChatConfig {agentConfig = cfg, dbPoolSize, tbqSize} Cha runSimplexChat :: ChatController -> IO () runSimplexChat = runReaderT $ do user <- readTVarIO =<< asks currentUser - whenM (asks firstTime) . printToView . chatWelcome user $ Onboarding 0 0 0 0 0 + whenM (asks firstTime) . printToView $ chatWelcome user race_ runTerminalInput runChatController runChatController :: (MonadUnliftIO m, MonadReader ChatController m, MonadFail m) => m () @@ -188,7 +187,6 @@ inputSubscriber = do SendGroupMessage g msg -> showSentGroupMessage g msg SendFile c f -> showSentFileInvitation c f SendGroupFile g f -> showSentGroupFileInvitation g f - SendAdminWelcome c -> forM_ adminWelcomeMessages $ showSentMessage c _ -> printToView [plain s] user <- readTVarIO =<< asks currentUser withAgentLock a . withLock l . void . runExceptT $ @@ -201,9 +199,7 @@ processChatCommand user@User {userId, profile} = \case GroupsHelp -> printToView groupsHelpInfo MyAddressHelp -> printToView myAddressHelpInfo MarkdownHelp -> printToView markdownInfo - Welcome -> do - ob <- withStore (`getOnboarding` userId) - printToView $ chatWelcome user ob + Welcome -> printToView $ chatWelcome user AddContact -> do (connId, cReq) <- withAgent (`createConnection` SCMInvitation) withStore $ \st -> createDirectConnection st userId connId @@ -211,8 +207,7 @@ processChatCommand user@User {userId, profile} = \case Connect (Just (ACR SCMInvitation cReq)) -> connect cReq (XInfo profile) >> showSentConfirmation Connect (Just (ACR SCMContact cReq)) -> connect cReq (XContact profile Nothing) >> showSentInvitation Connect Nothing -> showInvalidConnReq - -- ConnectAdmin -> connect adminContactReq (XContact profile Nothing) >> showSentInvitation - SendAdminWelcome cName -> forM_ adminWelcomeMessages $ sendMessageCmd cName + ConnectAdmin -> connect adminContactReq (XContact profile Nothing) >> showSentInvitation DeleteContact cName -> withStore (\st -> getContactGroupNames st userId cName) >>= \case [] -> do @@ -1286,8 +1281,7 @@ chatCommandP = <|> ("/freceive " <|> "/fr ") *> (ReceiveFile <$> A.decimal <*> optional (A.space *> filePath)) <|> ("/fcancel " <|> "/fc ") *> (CancelFile <$> A.decimal) <|> ("/fstatus " <|> "/fs ") *> (FileStatus <$> A.decimal) - <|> "/admin_welcome " *> (SendAdminWelcome <$> displayName) - -- <|> "/admin" $> ConnectAdmin + <|> "/simplex" $> ConnectAdmin <|> ("/address" <|> "/ad") $> CreateMyAddress <|> ("/delete_address" <|> "/da") $> DeleteMyAddress <|> ("/show_address" <|> "/sa") $> ShowMyAddress @@ -1320,6 +1314,6 @@ chatCommandP = <|> (" member" $> GRMember) <|> pure GRAdmin --- adminContactReq :: ConnReqContact --- adminContactReq = --- either error id $ parseAll connReqP' "https://simplex.chat/contact#/?smp=smp%3A%2F%2Fnxc7HnrnM8dOKgkMp008ub_9o9LXJlxlMrMpR-mfMQw%3D%40smp3.simplex.im%2F-TXnePw5eH5-4L7B%23&e2e=rsa%3AMIIBoDANBgkqhkiG9w0BAQEFAAOCAY0AMIIBiAKCAQEA6vpcsZggnYL38Qa2G5YU0W5uqnV8WAq_S3flIFU2kx4qW-aokVT8fo0CLJXv9aagdHObFfhc9SXcZPcm4T2NLnafKTgQa_HYFfj764l6cHkbSI-4JBE1gyhtaapsvrDGIdoiGDLgsF3AJVjqs8gavkuTsmw035aWMH-pkpc4qGlEWpNWp1Nn-7O4sdIIQ7yN48jsdCfeIY-BIk3kFR6s4oQOgiOcnir8e3x5tTuRMX1KWSiuzuqLHqgmcI1IqcPJPrBoTQLbXXEMGG1RsvIudxR03jejXXbQvlxXlNNrxwkniEe-P0rApGuCyv2NRMb4n0Wd3ZwewH7X-xtr16XNbQKBgDouGUHD1C55jB-w8W8VJRhFZS2xIYka9gJH1jjCFxHFzgjo69A_sObIamND1pF_JOzj_XCoA1fDICF95XbfS0rq9iS6xvX6M8Muq8QiJsfD5bRt5nh-Y3GK5rAFXS0ZtyOeh07iMLAMJ_EFxBQuKKDRu9_9KAvLL_plU0PuaMH3" +adminContactReq :: ConnReqContact +adminContactReq = + either error id $ strDecode "https://simplex.chat/contact#/?v=1&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FK1rslx-m5bpXVIdMZg9NLUZ_8JBm8xTt%23MCowBQYDK2VuAyEALDeVe-sG8mRY22LsXlPgiwTNs9dbiLrNuA7f3ZMAJ2w%3D" diff --git a/src/Simplex/Chat/Help.hs b/src/Simplex/Chat/Help.hs index cd729ff9fd..bf17b1b1fa 100644 --- a/src/Simplex/Chat/Help.hs +++ b/src/Simplex/Chat/Help.hs @@ -3,7 +3,6 @@ module Simplex.Chat.Help ( chatWelcome, - adminWelcomeMessages, chatHelpInfo, filesHelpInfo, groupsHelpInfo, @@ -12,13 +11,12 @@ module Simplex.Chat.Help ) where -import Data.ByteString (ByteString) import Data.List (intersperse) import Data.Text (Text) import qualified Data.Text as T import Simplex.Chat.Markdown import Simplex.Chat.Styled -import Simplex.Chat.Types (Onboarding (..), Profile (..), User (..)) +import Simplex.Chat.Types (Profile (..), User (..)) import System.Console.ANSI.Types highlight :: Text -> Markdown @@ -33,8 +31,8 @@ indent = " " listHighlight :: [Text] -> Markdown listHighlight = mconcat . intersperse ", " . map highlight -chatWelcome :: User -> Onboarding -> [StyledString] -chatWelcome user Onboarding {contactsCount, createdGroups, membersCount, filesSentCount, addressCount} = +chatWelcome :: User -> [StyledString] +chatWelcome user = map styleMarkdown [ " __ __", @@ -46,37 +44,21 @@ chatWelcome user Onboarding {contactsCount, createdGroups, membersCount, filesSe "Welcome " <> green userName <> "!", "Thank you for installing SimpleX Chat!", "", - "We have created several groups that you can join to play with SimpleX Chat:", - highlight "#simplex" <> " (SimpleX Engineers 💻) - technical questions about running or contributing to SimpleX Chat", - highlight "#hacks" <> " (Ethical Hacking 🔓) - chatting about privacy, security, announced vulnerabilities etc.", + "We have a couple of groups that you can join to play with SimpleX Chat:", + highlight "#termux" <> " (Android Termux 📱) - chatting about using SimpleX Chat on Android devices", highlight "#music" <> " (Music 🎸) - favorite music of our team and users", - highlight "#rand" <> " (Random 😇) - anything interesting, just keep it decent and friendly please :)", "", - "Connect to our groups admin to be added to these groups - " <> highlight "/admin", + "Connect to SimpleX Chat team to be added to these groups - type " <> highlight "/simplex", "", - "To continue:", - "[" <> check (contactsCount >= 2) <> "] " <> highlight "/connect" <> " with 2 friends - " <> highlight "/help" <> " for instructions", - "[" <> check (createdGroups >= 1 && membersCount >= 2) <> "] create a " <> highlight "/group" <> " with them - " <> highlight "/g #friends", - "[" <> check (filesSentCount >= 1) <> "] send " <> highlight "/file" <> ", e.g. your photo, to the group - " <> highlight "/f #friends ./photo.jpg", - "[" <> check (addressCount >= 1) <> "] create your optional chat " <> highlight "/address" <> " and share it with your friends - " <> highlight "/ad", + "Follow our updates:", + "> Reddit: https://www.reddit.com/r/SimpleXChat/", + "> Twitter: https://twitter.com/SimpleXChat", "", - "To help us build SimpleX Chat:", - "> star GitHub repo: https://github.com/simplex-chat/simplex-chat", - "> join Reddit group: https://www.reddit.com/r/SimpleXChat/", - "", - "To show this message again - " <> highlight "/welcome" <> " (or " <> highlight "/w" <> ")" + "Type " <> highlight "/help" <> " for usage info, " <> highlight "/welcome" <> " to show this message" ] where User {profile = Profile {displayName, fullName}} = user userName = if T.null fullName then displayName else fullName - check c = if c then green "*" else " " - -adminWelcomeMessages :: [ByteString] -adminWelcomeMessages = - [ "Hello - and welcome to SimpleX Chat!", - "Which community groups you'd like to join:", - "!5 #simplex!, !5 #hacks!, !5 #music! or !5 #rand!" - ] chatHelpInfo :: [StyledString] chatHelpInfo = diff --git a/src/Simplex/Chat/Store.hs b/src/Simplex/Chat/Store.hs index 6b3ff2ba6c..8efad9c137 100644 --- a/src/Simplex/Chat/Store.hs +++ b/src/Simplex/Chat/Store.hs @@ -90,7 +90,6 @@ module Simplex.Chat.Store deleteRcvFileChunks, getFileTransfer, getFileTransferProgress, - getOnboarding, createNewMessage, createSndMsgDelivery, createNewMessageAndRcvMsgDelivery, @@ -1625,21 +1624,6 @@ getSndFileTransfers_ db userId fileId = Just recipientDisplayName -> Right SndFileTransfer {..} Nothing -> Left $ SESndFileInvalid fileId -getOnboarding :: MonadUnliftIO m => SQLiteStore -> UserId -> m Onboarding -getOnboarding st userId = - liftIO . withTransaction st $ \db -> do - contactsCount <- intQuery db "SELECT COUNT(contact_id) FROM contacts WHERE user_id = ? AND is_user = 0" - createdGroups <- headOrZero <$> DB.query db "SELECT COUNT(g.group_id) FROM groups g JOIN group_members m WHERE g.user_id = ? AND m.member_status = ?" (userId, GSMemCreator) - membersCount <- headOrZero <$> DB.query db "SELECT COUNT(group_member_id) FROM group_members WHERE user_id = ? AND (member_status = ? OR member_status = ?)" (userId, GSMemConnected, GSMemComplete) - filesSentCount <- intQuery db "SELECT COUNT(s.file_id) FROM snd_files s JOIN files f USING (file_id) WHERE f.user_id = ?" - addressCount <- intQuery db "SELECT COUNT(user_contact_link_id) FROM user_contact_links WHERE user_id = ?" - pure $ Onboarding {..} - where - intQuery :: DB.Connection -> DB.Query -> IO Int - intQuery db q = headOrZero <$> DB.query db q (Only userId) - headOrZero [] = 0 - headOrZero (n : _) = fromOnly n - createNewMessage :: MonadUnliftIO m => SQLiteStore -> NewMessage -> m MessageId createNewMessage st newMsg = liftIO . withTransaction st $ \db -> diff --git a/src/Simplex/Chat/Types.hs b/src/Simplex/Chat/Types.hs index 3bb540132c..386fa732b6 100644 --- a/src/Simplex/Chat/Types.hs +++ b/src/Simplex/Chat/Types.hs @@ -624,14 +624,6 @@ serializeIntroStatus = \case GMIntroToConnected -> "to-con" GMIntroConnected -> "con" -data Onboarding = Onboarding - { contactsCount :: Int, - createdGroups :: Int, - membersCount :: Int, - filesSentCount :: Int, - addressCount :: Int - } - data NewMessage = NewMessage { direction :: MsgDirection, chatMsgEventType :: Text,