From 7b101b8c3c0481d76733c77008b5b763ceb3b535 Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Sun, 4 Aug 2024 02:09:37 -0400 Subject: Live monitor endpoint --- fig-monitor-twitch/src/Fig/Monitor/Twitch.hs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'fig-monitor-twitch/src') diff --git a/fig-monitor-twitch/src/Fig/Monitor/Twitch.hs b/fig-monitor-twitch/src/Fig/Monitor/Twitch.hs index ef493c4..561c574 100644 --- a/fig-monitor-twitch/src/Fig/Monitor/Twitch.hs +++ b/fig-monitor-twitch/src/Fig/Monitor/Twitch.hs @@ -487,23 +487,21 @@ twitchChannelLiveMonitor cfg busAddr = do -- updateLive = fmap Map.fromList . runAuthed cfg $ forM cfg.monitor \user -> do -- liftIO . threadDelay $ 5 * 1000000 -- (user,) <$> userIsLive user - loop :: Map.Map Text Bool -> IO () - loop old = do + loop :: IO () + loop = do log "Updating liveness..." - new <- updateLive + live <- updateLive log "Update complete!" forM_ cfg.monitor \user -> - case (Map.lookup user old, Map.lookup user new) of - (Just False, Just True) -> do - log $ "Newly online: " <> user + case Map.lookup user live of + Just True -> do cmds.publish [sexp|(monitor twitch stream online)|] [SExprString user] - (Just True, Just False) -> do - log $ "Newly offline: " <> user + Just False -> do cmds.publish [sexp|(monitor twitch stream offline)|] [SExprString user] _ -> pure () threadDelay $ 5 * 60 * 1000000 - loop new - loop Map.empty + loop + loop ) (\_cmds _d -> pure ()) (pure ()) -- cgit v1.2.3