From d58ed30a8f4e8065dca0c198d8c3d9110feafd14 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Sat, 18 Mar 2023 11:21:38 -0500 Subject: [PATCH] It's not a group text unless there are at least two --- Main.hs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Main.hs b/Main.hs index 36c90ca..33398ee 100644 --- a/Main.hs +++ b/Main.hs @@ -755,8 +755,8 @@ componentStanza (ComponentContext { db, componentJid, sendIQ, maybeAvatar }) (Re messageFrom = Just to, messagePayloads = [payload] })) . avatarMetadata) (justZ maybeAvatar) -componentStanza (ComponentContext { db, smsJid = (Just smsJid), componentJid }) (ReceivedPresence (Presence { presenceType = PresenceSubscribe, presenceFrom = Just from, presenceTo = Just to@JID { jidNode = Just _ } })) = do - stanzas <- routeDiscoOrReply db componentJid from smsJid "CHEOGRAM%query-then-send-presence" Nothing $ telAvailable to from [] +componentStanza _ (ReceivedPresence (Presence { presenceType = PresenceSubscribe, presenceFrom = Just from, presenceTo = Just to@JID { jidNode = Just node } })) + | Just (_:_:_) <- mapM localpartToURI (T.split (==',') $ strNode node) = do return $ [ mkStanzaRec $ (emptyPresence PresenceSubscribed) { presenceTo = Just from, @@ -765,10 +765,11 @@ componentStanza (ComponentContext { db, smsJid = (Just smsJid), componentJid }) mkStanzaRec $ (emptyPresence PresenceSubscribe) { presenceTo = Just from, presenceFrom = Just to - } - ] ++ stanzas -componentStanza (ComponentContext { smsJid = Nothing }) (ReceivedPresence (Presence { presenceType = PresenceSubscribe, presenceFrom = Just from, presenceTo = Just to@JID { jidNode = Just node } })) - | Just _ <- mapM localpartToURI (T.split (==',') $ strNode node) = do + }, + mkStanzaRec $ telAvailable to from [] + ] +componentStanza (ComponentContext { db, smsJid = (Just smsJid), componentJid }) (ReceivedPresence (Presence { presenceType = PresenceSubscribe, presenceFrom = Just from, presenceTo = Just to@JID { jidNode = Just _ } })) = do + stanzas <- routeDiscoOrReply db componentJid from smsJid "CHEOGRAM%query-then-send-presence" Nothing $ telAvailable to from [] return $ [ mkStanzaRec $ (emptyPresence PresenceSubscribed) { presenceTo = Just from, @@ -777,9 +778,8 @@ componentStanza (ComponentContext { smsJid = Nothing }) (ReceivedPresence (Prese mkStanzaRec $ (emptyPresence PresenceSubscribe) { presenceTo = Just from, presenceFrom = Just to - }, - mkStanzaRec $ telAvailable to from [] - ] + } + ] ++ stanzas componentStanza (ComponentContext { db, componentJid, sendIQ, maybeAvatar }) (ReceivedPresence (Presence { presenceType = PresenceProbe, presenceFrom = Just from, presenceTo = Just to@JID { jidNode = Nothing } })) = do avail <- cheogramAvailable db componentJid sendIQ to from return $ @@ -790,7 +790,7 @@ componentStanza (ComponentContext { db, componentJid, sendIQ, maybeAvatar }) (Re messagePayloads = [payload] }) . avatarMetadata) (justZ maybeAvatar) componentStanza _ (ReceivedPresence (Presence { presenceType = PresenceProbe, presenceFrom = Just from, presenceTo = Just to@JID { jidNode = Just node } })) - | Just multipleTo <- mapM localpartToURI (T.split (==',') $ strNode node) = do + | Just (_:_:_) <- mapM localpartToURI (T.split (==',') $ strNode node) = do return $ [mkStanzaRec $ telAvailable to from []] componentStanza (ComponentContext { db, smsJid = (Just smsJid), componentJid }) (ReceivedPresence (Presence { presenceType = PresenceProbe, presenceFrom = Just from, presenceTo = Just to@JID { jidNode = Just _ } })) = do routeDiscoOrReply db componentJid from smsJid "CHEOGRAM%query-then-send-presence" Nothing $ telAvailable to from [] -- 2.38.5