ffeed-0.2: FriendFeed/User.hs
--------------------------------------------------------------------
-- |
-- Module : FriendFeed.User
-- Description : Fetch user-specific FriendFeed info.
-- Copyright : (c) Sigbjorn Finne, 2008
-- License : BSD3
--
-- Maintainer: Sigbjorn Finne <sof@forkIO.com>
-- Stability : provisional
-- Portability: portable
--
-- Actions for fetching entries,comments etc. for one or
-- more users\/friends.
--
--------------------------------------------------------------------
module FriendFeed.User where
import FriendFeed.Types
import FriendFeed.Types.Import ()
import FriendFeed.Monad
import Data.List ( intercalate )
-- | Returns list of all of the user's subscriptions
-- (people) and services connected to their account
-- (Authentication required for private users):
getUserProfile :: UserName -> FFm User
getUserProfile uname = authCall $
ffeedTranslate $
ffeedCall ["user",uname,"profile"] []
-- | Get a user's profile picture.
getUserPicture :: UserName -> String -> FFm URLString
getUserPicture uname sz = withBase ffeed_base $
ffeedTranslate $
ffeedCall [uname,"picture"]
[("size",sz)]
-- | Returns the most recent public entries on FriendFeed.
getPublicEntries :: FFm [Entry]
getPublicEntries = authCall $
ffeedTranslateLs "entries" $
ffeedCall ["feed", "public"] []
getUserEntries :: UserName -> FFm [Entry]
getUserEntries u = authCall $
ffeedTranslateLs "entries" $
ffeedCall ["feed","user",u] []
getUserComments :: UserName -> FFm [Entry]
getUserComments u = authCall $
ffeedTranslateLs "entries" $
ffeedCall ["feed","user",u, "comments"] []
getUserLikes :: UserName -> FFm [Entry]
getUserLikes u = authCall $
ffeedTranslateLs "entries" $
ffeedCall ["feed","user",u, "likes"] []
-- | Returns the most recent entries the user has commented
-- on or "liked".
getUserDiscussion :: UserName -> FFm [Entry]
getUserDiscussion u = authCall $
ffeedTranslateLs "entries" $
ffeedCall ["feed","user",u, "discussion"] []
-- | Returns entries from a user's friends.
getFriendEntries :: UserName -> FFm [Entry]
getFriendEntries u = authCall $
ffeedTranslateLs "entries" $
ffeedCall ["feed","user",u, "friends"] []
-- | Returns the most recent entries from a list of users,
-- specified by nickname.
getUsersEntries :: [UserName] -> FFm [Entry]
getUsersEntries us =
ffeedTranslateLs "entries" $
ffeedCall ["feed","user"]
[("nickname", intercalate "," us)]
-- | Validates the user's remote key. If the HTTP Basic
-- Authentication nickname and remote key are valid, we
-- return a HTTP 200 status code. Otherwise, we return an
-- HTTP 401 status code.
validateUserKey :: FFm Bool
validateUserKey = onSuccess $ authCall $
ffeedCall_ ["validate"] []