clit 0.4.0.4 → 0.4.0.5
raw patch · 2 files changed
+21/−6 lines, 2 filesdep ~clit
Dependency ranges changed: clit
Files
- clit.cabal +2/−2
- src/Web/Tweet/Utils.hs +19/−4
clit.cabal view
@@ -1,5 +1,5 @@ name: clit-version: 0.4.0.4+version: 0.4.0.5 cabal-version: >=1.10 build-type: Simple license: BSD3@@ -63,7 +63,7 @@ main-is: Main.hs build-depends: base >=4.9.1.0 && <4.10,- clit >=0.4.0.4 && <0.5+ clit >=0.4.0.5 && <0.5 default-language: Haskell2010 hs-source-dirs: app
src/Web/Tweet/Utils.hs view
@@ -22,12 +22,12 @@ -- | Display Timeline without color displayTimeline :: Timeline -> String-displayTimeline ((user,content,fave,rts):rest) = (user <> ":\n " <> content) <> "\n " <> "♥ " {-- ♡💛--} <> fave <> " ♺ " <> rts <> "\n" <> (displayTimeline rest) -- +displayTimeline ((user,content,fave,rts):rest) = (user <> ":\n " <> content) <> "\n " <> "♥ " {-- ♡💛--} <> fave <> " ♺ " <> rts <> "\n\n" <> (displayTimeline rest) -- displayTimeline [] = [] -- | Display Timeline in color displayTimelineColor :: Timeline -> String-displayTimelineColor ((user,content,fave,rts):rest) = ((show . yellow . text $ user) <> ":\n " <> content) <> "\n " <> (show . red . text $ "♥ ") {-- ♡💛--} <> fave <> (show . green . text $ " ♺ ") <> rts <> "\n" <> (displayTimelineColor rest) -- +displayTimelineColor ((user,content,fave,rts):rest) = ((show . yellow . text $ user) <> ":\n " <> content) <> "\n " <> (show . red . text $ "♥ ") {-- ♡💛--} <> fave <> (show . green . text $ " ♺ ") <> rts <> "\n\n" <> (displayTimelineColor rest) -- displayTimelineColor [] = [] -- | Get a list of tweets from a response, returning author, favorites, retweets, and content. @@ -50,8 +50,10 @@ getData :: Parser (String, String, String, String) getData = do text <- filterStr "text"- userMentions <- filterStr "user_mentions"- name <- if userMentions == "[]" then filterStr "name" else filterStr "name" >> filterStr "name"+ skipMentions+ --userMentions <- filterStr "user_mentions"+ --name <- if userMentions == "[]" then filterStr "name" else filterStr "name" >> filterStr "name" -- FIXME fix this to read number of userMentions+ name <- filterStr "name" isQuote <- filterStr "is_quote_status" case isQuote of "false" -> do@@ -59,9 +61,22 @@ faves <- filterStr "favorite_count" pure (name, text, faves, rts) "true" -> do+ skipMentions rts <- filterStr "retweet_count" >> filterStr "retweet_count" faves <- filterStr "favorite_count" pure (name, text, faves, rts)++-- TODO make it work when user names include ]+skipInsideBrackets :: Parser ()+skipInsideBrackets =void (between (char '[') (char ']') $ many (skipInsideBrackets <|> void (noneOf "[]")))++skipMentions :: Parser ()+skipMentions = do+ many $ try $ anyChar >> notFollowedBy (string ("\"user_mentions\":"))+ char ','+ string "\"user_mentions\":"+ skipInsideBrackets --between (char '[') (char ']') (many $ anyChar)+ pure () -- | Throw out input until we get to a relevant tag. filterStr :: String -> Parser String