@@ 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 []