-------------------------------------------------------------------- -- | -- Module : FriendFeed.User -- Description : Fetch user-specific FriendFeed info. -- Copyright : (c) Sigbjorn Finne, 2008 -- License : BSD3 -- -- Maintainer: Sigbjorn Finne -- 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"] []