mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2024-12-17 17:20:21 +01:00
Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0d62d7ddfb | |||
| a78aeb47c5 | |||
| 94df5d47d1 | |||
| f9cba3f8e0 | |||
| 3655971aec | |||
| dea45e3228 | |||
| 4f2102ac6e | |||
| 17bcdaf6c4 | |||
| 1a2fad070e | |||
| 6101be5657 | |||
| a10dd81a1d | |||
| 289130832a | |||
| 224cfe9e02 | |||
| 0679d023e2 | |||
| 6d5869e974 | |||
| f0974af03a | |||
| da70aa30b6 |
+1
-1
@@ -12,7 +12,7 @@ constraints: zip +disable-bzip2 +disable-zstd
|
|||||||
source-repository-package
|
source-repository-package
|
||||||
type: git
|
type: git
|
||||||
location: https://github.com/simplex-chat/simplexmq.git
|
location: https://github.com/simplex-chat/simplexmq.git
|
||||||
tag: bd67844169d2206d8543c01e6ed966315115b0e3
|
tag: e2f4ffc9db8e3812cfaf12ded9904061fb330fd6
|
||||||
|
|
||||||
source-repository-package
|
source-repository-package
|
||||||
type: git
|
type: git
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"https://github.com/simplex-chat/simplexmq.git"."bd67844169d2206d8543c01e6ed966315115b0e3" = "1g218q15hrg21h8gyidavfys5zx8dzmxq7iwfm5bfaw71grpd7pn";
|
"https://github.com/simplex-chat/simplexmq.git"."e2f4ffc9db8e3812cfaf12ded9904061fb330fd6" = "0mvg8wn8brcw71fh0lsf39lypha2kfil443bq7gz6zhwl87vaz28";
|
||||||
"https://github.com/simplex-chat/hs-socks.git"."a30cc7a79a08d8108316094f8f2f82a0c5e1ac51" = "0yasvnr7g91k76mjkamvzab2kvlb1g5pspjyjn2fr6v83swjhj38";
|
"https://github.com/simplex-chat/hs-socks.git"."a30cc7a79a08d8108316094f8f2f82a0c5e1ac51" = "0yasvnr7g91k76mjkamvzab2kvlb1g5pspjyjn2fr6v83swjhj38";
|
||||||
"https://github.com/simplex-chat/direct-sqlcipher.git"."f814ee68b16a9447fbb467ccc8f29bdd3546bfd9" = "1ql13f4kfwkbaq7nygkxgw84213i0zm7c1a8hwvramayxl38dq5d";
|
"https://github.com/simplex-chat/direct-sqlcipher.git"."f814ee68b16a9447fbb467ccc8f29bdd3546bfd9" = "1ql13f4kfwkbaq7nygkxgw84213i0zm7c1a8hwvramayxl38dq5d";
|
||||||
"https://github.com/simplex-chat/sqlcipher-simple.git"."a46bd361a19376c5211f1058908fc0ae6bf42446" = "1z0r78d8f0812kxbgsm735qf6xx8lvaz27k1a0b4a2m0sshpd5gl";
|
"https://github.com/simplex-chat/sqlcipher-simple.git"."a46bd361a19376c5211f1058908fc0ae6bf42446" = "1z0r78d8f0812kxbgsm735qf6xx8lvaz27k1a0b4a2m0sshpd5gl";
|
||||||
|
|||||||
+2
-16
@@ -2233,20 +2233,7 @@ processChatCommand' vr = \case
|
|||||||
counts <- map (first decodeLatin1) <$> withAgent' getMsgCounts
|
counts <- map (first decodeLatin1) <$> withAgent' getMsgCounts
|
||||||
let allMsgs = foldl' (\(ts, ds) (_, (t, d)) -> (ts + t, ds + d)) (0, 0) counts
|
let allMsgs = foldl' (\(ts, ds) (_, (t, d)) -> (ts + t, ds + d)) (0, 0) counts
|
||||||
pure CRAgentMsgCounts {msgCounts = ("all", allMsgs) : sortOn (Down . snd) (filter (\(_, (_, d)) -> d /= 0) counts)}
|
pure CRAgentMsgCounts {msgCounts = ("all", allMsgs) : sortOn (Down . snd) (filter (\(_, (_, d)) -> d /= 0) counts)}
|
||||||
GetAgentSubs -> lift $ summary <$> withAgent' getAgentSubscriptions
|
GetAgentSubs diff -> withUser $ \User {userId} -> lift $ CRAgentSubs <$> withAgent' (\a -> getAgentSubscriptions a diff (Just userId))
|
||||||
where
|
|
||||||
summary SubscriptionsInfo {activeSubscriptions, pendingSubscriptions, removedSubscriptions} =
|
|
||||||
CRAgentSubs
|
|
||||||
{ activeSubs = foldl' countSubs M.empty activeSubscriptions,
|
|
||||||
pendingSubs = foldl' countSubs M.empty pendingSubscriptions,
|
|
||||||
removedSubs = foldl' accSubErrors M.empty removedSubscriptions
|
|
||||||
}
|
|
||||||
where
|
|
||||||
countSubs m SubInfo {server} = M.alter (Just . maybe 1 (+ 1)) server m
|
|
||||||
accSubErrors m = \case
|
|
||||||
SubInfo {server, subError = Just e} -> M.alter (Just . maybe [e] (e :)) server m
|
|
||||||
_ -> m
|
|
||||||
GetAgentSubsDetails -> lift $ CRAgentSubsDetails <$> withAgent' getAgentSubscriptions
|
|
||||||
-- CustomChatCommand is unsupported, it can be processed in preCmdHook
|
-- CustomChatCommand is unsupported, it can be processed in preCmdHook
|
||||||
-- in a modified CLI app or core - the hook should return Either ChatResponse ChatCommand
|
-- in a modified CLI app or core - the hook should return Either ChatResponse ChatCommand
|
||||||
CustomChatCommand _cmd -> withUser $ \user -> pure $ chatCmdError (Just user) "not supported"
|
CustomChatCommand _cmd -> withUser $ \user -> pure $ chatCmdError (Just user) "not supported"
|
||||||
@@ -7489,8 +7476,7 @@ chatCommandP =
|
|||||||
"/debug event " *> (DebugEvent <$> jsonP),
|
"/debug event " *> (DebugEvent <$> jsonP),
|
||||||
"/get stats" $> GetAgentStats,
|
"/get stats" $> GetAgentStats,
|
||||||
"/reset stats" $> ResetAgentStats,
|
"/reset stats" $> ResetAgentStats,
|
||||||
"/get subs" $> GetAgentSubs,
|
"/get subs" *> (GetAgentSubs <$> (" diff" $> True <|> pure False)),
|
||||||
"/get subs details" $> GetAgentSubsDetails,
|
|
||||||
"/get workers" $> GetAgentWorkers,
|
"/get workers" $> GetAgentWorkers,
|
||||||
"/get workers details" $> GetAgentWorkersDetails,
|
"/get workers details" $> GetAgentWorkersDetails,
|
||||||
"/get msgs" $> GetAgentMsgCounts,
|
"/get msgs" $> GetAgentMsgCounts,
|
||||||
|
|||||||
@@ -499,8 +499,7 @@ data ChatCommand
|
|||||||
| DebugEvent ChatResponse
|
| DebugEvent ChatResponse
|
||||||
| GetAgentStats
|
| GetAgentStats
|
||||||
| ResetAgentStats
|
| ResetAgentStats
|
||||||
| GetAgentSubs
|
| GetAgentSubs {diffOnly :: Bool}
|
||||||
| GetAgentSubsDetails
|
|
||||||
| GetAgentWorkers
|
| GetAgentWorkers
|
||||||
| GetAgentWorkersDetails
|
| GetAgentWorkersDetails
|
||||||
| GetAgentMsgCounts
|
| GetAgentMsgCounts
|
||||||
@@ -747,8 +746,7 @@ data ChatResponse
|
|||||||
| CRAgentStats {agentStats :: [[String]]}
|
| CRAgentStats {agentStats :: [[String]]}
|
||||||
| CRAgentWorkersDetails {agentWorkersDetails :: AgentWorkersDetails}
|
| CRAgentWorkersDetails {agentWorkersDetails :: AgentWorkersDetails}
|
||||||
| CRAgentWorkersSummary {agentWorkersSummary :: AgentWorkersSummary}
|
| CRAgentWorkersSummary {agentWorkersSummary :: AgentWorkersSummary}
|
||||||
| CRAgentSubs {activeSubs :: Map Text Int, pendingSubs :: Map Text Int, removedSubs :: Map Text [String]}
|
| CRAgentSubs {agentSubs :: SubscriptionsInfo}
|
||||||
| CRAgentSubsDetails {agentSubs :: SubscriptionsInfo}
|
|
||||||
| CRAgentMsgCounts {msgCounts :: [(Text, (Int, Int))]}
|
| CRAgentMsgCounts {msgCounts :: [(Text, (Int, Int))]}
|
||||||
| CRContactDisabled {user :: User, contact :: Contact}
|
| CRContactDisabled {user :: User, contact :: Contact}
|
||||||
| CRConnectionDisabled {connectionEntity :: ConnectionEntity}
|
| CRConnectionDisabled {connectionEntity :: ConnectionEntity}
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import Data.Int (Int64)
|
|||||||
import Data.List (groupBy, intercalate, intersperse, partition, sortOn)
|
import Data.List (groupBy, intercalate, intersperse, partition, sortOn)
|
||||||
import Data.List.NonEmpty (NonEmpty (..))
|
import Data.List.NonEmpty (NonEmpty (..))
|
||||||
import qualified Data.List.NonEmpty as L
|
import qualified Data.List.NonEmpty as L
|
||||||
import Data.Map.Strict (Map)
|
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
import Data.Maybe (fromMaybe, isJust, isNothing, mapMaybe)
|
import Data.Maybe (fromMaybe, isJust, isNothing, mapMaybe)
|
||||||
import Data.Text (Text)
|
import Data.Text (Text)
|
||||||
@@ -52,7 +51,7 @@ import Simplex.Chat.Types.Preferences
|
|||||||
import Simplex.Chat.Types.Shared
|
import Simplex.Chat.Types.Shared
|
||||||
import Simplex.Chat.Types.UITheme
|
import Simplex.Chat.Types.UITheme
|
||||||
import qualified Simplex.FileTransfer.Transport as XFTP
|
import qualified Simplex.FileTransfer.Transport as XFTP
|
||||||
import Simplex.Messaging.Agent.Client (ProtocolTestFailure (..), ProtocolTestStep (..), SubscriptionsInfo (..))
|
import Simplex.Messaging.Agent.Client (ActivePendingSubs (..), ProtocolTestFailure (..), ProtocolTestStep (..), SubInfo (..), SubscriptionsInfo (..))
|
||||||
import Simplex.Messaging.Agent.Env.SQLite (NetworkConfig (..))
|
import Simplex.Messaging.Agent.Env.SQLite (NetworkConfig (..))
|
||||||
import Simplex.Messaging.Agent.Protocol
|
import Simplex.Messaging.Agent.Protocol
|
||||||
import Simplex.Messaging.Agent.Store.SQLite.DB (SlowQueryStats (..))
|
import Simplex.Messaging.Agent.Store.SQLite.DB (SlowQueryStats (..))
|
||||||
@@ -358,18 +357,14 @@ responseToView hu@(currentRH, user_) ChatConfig {logLevel, showReactions, showRe
|
|||||||
plain $ "agent locks: " <> LB.unpack (J.encode agentLocks)
|
plain $ "agent locks: " <> LB.unpack (J.encode agentLocks)
|
||||||
]
|
]
|
||||||
CRAgentStats stats -> map (plain . intercalate ",") stats
|
CRAgentStats stats -> map (plain . intercalate ",") stats
|
||||||
CRAgentSubs {activeSubs, pendingSubs, removedSubs} ->
|
CRAgentSubs SubscriptionsInfo {summary, servers} -> "Subscriptions:" : activePending summary <> concatMap (uncurry byServer) (M.assocs servers)
|
||||||
[plain $ "Subscriptions: active = " <> show (sum activeSubs) <> ", pending = " <> show (sum pendingSubs) <> ", removed = " <> show (sum $ M.map length removedSubs)]
|
|
||||||
<> ("active subscriptions:" : listSubs activeSubs)
|
|
||||||
<> ("pending subscriptions:" : listSubs pendingSubs)
|
|
||||||
<> ("removed subscriptions:" : listSubs removedSubs)
|
|
||||||
where
|
where
|
||||||
listSubs :: Show a => Map Text a -> [StyledString]
|
byServer srv aps = plain srv : activePending aps
|
||||||
listSubs = map (\(srv, info) -> plain $ srv <> ": " <> tshow info) . M.assocs
|
activePending ActivePendingSubs {active_, pending_} =
|
||||||
CRAgentSubsDetails SubscriptionsInfo {activeSubscriptions, pendingSubscriptions, removedSubscriptions} ->
|
[ " active: " <> subInfo active_,
|
||||||
("active subscriptions:" : map sShow activeSubscriptions)
|
" pending: " <> subInfo pending_
|
||||||
<> ("pending subscriptions: " : map sShow pendingSubscriptions)
|
]
|
||||||
<> ("removed subscriptions: " : map sShow removedSubscriptions)
|
subInfo SubInfo {count, clientsMissing, clientsExtra} = sShow count <> " (clients: -" <> sShow clientsMissing <> " +" <> sShow clientsExtra <> ")"
|
||||||
CRAgentWorkersSummary {agentWorkersSummary} -> ["agent workers summary: " <> plain (LB.unpack $ J.encode agentWorkersSummary)]
|
CRAgentWorkersSummary {agentWorkersSummary} -> ["agent workers summary: " <> plain (LB.unpack $ J.encode agentWorkersSummary)]
|
||||||
CRAgentWorkersDetails {agentWorkersDetails} ->
|
CRAgentWorkersDetails {agentWorkersDetails} ->
|
||||||
[ "agent workers details:",
|
[ "agent workers details:",
|
||||||
|
|||||||
Reference in New Issue
Block a user