-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Wrapper to Lastfm API
--
-- Wrapper to Lastfm API
@package liblastfm
@version 0.0.2.2
module Network.Lastfm.Types
newtype Secret
Secret :: String -> Secret
(#) :: Argument a => a -> (String, String)
class Argument a
key :: Argument a => a -> String
value :: Argument a => a -> String
newtype Album
Album :: String -> Album
newtype AlbumArtist
AlbumArtist :: String -> AlbumArtist
newtype APIKey
APIKey :: String -> APIKey
newtype Artist
Artist :: String -> Artist
newtype AuthToken
AuthToken :: String -> AuthToken
newtype ChosenByUser
ChosenByUser :: String -> ChosenByUser
newtype Context
Context :: String -> Context
newtype Country
Country :: String -> Country
newtype Description
Description :: String -> Description
newtype Group
Group :: String -> Group
newtype Language
Language :: String -> Language
newtype Latitude
Latitude :: String -> Latitude
newtype Location
Location :: String -> Location
newtype Longitude
Longitude :: String -> Longitude
newtype Mbid
Mbid :: String -> Mbid
newtype Message
Message :: String -> Message
newtype Method
Method :: String -> Method
newtype Metro
Metro :: String -> Metro
newtype Name
Name :: String -> Name
newtype Recipient
Recipient :: String -> Recipient
newtype SessionKey
SessionKey :: String -> SessionKey
newtype Station
Station :: String -> Station
newtype StreamId
StreamId :: String -> StreamId
newtype Tag
Tag :: String -> Tag
newtype TaggingType
TaggingType :: String -> TaggingType
newtype Title
Title :: String -> Title
newtype Token
Token :: String -> Token
newtype Track
Track :: String -> Track
newtype User
User :: String -> User
newtype Username
Username :: String -> Username
newtype Venuename
Venuename :: String -> Venuename
boolToString :: Bool -> String
newtype Autocorrect
Autocorrect :: Bool -> Autocorrect
newtype BuyLinks
BuyLinks :: Bool -> BuyLinks
newtype Discovery
Discovery :: Bool -> Discovery
newtype FestivalsOnly
FestivalsOnly :: Bool -> FestivalsOnly
newtype Public
Public :: Bool -> Public
newtype RecentTracks
RecentTracks :: Bool -> RecentTracks
newtype RTP
RTP :: Bool -> RTP
newtype UseRecs
UseRecs :: Bool -> UseRecs
newtype Distance
Distance :: Int -> Distance
newtype Duration
Duration :: Int -> Duration
newtype Event
Event :: Int -> Event
newtype Limit
Limit :: Int -> Limit
newtype Page
Page :: Int -> Page
newtype Playlist
Playlist :: Int -> Playlist
newtype TrackNumber
TrackNumber :: Int -> TrackNumber
newtype Venue
Venue :: Int -> Venue
newtype End
End :: Integer -> End
newtype EndTimestamp
EndTimestamp :: Integer -> EndTimestamp
newtype Fingerprint
Fingerprint :: Integer -> Fingerprint
newtype From
From :: Integer -> From
newtype Start
Start :: Integer -> Start
newtype StartTimestamp
StartTimestamp :: Integer -> StartTimestamp
newtype Timestamp
Timestamp :: Integer -> Timestamp
newtype To
To :: Integer -> To
data Bitrate
B64 :: Bitrate
B128 :: Bitrate
data Multiplier
M1 :: Multiplier
M2 :: Multiplier
data Order
Popularity :: Order
DateAdded :: Order
data Status
Yes :: Status
Maybe :: Status
No :: Status
data Value
ValueUser :: User -> Value
ValueArtists :: [Artist] -> Value
data Period
Week :: Period
Quater :: Period
HalfYear :: Period
Year :: Period
Overall :: Period
data APIError
DoesntExist :: APIError
InvalidService :: APIError
InvalidMethod :: APIError
AuthenticationFailed :: APIError
InvalidFormat :: APIError
InvalidParameters :: APIError
InvalidResource :: APIError
OperationFailed :: APIError
InvalidSessionKey :: APIError
InvalidAPIKey :: APIError
ServiceOffline :: APIError
SubscribersOnly :: APIError
InvalidMethodSignature :: APIError
TokenHasNotAuthorized :: APIError
NotForStreaming :: APIError
TemporaryUnavailable :: APIError
LoginRequired :: APIError
TrialExpired :: APIError
DoesntExistAgain :: APIError
NotEnoughContent :: APIError
NotEnoughMembers :: APIError
NotEnoughFans :: APIError
NotEnoughNeighbours :: APIError
NoPeakRadio :: APIError
RadioNotFound :: APIError
SuspendedAPIKey :: APIError
Deprecated :: APIError
RateLimitExceeded :: APIError
data LastfmError
-- | Internal Lastfm errors
LastfmAPIError :: APIError -> LastfmError
-- | Wrapper errors
WrapperCallError :: String -> String -> LastfmError
instance [overlap ok] Show Secret
instance [overlap ok] Enum APIError
instance [overlap ok] Show LastfmError
instance [overlap ok] Error LastfmError
instance [overlap ok] Show APIError
instance [overlap ok] Argument Period
instance [overlap ok] Argument Value
instance [overlap ok] Show Value
instance [overlap ok] Argument Status
instance [overlap ok] Argument Order
instance [overlap ok] Argument Multiplier
instance [overlap ok] Argument Bitrate
instance [overlap ok] Argument To
instance [overlap ok] Argument Timestamp
instance [overlap ok] Argument StartTimestamp
instance [overlap ok] Argument Start
instance [overlap ok] Argument From
instance [overlap ok] Argument Fingerprint
instance [overlap ok] Argument EndTimestamp
instance [overlap ok] Argument End
instance [overlap ok] Argument Venue
instance [overlap ok] Argument TrackNumber
instance [overlap ok] Argument Playlist
instance [overlap ok] Argument Page
instance [overlap ok] Argument Limit
instance [overlap ok] Argument Event
instance [overlap ok] Argument Duration
instance [overlap ok] Argument Distance
instance [overlap ok] Argument UseRecs
instance [overlap ok] Argument RTP
instance [overlap ok] Argument RecentTracks
instance [overlap ok] Argument Public
instance [overlap ok] Argument FestivalsOnly
instance [overlap ok] Argument Discovery
instance [overlap ok] Argument BuyLinks
instance [overlap ok] Argument Autocorrect
instance [overlap ok] Argument Venuename
instance [overlap ok] Argument Username
instance [overlap ok] Argument User
instance [overlap ok] Argument Track
instance [overlap ok] Argument Token
instance [overlap ok] Argument Title
instance [overlap ok] Argument TaggingType
instance [overlap ok] Argument Tag
instance [overlap ok] Argument StreamId
instance [overlap ok] Argument Station
instance [overlap ok] Argument SessionKey
instance [overlap ok] Argument Recipient
instance [overlap ok] Argument Name
instance [overlap ok] Argument Metro
instance [overlap ok] Argument Method
instance [overlap ok] Argument Message
instance [overlap ok] Argument Mbid
instance [overlap ok] Argument Longitude
instance [overlap ok] Argument Location
instance [overlap ok] Argument Latitude
instance [overlap ok] Argument Language
instance [overlap ok] Argument Group
instance [overlap ok] Argument Description
instance [overlap ok] Argument Country
instance [overlap ok] Argument Context
instance [overlap ok] Argument ChosenByUser
instance [overlap ok] Argument AuthToken
instance [overlap ok] Argument Artist
instance [overlap ok] Argument APIKey
instance [overlap ok] Argument AlbumArtist
instance [overlap ok] Argument Album
instance [overlap ok] Argument a => Argument [a]
instance [overlap ok] Argument a => Argument (Maybe a)
-- | Response module
module Network.Lastfm
-- | Type synonym for Lastfm response or error.
type Lastfm a = IO (Either LastfmError a)
-- | Type synonym for Lastfm response
type Response = String
-- | Low level function. Sends POST query to Lastfm API.
callAPI :: [(String, String)] -> Lastfm Response
-- | Low level function. Sends signed POST query to Lastfm API.
callAPIsigned :: Secret -> [(String, String)] -> Lastfm Response
-- | Album API module
module Network.Lastfm.API.Album
-- | Tag an album using a list of user supplied tags.
--
-- More: http://www.last.fm/api/show/album.addTags
addTags :: (Artist, Album) -> [Tag] -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Get a list of Buy Links for a particular Album. It is required that
-- you supply either the artist and track params or the mbid param.
--
-- More: http://www.last.fm/api/show/album.getBuylinks
getBuyLinks :: Either (Artist, Album) Mbid -> Maybe Autocorrect -> Country -> APIKey -> Lastfm Response
-- | Get the metadata for an album on Last.fm using the album name or a
-- musicbrainz id. See playlist.fetch on how to get the album playlist.
--
-- More: http://www.last.fm/api/show/album.getInfo
getInfo :: Either (Artist, Album) Mbid -> Maybe Autocorrect -> Maybe Language -> Maybe Username -> APIKey -> Lastfm Response
-- | Get shouts for this album.
--
-- More: http://www.last.fm/api/show/album.getShouts
getShouts :: Either (Artist, Album) Mbid -> Maybe Autocorrect -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the tags applied by an individual user to an album on Last.fm.
--
-- More: http://www.last.fm/api/show/album.getTags
getTags :: Either (Artist, Album) Mbid -> Maybe Autocorrect -> Either User (SessionKey, Secret) -> APIKey -> Lastfm Response
-- | Get the top tags for an album on Last.fm, ordered by popularity.
--
-- More: http://www.last.fm/api/show/album.getTopTags
getTopTags :: Either (Artist, Album) Mbid -> Maybe Autocorrect -> APIKey -> Lastfm Response
-- | Remove a user's tag from an album.
--
-- More: http://www.last.fm/api/show/album.removeTag
removeTag :: Artist -> Album -> Tag -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Search for an album by name. Returns album matches sorted by
-- relevance.
--
-- More: http://www.last.fm/api/show/album.search
search :: Album -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Share an album with one or more Last.fm users or other friends.
--
-- More: http://www.last.fm/api/show/album.share
share :: Artist -> Album -> Recipient -> Maybe Message -> Maybe Public -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Artist API module
module Network.Lastfm.API.Artist
-- | Tag an album using a list of user supplied tags.
--
-- More: http://www.last.fm/api/show/artist.addTags
addTags :: Artist -> [Tag] -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Use the last.fm corrections data to check whether the supplied artist
-- has a correction to a canonical artist
--
-- More: http://www.last.fm/api/show/artist.getCorrection
getCorrection :: Artist -> APIKey -> Lastfm Response
-- | Get a list of upcoming events for this artist.
--
-- More: http://www.last.fm/api/show/artist.getEvents
getEvents :: Either Artist Mbid -> Maybe Autocorrect -> Maybe Page -> Maybe Limit -> Maybe FestivalsOnly -> APIKey -> Lastfm Response
-- | Get Images for this artist in a variety of sizes.
--
-- More: http://www.last.fm/api/show/artist.getImages
getImages :: Either Artist Mbid -> Maybe Autocorrect -> Maybe Page -> Maybe Limit -> Maybe Order -> APIKey -> Lastfm Response
-- | Get the metadata for an artist. Includes biography.
--
-- More: http://www.last.fm/api/show/artist.getInfo
getInfo :: Either Artist Mbid -> Maybe Autocorrect -> Maybe Language -> Maybe Username -> APIKey -> Lastfm Response
-- | Get a paginated list of all the events this artist has played at in
-- the past.
--
-- More: http://www.last.fm/api/show/artist.getPastEvents
getPastEvents :: Either Artist Mbid -> Maybe Autocorrect -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get a podcast of free mp3s based on an artist.
--
-- More: http://www.last.fm/api/show/artist.getPodcast
getPodcast :: Either Artist Mbid -> Maybe Autocorrect -> APIKey -> Lastfm Response
-- | Get shouts for this artist. Also available as an rss feed.
--
-- More: http://www.last.fm/api/show/artist.getShouts
getShouts :: Either Artist Mbid -> Maybe Autocorrect -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get all the artists similar to this artist.
--
-- More: http://www.last.fm/api/show/artist.getSimilar
getSimilar :: Either Artist Mbid -> Maybe Autocorrect -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the tags applied by an individual user to an artist on Last.fm. If
-- accessed as an authenticated service and you don't supply a
-- user parameter then this service will return tags for the
-- authenticated user.
--
-- More: http://www.last.fm/api/show/artist.getTags
getTags :: Either Artist Mbid -> Maybe Autocorrect -> Either User (SessionKey, Secret) -> APIKey -> Lastfm Response
-- | Get the top albums for an artist on Last.fm, ordered by popularity.
--
-- More: http://www.last.fm/api/show/artist.getTopAlbums
getTopAlbums :: Either Artist Mbid -> Maybe Autocorrect -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the top fans for an artist on Last.fm, based on listening data.
--
-- More: http://www.last.fm/api/show/artist.getTopFans
getTopFans :: Either Artist Mbid -> Maybe Autocorrect -> APIKey -> Lastfm Response
-- | Get the top tags for an artist on Last.fm, ordered by popularity.
--
-- More: http://www.last.fm/api/show/artist.getTopTags
getTopTags :: Either Artist Mbid -> Maybe Autocorrect -> APIKey -> Lastfm Response
-- | Get the top tracks by an artist on Last.fm, ordered by popularity.
--
-- More: http://www.last.fm/api/show/artist.getTopTracks
getTopTracks :: Either Artist Mbid -> Maybe Autocorrect -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Remove a user's tag from an artist.
--
-- More: http://www.last.fm/api/show/artist.removeTag
removeTag :: Artist -> Tag -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Search for an artist by name. Returns artist matches sorted by
-- relevance.
--
-- More: http://www.last.fm/api/show/artist.search
search :: Artist -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Share an artist with Last.fm users or other friends.
--
-- More: http://www.last.fm/api/show/artist.share
share :: Artist -> Recipient -> Maybe Message -> Maybe Public -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Shout in this artist's shoutbox.
--
-- More: http://www.last.fm/api/show/artist.shout
shout :: Artist -> Message -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Auth API module
module Network.Lastfm.API.Auth
-- | Create a web service session for a user. Used for authenticating a
-- user when the password can be inputted by the user. Only suitable for
-- standalone mobile devices.
--
-- More: http://www.last.fm/api/show/auth.getMobileSession
getMobileSession :: Username -> APIKey -> AuthToken -> Lastfm Response
-- | Fetch a session key for a user.
--
-- More: http://www.last.fm/api/show/auth.getSession
getSession :: APIKey -> Token -> Secret -> Lastfm Response
-- | Fetch an unathorized request token for an API account.
--
-- More: http://www.last.fm/api/show/auth.getToken
getToken :: APIKey -> Lastfm Response
-- | Construct the link to authorize token.
getAuthorizeTokenLink :: APIKey -> Token -> String
-- | Chart API module
module Network.Lastfm.API.Chart
-- | Get the hyped artists chart.
--
-- More: http://www.last.fm/api/show/chart.getHypedArtists
getHypedArtists :: Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the hyped tracks chart.
--
-- More: http://www.last.fm/api/show/chart.getHypedTracks
getHypedTracks :: Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the most loved tracks chart.
--
-- More: http://www.last.fm/api/show/chart.getLovedTracks
getLovedTracks :: Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the top artists chart.
--
-- More: http://www.last.fm/api/show/chart.getTopArtists
getTopArtists :: Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get top tags chart.
--
-- More: http://www.last.fm/api/show/chart.getTopTags
getTopTags :: Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the top tracks chart.
--
-- More: http://www.last.fm/api/show/chart.getTopTracks
getTopTracks :: Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Event API module
module Network.Lastfm.API.Event
-- | Set a user's attendance status for an event.
--
-- More: http://www.last.fm/api/show/event.attend
attend :: Event -> Status -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Get a list of attendees for an event.
--
-- More: http://www.last.fm/api/show/event.getAttendees
getAttendees :: Event -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the metadata for an event on Last.fm. Includes attendance and
-- lineup information.
--
-- More: http://www.last.fm/api/show/event.getInfo
getInfo :: Event -> APIKey -> Lastfm Response
-- | Get shouts for this event.
--
-- More: http://www.last.fm/api/show/event.getShouts
getShouts :: Event -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Share an event with one or more Last.fm users or other friends.
--
-- More: http://www.last.fm/api/show/event.share
share :: Event -> Recipient -> Maybe Message -> Maybe Public -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Shout in this event's shoutbox.
--
-- More: http://www.last.fm/api/show/event.shout
shout :: Event -> Message -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Geo API module
module Network.Lastfm.API.Geo
-- | Get all events in a specific location by country or city name.
--
-- More: http://www.last.fm/api/show/geo.getEvents
getEvents :: Maybe Latitude -> Maybe Longitude -> Maybe Location -> Maybe Distance -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get a chart of artists for a metro.
--
-- More: http://www.last.fm/api/show/geo.getMetroArtistChart
getMetroArtistChart :: Country -> Metro -> Maybe Start -> Maybe End -> APIKey -> Lastfm Response
-- | Get a chart of hyped (up and coming) artists for a metro.
--
-- More: http://www.last.fm/api/show/geo.getMetroHypeArtistChart
getMetroHypeArtistChart :: Country -> Metro -> Maybe Start -> Maybe End -> APIKey -> Lastfm Response
-- | Get a chart of hyped (up and coming) tracks for a metro.
--
-- More: http://www.last.fm/api/show/geo.getMetroHypeTrackChart
getMetroHypeTrackChart :: Country -> Metro -> Maybe Start -> Maybe End -> APIKey -> Lastfm Response
-- | Get a chart of tracks for a metro.
--
-- More: http://www.last.fm/api/show/geo.getMetroTrackChart
getMetroTrackChart :: Country -> Metro -> Maybe Start -> Maybe End -> APIKey -> Lastfm Response
-- | Get a chart of the artists which make that metro unique.
--
-- More: http://www.last.fm/api/show/geo.getMetroUniqueArtistChart
getMetroUniqueArtistChart :: Country -> Metro -> Maybe Start -> Maybe End -> APIKey -> Lastfm Response
-- | Get a chart of the tracks which make that metro unique.
--
-- More: http://www.last.fm/api/show/geo.getMetroUniqueTrackChart
getMetroUniqueTrackChart :: Country -> Metro -> Maybe Start -> Maybe End -> APIKey -> Lastfm Response
-- | Get a list of available chart periods for this metro, expressed as
-- date ranges which can be sent to the chart services.
--
-- More: http://www.last.fm/api/show/geo.getMetroWeeklyChartlist
getMetroWeeklyChartlist :: Metro -> APIKey -> Lastfm Response
-- | Get a list of valid countries and metros for use in the other
-- webservices.
--
-- More: http://www.last.fm/api/show/geo.getMetros
getMetros :: Maybe Country -> APIKey -> Lastfm Response
-- | Get the most popular artists on Last.fm by country.
--
-- More: http://www.last.fm/api/show/geo.getTopArtists
getTopArtists :: Country -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the most popular tracks on Last.fm last week by country.
--
-- More: http://www.last.fm/api/show/geo.getTopTracks
getTopTracks :: Country -> Maybe Location -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Group API module
module Network.Lastfm.API.Group
-- | Get the hype list for a group.
--
-- More: http://www.last.fm/api/show/group.getHype
getHype :: Group -> APIKey -> Lastfm Response
-- | Get a list of members for this group.
--
-- More: http://www.last.fm/api/show/group.getMembers
getMembers :: Group -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get an album chart for a group, for a given date range. If no date
-- range is supplied, it will return the most recent album chart for this
-- group.
--
-- More: http://www.last.fm/api/show/group.getWeeklyAlbumChart
getWeeklyChartList :: Group -> APIKey -> Lastfm Response
-- | Get an artist chart for a group, for a given date range. If no date
-- range is supplied, it will return the most recent artist chart for
-- this group.
--
-- More: http://www.last.fm/api/show/group.getWeeklyArtistChart
getWeeklyAlbumChart :: Group -> Maybe From -> Maybe To -> APIKey -> Lastfm Response
-- | Get a list of available charts for this group, expressed as date
-- ranges which can be sent to the chart services.
--
-- More: http://www.last.fm/api/show/group.getWeeklyChartList
getWeeklyArtistChart :: Group -> Maybe From -> Maybe To -> APIKey -> Lastfm Response
-- | Get a track chart for a group, for a given date range. If no date
-- range is supplied, it will return the most recent track chart for this
-- group.
--
-- More: http://www.last.fm/api/show/group.getWeeklyTrackChart
getWeeklyTrackChart :: Group -> Maybe From -> Maybe To -> APIKey -> Lastfm Response
-- | Library API module
module Network.Lastfm.API.Library
-- | Add an album or collection of albums to a user's Last.fm library.
--
-- More: http://www.last.fm/api/show/library.addAlbum
addAlbum :: Artist -> Album -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Add an artist to a user's Last.fm library.
--
-- More: http://www.last.fm/api/show/library.addArtist
addArtist :: Artist -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Add a track to a user's Last.fm library.
--
-- More: http://www.last.fm/api/show/library.addTrack
addTrack :: Artist -> Track -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | A paginated list of all the albums in a user's library, with play
-- counts and tag counts.
--
-- More: http://www.last.fm/api/show/library.getAlbums
getAlbums :: User -> Maybe Artist -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | A paginated list of all the artists in a user's library, with play
-- counts and tag counts.
--
-- More: http://www.last.fm/api/show/library.getArtists
getArtists :: User -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | A paginated list of all the tracks in a user's library, with play
-- counts and tag counts.
--
-- More: http://www.last.fm/api/show/library.getTracks
getTracks :: User -> Maybe Artist -> Maybe Album -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Remove an album from a user's Last.fm library.
--
-- More: http://www.last.fm/api/show/library.removeAlbum
removeAlbum :: Artist -> Album -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Remove an artist from a user's Last.fm library.
--
-- More: http://www.last.fm/api/show/library.removeArtist
removeArtist :: Artist -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Remove a scrobble from a user's Last.fm library.
--
-- More: http://www.last.fm/api/show/library.removeScrobble
removeScrobble :: Artist -> Track -> Timestamp -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Remove a track from a user's Last.fm library.
--
-- More: http://www.last.fm/api/show/library.removeTrack
removeTrack :: Artist -> Track -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Playlist API module
module Network.Lastfm.API.Playlist
-- | Add a track to a Last.fm user's playlist.
--
-- More: http://www.last.fm/api/show/playlist.addTrack
addTrack :: Playlist -> Artist -> Track -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Create a Last.fm playlist on behalf of a user.
--
-- More: http://www.last.fm/api/show/playlist.create
create :: Maybe Title -> Maybe Description -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Radio API module
module Network.Lastfm.API.Radio
-- | Fetch new radio content periodically in an XSPF format.
--
-- More: http://www.last.fm/api/show/radio.getPlaylist
getPlaylist :: Maybe Discovery -> Maybe RTP -> Maybe BuyLinks -> Multiplier -> Bitrate -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Resolve the name of a resource into a station depending on which
-- resource it is most likely to represent.
--
-- More: http://www.last.fm/api/show/radio.search
search :: Name -> APIKey -> Lastfm Response
-- | Tune in to a Last.fm radio station.
--
-- More: http://www.last.fm/api/show/radio.tune
tune :: Maybe Language -> Station -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Tag API module
module Network.Lastfm.API.Tag
-- | Get the metadata for a tag.
--
-- More: http://www.last.fm/api/show/tag.getInfo
getInfo :: Tag -> Maybe Language -> APIKey -> Lastfm Response
-- | Search for tags similar to this one. Returns tags ranked by
-- similarity, based on listening data.
--
-- More: http://www.last.fm/api/show/tag.getSimilar
getSimilar :: Tag -> APIKey -> Lastfm Response
-- | Get the top albums tagged by this tag, ordered by tag count.
--
-- More: http://www.last.fm/api/show/tag.getTopAlbums
getTopAlbums :: Tag -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the top artists tagged by this tag, ordered by tag count.
--
-- More: http://www.last.fm/api/show/tag.getTopArtists
getTopArtists :: Tag -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Fetches the top global tags on Last.fm, sorted by popularity (number
-- of times used).
--
-- More: http://www.last.fm/api/show/tag.getTopTags
getTopTags :: APIKey -> Lastfm Response
-- | Get the top tracks tagged by this tag, ordered by tag count.
--
-- More: http://www.last.fm/api/show/tag.getTopTracks
getTopTracks :: Tag -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get an artist chart for a tag, for a given date range. If no date
-- range is supplied, it will return the most recent artist chart for
-- this tag.
--
-- More: http://www.last.fm/api/show/tag.getWeeklyArtistChart
getWeeklyArtistChart :: Tag -> Maybe From -> Maybe To -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get a list of available charts for this tag, expressed as date ranges
-- which can be sent to the chart services.
--
-- More: http://www.last.fm/api/show/tag.getWeeklyChartList
getWeeklyChartList :: Tag -> APIKey -> Lastfm Response
-- | Search for a tag by name. Returns matches sorted by relevance.
--
-- More: http://www.last.fm/api/show/tag.search
search :: Tag -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Tasteometer API module
module Network.Lastfm.API.Tasteometer
-- | Get a Tasteometer score from two inputs, along with a list of shared
-- artists. If the input is a User some additional information is
-- returned.
--
-- More: http://www.last.fm/api/show/tasteometer.compare
compare :: Value -> Value -> Maybe Limit -> APIKey -> Lastfm Response
-- | Track API module
module Network.Lastfm.API.Track
-- | Tag a track using a list of user supplied tags.
--
-- More: http://www.last.fm/api/show/track.addTags
addTags :: Artist -> Track -> [Tag] -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Ban a track for a given user profile.
--
-- More: http://www.last.fm/api/show/track.ban
ban :: Artist -> Track -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Get a list of Buy Links for a particular track.
--
-- More: http://www.last.fm/api/show/track.getBuylinks
getBuyLinks :: Either (Artist, Track) Mbid -> Maybe Autocorrect -> Country -> APIKey -> Lastfm Response
-- | Use the last.fm corrections data to check whether the supplied track
-- has a correction to a canonical track.
--
-- More: http://www.last.fm/api/show/track.getCorrection
getCorrection :: Artist -> Track -> APIKey -> Lastfm Response
-- | Retrieve track metadata associated with a fingerprint id generated by
-- the Last.fm Fingerprinter. Returns track elements, along with a
-- rank value between 0 and 1 reflecting the confidence for each
-- match.
--
-- More: http://www.last.fm/api/show/track.getFingerprintMetadata
getFingerprintMetadata :: Fingerprint -> APIKey -> Lastfm Response
-- | Get the metadata for a track on Last.fm.
--
-- More: http://www.last.fm/api/show/track.getInfo
getInfo :: Either (Artist, Track) Mbid -> Maybe Autocorrect -> Maybe Username -> APIKey -> Lastfm Response
-- | Get shouts for this track. Also available as an rss feed.
--
-- More: http://www.last.fm/api/show/track.getShouts
getShouts :: Either (Artist, Track) Mbid -> Maybe Autocorrect -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the similar tracks for this track on Last.fm, based on listening
-- data.
--
-- More: http://www.last.fm/api/show/track.getSimilar
getSimilar :: Either (Artist, Track) Mbid -> Maybe Autocorrect -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the tags applied by an individual user to a track on Last.fm.
--
-- More: http://www.last.fm/api/show/track.getTags
getTags :: Either (Artist, Track) Mbid -> Maybe Autocorrect -> Either User (SessionKey, Secret) -> APIKey -> Lastfm Response
-- | Get the top fans for this track on Last.fm, based on listening data.
--
-- More: http://www.last.fm/api/show/track.getTopFans
getTopFans :: Either (Artist, Track) Mbid -> Maybe Autocorrect -> APIKey -> Lastfm Response
-- | Get the top tags for this track on Last.fm, ordered by tag count.
--
-- More: http://www.last.fm/api/show/track.getTopTags
getTopTags :: Either (Artist, Track) Mbid -> Maybe Autocorrect -> APIKey -> Lastfm Response
-- | Love a track for a user profile.
--
-- More: http://www.last.fm/api/show/track.love
love :: Artist -> Track -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Remove a user's tag from a track.
--
-- More: http://www.last.fm/api/show/track.removeTag
removeTag :: Artist -> Track -> Tag -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Used to add a track-play to a user's profile.
--
-- More; http://www.last.fm/api/show/track.scrobble
scrobble :: (Timestamp, Maybe Album, Artist, Track, Maybe AlbumArtist, Maybe Duration, Maybe StreamId, Maybe ChosenByUser, Maybe Context, Maybe TrackNumber, Maybe Mbid) -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Search for a track by track name. Returns track matches sorted by
-- relevance.
--
-- More: http://www.last.fm/api/show/track.search
search :: Track -> Maybe Page -> Maybe Limit -> Maybe Artist -> APIKey -> Lastfm Response
-- | Share a track twith one or more Last.fm users or other friends.
--
-- More: http://www.last.fm/api/show/track.share
share :: Artist -> Track -> Recipient -> Maybe Message -> Maybe Public -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Unban a track for a user profile.
--
-- More: http://www.last.fm/api/show/track.unban
unban :: Artist -> Track -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Unlove a track for a user profile.
--
-- More: http://www.last.fm/api/show/track.unlove
unlove :: Artist -> Track -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Used to notify Last.fm that a user has started listening to a track.
-- Parameter names are case sensitive.
--
-- More: http://www.last.fm/api/show/track.updateNowPlaying
updateNowPlaying :: Artist -> Track -> Maybe Album -> Maybe AlbumArtist -> Maybe Context -> Maybe TrackNumber -> Maybe Mbid -> Maybe Duration -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | User API module
module Network.Lastfm.API.User
-- | Get a list of tracks by a given artist scrobbled by this user,
-- including scrobble time. Can be limited to specific timeranges,
-- defaults to all time.
--
-- More: http://www.last.fm/api/show/user.getArtistTracks
getArtistTracks :: User -> Artist -> Maybe StartTimestamp -> Maybe EndTimestamp -> Maybe Page -> APIKey -> Lastfm Response
-- | Returns the tracks banned by the user.
--
-- More: http://www.last.fm/api/show/user.getBannedTracks
getBannedTracks :: User -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get a list of upcoming events that this user is attending.
--
-- Mpre: http://www.last.fm/api/show/user.getEvents
getEvents :: User -> Maybe Page -> Maybe Limit -> Maybe FestivalsOnly -> APIKey -> Lastfm Response
-- | Get a list of the user's friends on Last.fm.
--
-- More: http://www.last.fm/api/show/user.getFriends
getFriends :: User -> Maybe RecentTracks -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get information about a user profile.
--
-- More: http://www.last.fm/api/show/user.getInfo
getInfo :: Maybe User -> APIKey -> Lastfm Response
-- | Get tracks loved by a user.
--
-- More: http://www.last.fm/api/show/user.getLovedTracks
getLovedTracks :: User -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get a list of a user's neighbours on Last.fm.
--
-- More: http://www.last.fm/api/show/user.getNeighbours
getNeighbours :: User -> Maybe Limit -> APIKey -> Lastfm Response
-- | Gets a list of forthcoming releases based on a user's musical taste.
--
-- More: http://www.last.fm/api/show/user.getNewReleases
getNewReleases :: User -> Maybe UseRecs -> APIKey -> Lastfm Response
-- | Get a paginated list of all events a user has attended in the past.
--
-- More: http://www.last.fm/api/show/user.getPastEvents
getPastEvents :: User -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the user's personal tags.
--
-- More: http://www.last.fm/api/show/user.getPersonalTags
getPersonalTags :: User -> Tag -> TaggingType -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get a list of a user's playlists on Last.fm.
--
-- More: http://www.last.fm/api/show/user.getPlaylists
getPlaylists :: User -> APIKey -> Lastfm Response
-- | Get a list of the recent Stations listened to by this user.
--
-- More: http://www.last.fm/api/show/user.getRecentStations
getRecentStations :: User -> Maybe Page -> Maybe Limit -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Get a list of the recent tracks listened to by this user. Also
-- includes the currently playing track with the nowplaying=true
-- attribute if the user is currently listening.
--
-- More: http://www.last.fm/api/show/user.getRecentTracks
getRecentTracks :: User -> Maybe Page -> Maybe Limit -> Maybe From -> Maybe To -> APIKey -> Lastfm Response
-- | Get Last.fm artist recommendations for a user.
--
-- Mpre: http://www.last.fm/api/show/user.getRecommendedArtists
getRecommendedArtists :: Maybe Page -> Maybe Limit -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Get a paginated list of all events recommended to a user by Last.fm,
-- based on their listening profile.
--
-- More: http://www.last.fm/api/show/user.getRecommendedEvents
getRecommendedEvents :: Maybe Page -> Maybe Limit -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Get shouts for this user. Also available as an rss feed.
--
-- More: http://www.last.fm/api/show/user.getShouts
getShouts :: User -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the top albums listened to by a user. You can stipulate a time
-- period. Sends the overall chart by default.
--
-- More: http://www.last.fm/api/show/user.getTopAlbums
getTopAlbums :: User -> Maybe Period -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the top artists listened to by a user. You can stipulate a time
-- period. Sends the overall chart by default.
--
-- More: http://www.last.fm/api/show/user.getTopArtists
getTopArtists :: User -> Maybe Period -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the top tags used by this user.
--
-- More: http://www.last.fm/api/show/user.getTopTags
getTopTags :: User -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get the top tracks listened to by a user. You can stipulate a time
-- period. Sends the overall chart by default.
--
-- More: http://www.last.fm/api/show/user.getTopTracks
getTopTracks :: User -> Maybe Period -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Get an album chart for a user profile, for a given date range. If no
-- date range is supplied, it will return the most recent album chart for
-- this user.
--
-- More: http://www.last.fm/api/show/user.getWeeklyAlbumChart
getWeeklyAlbumChart :: User -> Maybe From -> Maybe To -> APIKey -> Lastfm Response
-- | Get an artist chart for a user profile, for a given date range. If no
-- date range is supplied, it will return the most recent artist chart
-- for this user.
--
-- More: http://www.last.fm/api/show/user.getWeeklyArtistChart
getWeeklyArtistChart :: User -> Maybe From -> Maybe To -> APIKey -> Lastfm Response
-- | Get a list of available charts for this user, expressed as date ranges
-- which can be sent to the chart services.
--
-- More: http://www.last.fm/api/show/user.getWeeklyChartList
getWeeklyChartList :: User -> APIKey -> Lastfm Response
-- | Get a track chart for a user profile, for a given date range. If no
-- date range is supplied, it will return the most recent track chart for
-- this user.
--
-- More: http://www.last.fm/api/show/user.getWeeklyTrackChart
getWeeklyTrackChart :: User -> Maybe From -> Maybe To -> APIKey -> Lastfm Response
-- | Shout on this user's shoutbox.
--
-- More: http://www.last.fm/api/show/user.shout
shout :: User -> Message -> APIKey -> SessionKey -> Secret -> Lastfm Response
-- | Venue API module
module Network.Lastfm.API.Venue
-- | Get a list of upcoming events at this venue.
--
-- More: http://www.last.fm/api/show/venue.getEvents
getEvents :: Venue -> Maybe FestivalsOnly -> APIKey -> Lastfm Response
-- | Get a paginated list of all the events held at this venue in the past.
--
-- More: http://www.last.fm/api/show/venue.getPastEvents
getPastEvents :: Venue -> Maybe FestivalsOnly -> Maybe Page -> Maybe Limit -> APIKey -> Lastfm Response
-- | Search for a venue by venue name.
--
-- More: http://www.last.fm/api/show/venue.search
search :: Venuename -> Maybe Page -> Maybe Limit -> Maybe Country -> APIKey -> Lastfm Response