From 971d8cb3ba498cdd6ea965c415ad286f047e7af9 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Mon, 30 Nov 2015 10:59:45 -0500 Subject: [PATCH] Join/leave messages --- Main.hs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Main.hs b/Main.hs index d379615..b534bd8 100644 --- a/Main.hs +++ b/Main.hs @@ -275,6 +275,22 @@ componentStanza db toVitelity _ _ (ReceivedPresence p@(Presence { presenceType = when (existingRoom == Just from) $ do True <- TC.runTCM $ TC.out db $ tcKey tel "joined" writeStanzaChan toVitelity $ mkSMS tel (fromString "* You have left " <> bareTxt from) +componentStanza db toVitelity toComponent _ (ReceivedPresence p@(Presence { presenceType = typ, presenceFrom = Just from, presenceTo = Just to })) + | Just tel <- strNode <$> jidNode to = do + existingRoom <- tcGetJID db tel "joined" + when (fmap bareTxt existingRoom == Just (bareTxt from)) $ + writeStanzaChan toVitelity $ mkSMS tel $ mconcat [ + fromString "* ", + resourceFrom, + fromString " has ", + verb, + fromString " the group" + ] + where + resourceFrom = fromMaybe mempty (strResource <$> jidResource from) + verb + | typ == PresenceAvailable = fromString "joined" + | otherwise = fromString "left" componentStanza db _ toComponent _ (ReceivedPresence p@(Presence { presenceType = PresenceSubscribe, presenceFrom = Just from, presenceTo = Just to@JID { jidNode = Nothing } })) = do writeStanzaChan toComponent $ (emptyPresence PresenceSubscribed) { presenceTo = Just from, -- 2.38.5