{-# LANGUAGE OverloadedStrings, QuasiQuotes #-}
module Main where
import Control.Concurrent
import Control.Monad.Except
import Data.Maybe
import Data.String.Interpolate.IsString
import Web.Slack.ProgressBar
mySlackConfig :: SlackConfig
mySlackConfig = SlackConfig { slackApiToken = "TODO" }
main :: IO ()
main = void $ runExceptT $ do
let progressBarInfo = ProgressBarInfo {
progressBarInfoTopMessage = Just "Top message"
, progressBarInfoBottomMessage = Just "Bottom message"
, progressBarInfoSize = Just 0
, progressBarInfoAttachments = Just []
}
progressBar <- ExceptT $ createProgressBar mySlackConfig "test-channel" progressBarInfo
forM_ [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] $ \size -> do
liftIO $ threadDelay 1000000
ExceptT $ updateProgressBar mySlackConfig progressBar (
progressBarInfo {
progressBarInfoSize = Just size
, progressBarInfoAttachments = Just $
(ProgressBarAttachment [i|Hello there #{size}|] "#ff4136")
: (fromMaybe [] (progressBarInfoAttachments progressBarInfo))
})