Skip to content

Commit c10a24c

Browse files
committed
(#221) Rewrite currentSongCommand with Reaction API
1 parent 45e90aa commit c10a24c

File tree

1 file changed

+12
-24
lines changed

1 file changed

+12
-24
lines changed

src/Bot/Dubtrack.hs

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import qualified Data.Proxy as P
1414
import qualified Data.Text as T
1515
import Effect
1616
import Entity
17-
import Network.HTTP.Simple
1817
import Property
1918
import Reaction
2019
import Text.InterpolatedString.QM
@@ -92,28 +91,17 @@ setDubtrackRoom =
9291
Nothing -> void $ createEntity P.Proxy $ DubtrackRoom msg) $
9392
cmapR (const "Updated room for dubtrack") $ Reaction replyMessage
9493

95-
-- TODO(#221): Dubtrack room is hardcode
96-
-- TODO: Rewrite in the Reaction api
9794
currentSongCommand :: Reaction Message ()
9895
currentSongCommand =
99-
Reaction $ \Message {messageSender = sender} -> do
100-
mayRoom <- getRoom
101-
case mayRoom of
102-
Nothing ->
103-
replyToSender
104-
sender
105-
"Dubtrack room not set, a mod can run '!config dubtrack <room-name>' to set it"
106-
Just mahroom -> do
107-
request <-
108-
parseRequest $
109-
"https://api.dubtrack.fm/room/" <>
110-
T.unpack (unName $ entityPayload mahroom)
111-
response <- eitherDecode . getResponseBody <$> httpRequest request
112-
case response of
113-
Left message -> errorEff $ T.pack message
114-
Right dubtrackResponse ->
115-
maybe
116-
(replyToSender sender "Nothing is playing right now")
117-
(\song ->
118-
replyToSender sender [qms|❝{songName song}❞: {songLink song}|])
119-
(roomCurrentSong $ drData dubtrackResponse)
96+
liftR (const getRoom) $
97+
replyOnNothing
98+
[qms|Dubtrack room not set, a mod can run
99+
'!config dubtrack <room-name>' to set it|] $
100+
cmapR (T.unpack . urlOfRoom . entityPayload) $
101+
jsonHttpRequestReaction $
102+
cmapR (roomCurrentSong . drData) $
103+
replyOnNothing "Nothing is playing right now" $
104+
cmapR (\song -> [qms|❝{songName song}❞: {songLink song}|]) $
105+
Reaction replyMessage
106+
where
107+
urlOfRoom = ("https://api.dubtrack.fm/room/" <>) . unName

0 commit comments

Comments
 (0)