tweet-hs-1.0.2.3: src/Web/Tweet/API/Internal.hs
-- | Helper functions for the command line tool.
module Web.Tweet.API.Internal where
import Data.Void
import Text.Megaparsec.Error
import Web.Tweet.API
import Web.Tweet.Types
import Web.Tweet.Utils
type Filter = Timeline -> Timeline
-- | Show a user profile given screen name, how many tweets to return,
-- and whether to print them in color.
showProfile :: String -> Int -> Bool -> FilePath -> IO String
showProfile sn count color = fmap (showTweets color) . getProfile sn count
-- | Show the most successful tweets by a given user, given their screen name.
showBest :: String -> Int -> Bool -> FilePath -> IO String
showBest sn n color = fmap (showTweets color . pure . take n . hits) . getAll sn Nothing
-- | Show the most successful tweets by a given user, given their screen name. Additionally filter out replies.
showBest' :: String -> Int -> Bool -> FilePath -> IO String
showBest' sn n color = fmap (showTweets color . pure . take n . hits') . getAll sn Nothing
showReplies :: String -> Int -> Bool -> FilePath -> IO String
showReplies uname twid color = fmap (showTweets color) . getReplies uname twid
-- | Display user timeline
showTimeline :: Int -> Bool -> FilePath -> IO String
showTimeline count color = fmap (showTweets color) . getTimeline count
showFilteredTL :: [Filter] -> String -> Int -> Bool -> FilePath -> IO String
showFilteredTL filters sn count color = fmap (showTweets color . fmap (foldr (.) id filters)) . getProfile sn count
-- | Display user timeline in color, as appropriate
showTweets :: Bool -> Either (ParseErrorBundle String Void) Timeline -> String
showTweets color = either show id . fmap (if color then displayTimelineColor else displayTimeline)
-- | Display a user's favorites
showFavorites :: Int -> String -> Bool -> FilePath -> IO String
showFavorites count sn color = fmap (showTweets color) . getFavorites count sn