core: only send voice messages without acceptance (#1444)

* core: only send voice messages without acceptance

* remove some unnecessary changes

* update

* refactor receiveInlineMode
This commit is contained in:
Evgeny Poberezkin
2022-11-26 22:39:56 +00:00
committed by GitHub
parent ade8c97b16
commit 7f0355ec67
9 changed files with 98 additions and 58 deletions
+5 -2
View File
@@ -81,7 +81,8 @@ data InlineFilesConfig = InlineFilesConfig
{ offerChunks :: Integer,
sendChunks :: Integer,
totalSendChunks :: Integer,
receiveChunks :: Integer
receiveChunks :: Integer,
receiveInstant :: Bool
}
defaultInlineFilesConfig :: InlineFilesConfig
@@ -90,7 +91,8 @@ defaultInlineFilesConfig =
{ offerChunks = 15, -- max when chunks are offered / received with the option - limited to 255 on the encoding level
sendChunks = 6, -- max per file when chunks will be sent inline without acceptance
totalSendChunks = 30, -- max per conversation when chunks will be sent inline without acceptance
receiveChunks = 8 -- max when chunks are accepted
receiveChunks = 8, -- max when chunks are accepted
receiveInstant = True -- allow receiving instant files, within receiveChunks limit
}
data ActiveTo = ActiveNone | ActiveC ContactName | ActiveG GroupName
@@ -534,6 +536,7 @@ data ChatErrorType
| CEFileImageType {filePath :: FilePath}
| CEFileImageSize {filePath :: FilePath}
| CEFileNotReceived {fileId :: FileTransferId}
| CEFileLargeSentInline {fileId :: FileTransferId}
| CEInvalidQuote
| CEInvalidChatItemUpdate
| CEInvalidChatItemDelete
+1
View File
@@ -129,6 +129,7 @@ mobileChatOpts =
chatCmd = "",
chatCmdDelay = 3,
chatServerPort = Nothing,
allowInstantFiles = True,
maintenance = True
}
+8
View File
@@ -34,6 +34,7 @@ data ChatOpts = ChatOpts
chatCmd :: String,
chatCmdDelay :: Int,
chatServerPort :: Maybe String,
allowInstantFiles :: Bool,
maintenance :: Bool
}
@@ -126,6 +127,12 @@ chatOpts appDir defaultDbFileName = do
<> help "Run chat server on specified port"
<> value Nothing
)
allowInstantFiles <-
switch
( long "--allow-instant-files"
<> short 'f'
<> help "Send and receive instant files without acceptance"
)
maintenance <-
switch
( long "maintenance"
@@ -144,6 +151,7 @@ chatOpts appDir defaultDbFileName = do
chatCmd,
chatCmdDelay,
chatServerPort,
allowInstantFiles,
maintenance
}
where
+6
View File
@@ -265,6 +265,7 @@ cmToQuotedMsg = \case
_ -> Nothing
data MsgContentTag = MCText_ | MCLink_ | MCImage_ | MCVoice_ | MCFile_ | MCUnknown_ Text
deriving (Eq)
instance StrEncoding MsgContentTag where
strEncode = \case
@@ -341,6 +342,11 @@ durationText duration =
| n <= 9 = '0' : show n
| otherwise = show n
isVoice :: MsgContent -> Bool
isVoice = \case
MCVoice {} -> True
_ -> False
msgContentTag :: MsgContent -> MsgContentTag
msgContentTag = \case
MCText _ -> MCText_
+1
View File
@@ -1083,6 +1083,7 @@ viewChatError = \case
CEFileImageType _ -> ["image type must be jpg, send as a file using " <> highlight' "/f"]
CEFileImageSize _ -> ["max image size: " <> sShow maxImageSize <> " bytes, resize it or send as a file using " <> highlight' "/f"]
CEFileNotReceived fileId -> ["file " <> sShow fileId <> " not received"]
CEFileLargeSentInline _ -> ["A small file sent without acceptance - you can enable receiving such files automatically with -f option."]
CEInvalidQuote -> ["cannot reply to this message"]
CEInvalidChatItemUpdate -> ["cannot update this item"]
CEInvalidChatItemDelete -> ["cannot delete this item"]