diff options
Diffstat (limited to 'fig-monitor-twitch/src/Fig')
| -rw-r--r-- | fig-monitor-twitch/src/Fig/Monitor/Twitch.hs | 20 | ||||
| -rw-r--r-- | fig-monitor-twitch/src/Fig/Monitor/Twitch/Utils.hs | 3 |
2 files changed, 16 insertions, 7 deletions
diff --git a/fig-monitor-twitch/src/Fig/Monitor/Twitch.hs b/fig-monitor-twitch/src/Fig/Monitor/Twitch.hs index 1889545..17f2b8a 100644 --- a/fig-monitor-twitch/src/Fig/Monitor/Twitch.hs +++ b/fig-monitor-twitch/src/Fig/Monitor/Twitch.hs @@ -5,6 +5,7 @@ module Fig.Monitor.Twitch ( twitchEventClient , twitchChatClient + , twitchEndpointTest , userTokenRedirectServer ) where @@ -233,6 +234,11 @@ shoutout souser user = do unless (HTTP.statusIsSuccessful $ HTTP.responseStatus response) $ do log $ "Failed to shoutout: error " <> tshow (HTTP.statusCode $ HTTP.responseStatus response) +twitchEndpointTest :: Config -> IO () +twitchEndpointTest cfg = runAuthed cfg do + user <- loginToUserId "lcolonq" + log user + twitchEventClient :: Config -> (Text, Text) -> IO () twitchEventClient cfg busAddr = do WS.runSecureClient "eventsub.wss.twitch.tv" 443 "/ws" \conn -> do @@ -248,6 +254,7 @@ twitchEventClient cfg busAddr = do log $ "Connected to Twitch API, session ID is: " <> sessionId runAuthed cfg do user <- loginToUserId cfg.userLogin + log "got user id" subscribe sessionId "channel.channel_points_custom_reward_redemption.add" user subscribe sessionId "channel.prediction.begin" user subscribe sessionId "channel.prediction.end" user @@ -255,6 +262,7 @@ twitchEventClient cfg busAddr = do subscribe sessionId "channel.poll.end" user subscribe sessionId "channel.subscribe" user subscribe sessionId "channel.subscription.gift" user + log "finished subscribing" subscribeFollows sessionId user subscribeRaids sessionId user busClient busAddr @@ -275,7 +283,7 @@ twitchEventClient cfg busAddr = do let parseEvent o = do payload <- o .: "payload" event <- payload .: "event" - nm <- event .: "user_name" + nm <- event .: "user_login" reward <- event .: "reward" title <- reward .: "title" minput <- event .:? "user_input" @@ -312,7 +320,7 @@ twitchEventClient cfg busAddr = do let parseEvent o = do payload <- o .: "payload" event <- payload .: "event" - event .: "from_broadcaster_user_name" + event .: "from_broadcaster_user_login" case Aeson.parseMaybe parseEvent res of Just nm -> do log $ "Incoming raid from: " <> nm @@ -322,7 +330,7 @@ twitchEventClient cfg busAddr = do let parseEvent o = do payload <- o .: "payload" event <- payload .: "event" - event .: "user_name" + event .: "user_login" case Aeson.parseMaybe parseEvent res of Just nm -> do log $ "New follower: " <> nm @@ -332,7 +340,7 @@ twitchEventClient cfg busAddr = do let parseEvent o = do payload <- o .: "payload" event <- payload .: "event" - event .: "user_name" + event .: "user_login" case Aeson.parseMaybe parseEvent res of Just nm -> do log $ "New subscriber: " <> nm @@ -342,7 +350,7 @@ twitchEventClient cfg busAddr = do let parseEvent o = do payload <- o .: "payload" event <- payload .: "event" - nm <- event .: "user_name" + nm <- event .: "user_login" bits <- event .: "bits" pure (nm, bits) case Aeson.parseMaybe parseEvent res of @@ -354,7 +362,7 @@ twitchEventClient cfg busAddr = do let parseEvent o = do payload <- o .: "payload" event <- payload .: "event" - nm <- event .: "user_name" + nm <- event .: "user_login" num <- event .: "total" pure (nm, num) case Aeson.parseMaybe parseEvent res of diff --git a/fig-monitor-twitch/src/Fig/Monitor/Twitch/Utils.hs b/fig-monitor-twitch/src/Fig/Monitor/Twitch/Utils.hs index f1d757c..59ba04c 100644 --- a/fig-monitor-twitch/src/Fig/Monitor/Twitch/Utils.hs +++ b/fig-monitor-twitch/src/Fig/Monitor/Twitch/Utils.hs @@ -78,7 +78,8 @@ authedRequestJSON :: (Aeson.ToJSON a, Aeson.FromJSON b) => Text -> Text -> a -> authedRequestJSON method url val = do resp <- authedRequest method url $ Aeson.encode val case Aeson.eitherDecode resp of - Left err -> throwM . FigMonitorTwitchException $ tshow err + Left err -> do + throwM . FigMonitorTwitchException $ tshow err Right res -> pure res runAuthed :: Config -> Authed a -> IO a |
