X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fhalcyon.git;a=blobdiff_plain;f=src%2FTwitter%2FUser.hs;h=af3bc1ce3f4faa4945690d0d1195a7d9c45fa1df;hp=a1eed3a356dd5922349d02aa29ad71d3e94a51b3;hb=518f0ba7d66d93fdda2a5dd7b8ea90b59d874b27;hpb=9b6d95a82745ced2a58d9bc4ded555ee36b36673 diff --git a/src/Twitter/User.hs b/src/Twitter/User.hs index a1eed3a..af3bc1c 100644 --- a/src/Twitter/User.hs +++ b/src/Twitter/User.hs @@ -1,17 +1,24 @@ -- | Functions and data for working with Twitter users. -module Twitter.User +module Twitter.User ( + User(..), + screen_name_to_timeline_url ) where -import Control.Applicative ((<$>)) -import Data.Aeson ((.:), FromJSON(..), Value(Object)) -import Data.Text (pack) -import Data.Monoid (mempty) +import Control.Applicative ( (<$>) ) +import Data.Aeson ( (.:), FromJSON(..), Value(Object) ) +import Data.Text ( pack ) +import Data.Monoid ( mempty ) + -- | Represents a Twitter user, and contains the only attribute -- thereof that we care about: the screen (user) name. +-- data User = User { screen_name :: String } deriving (Eq, Show) instance FromJSON User where + -- | Parse the JSON we get from the Twitter API into a 'User' if we + -- can. + -- parseJSON (Object u) = User <$> (u .: screen_name_field) where @@ -20,7 +27,14 @@ instance FromJSON User where -- Do whatever. parseJSON _ = mempty --- |Get the URL for the given screen name's timeline. + +-- | Get the URL for the given screen name's timeline. +-- +-- Examples: +-- +-- >>> screen_name_to_timeline_url "washington_irving" +-- "http://twitter.com/washington_irving" +-- screen_name_to_timeline_url :: String -> String screen_name_to_timeline_url = ("http://twitter.com/" ++)