From 136ab5e06d02d02fa2e4e6d788aee3b02bd88f99 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Tue, 29 Dec 2015 12:45:41 -0500 Subject: [PATCH] Invite registered jid when SMS creates a room --- Main.hs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Main.hs b/Main.hs index 128a5c5..ce48bec 100644 --- a/Main.hs +++ b/Main.hs @@ -625,13 +625,18 @@ componentStanza _ toVitelity toComponent _ (ReceivedIQ (IQ { iqType = IQResult, | Just tel <- strNode <$> jidNode to, fromString "CHEOGRAMCREATE%" `T.isPrefixOf` id = do writeStanzaChan toVitelity $ mkSMS tel (mconcat [fromString "* You have created ", bareTxt from]) - queryDisco toComponent from to + forM_ (parseJID $ bareTxt to <> fromString "/create") $ + queryDisco toComponent from componentStanza db _ toComponent componentHost (ReceivedIQ (IQ { iqType = IQResult, iqTo = Just to, iqFrom = Just from, iqPayload = Just p })) - | [query] <- isNamed (fromString "{http://jabber.org/protocol/disco#info}query") p = do + | Just tel <- strNode <$> jidNode to, + [query] <- isNamed (fromString "{http://jabber.org/protocol/disco#info}query") p = do let vars = mapMaybe (attributeText (fromString "var")) $ isNamed (fromString "{http://jabber.org/protocol/disco#info}feature") =<< elementChildren query let muc_membersonly = fromEnum $ fromString "muc_membersonly" `elem` vars True <- TC.runTCM $ TC.put db (T.unpack (formatJID from) <> "\0muc_membersonly") muc_membersonly + when (fmap strResource (jidResource to) == Just (fromString "create")) $ do + regJid <- tcGetJID db tel "registered" + forM_ regJid $ \jid -> forM_ (parseJID $ bareTxt to) $ \to -> sendInvite db toComponent jid (Invite from to Nothing Nothing) joinStartupTels db toComponent componentHost from to componentStanza _ _ toComponent _ (ReceivedIQ (iq@IQ { iqType = typ })) | typ `elem` [IQGet, IQSet] = -- 2.38.4