module Web.Last.Album where import Control.Applicative import Control.Arrow import Web.Last.Types import Web.Last.Request import qualified Web.Last.Parsing as P import Text.JSON.Combinators -- addTags needs auth getInfo :: Maybe String -> Maybe String -> Maybe String -> Maybe String -> Last (Album,AlbumInfo) getInfo artist album mbid lang = anonRequest "album.getinfo" [] [("artist",artist),("album",album),("mbid",mbid),("lang",lang)] pa where pa = objOf $ ll "album" (P.album &&& P.albumInfo) -- getTags needs auth -- removeTags needs auth search :: String -> Last (Paged (Album,[Image])) search album = pagedRequest "album.search" [("album",album)] [] pa pno where pa = objOf $ inObj "results" $ inObj "albummatches" $ llArr "album" $ P.album &&& (objOf $ llArr "image" P.image) pno = P.openSearchPages