core: option to run client as chat relay; cli api to get, set relays (#6407)

This commit is contained in:
spaced4ndy
2025-10-27 12:29:38 +00:00
committed by GitHub
parent 79bdc03529
commit 5ddc454049
14 changed files with 240 additions and 61 deletions
+5 -6
View File
@@ -24,7 +24,6 @@ import Data.Function (on)
import Data.Int (Int64)
import Data.List (groupBy, intercalate, intersperse, sortOn)
import Data.List.NonEmpty (NonEmpty (..))
import qualified Data.List.NonEmpty as L
import Data.Map.Strict (Map)
import qualified Data.Map.Strict as M
import Data.Maybe (fromMaybe, isJust, isNothing, mapMaybe)
@@ -1506,14 +1505,14 @@ viewUserServers UserOperatorServers {operator, smpServers, xftpServers, chatRela
viewChatRelays [] = []
viewChatRelays cRelays
| maybe True (\ServerOperator {enabled} -> enabled) operator =
["Chat relays"] <> map (plain . (" " <>) . viewChatRelay) cRelays
[" Chat relays"] <> map (plain . (" " <>) . viewChatRelay) cRelays
| otherwise = []
where
viewChatRelay UserChatRelay {name, address, preset, tested, enabled} = name <> chatrelayAddress <> chatrelayInfo
viewChatRelay UserChatRelay {name, address, preset, tested, enabled} = name <> relayAddress <> relayInfo
where
chatrelayAddress = "(" <> safeDecodeUtf8 (strEncode address) <> ")"
chatrelayInfo = if null chatrelayInfo_ then "" else parens $ T.intercalate ", " chatrelayInfo_
chatrelayInfo_ = ["preset" | preset] <> testedInfo <> ["disabled" | not enabled]
relayAddress = ": " <> safeDecodeUtf8 (strEncode address)
relayInfo = if null relayInfo_ then "" else parens $ T.intercalate ", " relayInfo_
relayInfo_ = ["preset" | preset] <> testedInfo <> ["disabled" | not enabled]
testedInfo = maybe [] (\t -> ["test: " <> if t then "passed" else "failed"]) tested
serversUserHelp :: [StyledString]