packages feed

liblastfm-0.0.3.0: src/Network/Lastfm/API/User.hs

module Network.Lastfm.API.User
  ( getArtistTracks, getBannedTracks, getEvents, getFriends, getInfo, getLovedTracks
  , getNeighbours, getNewReleases, getPastEvents, getPersonalTags, getPlaylists, getRecentStations
  , getRecentTracks, getRecommendedArtists, getRecommendedEvents, getShouts, getTopAlbums
  , getTopArtists, getTopTags, getTopTracks, getWeeklyAlbumChart, getWeeklyArtistChart
  , getWeeklyChartList, getWeeklyTrackChart, shout
  ) where

import Network.Lastfm

getArtistTracks ∷ ResponseType → User → Artist → Maybe StartTimestamp → Maybe EndTimestamp → Maybe Page → APIKey → Lastfm Response
getArtistTracks t user artist startTimestamp endTimestamp page apiKey = callAPI t
  [ (#) (Method "user.getArtistTracks")
  , (#) user
  , (#) artist
  , (#) startTimestamp
  , (#) page
  , (#) endTimestamp
  , (#) apiKey
  ]

getBannedTracks ∷ ResponseType → User → Maybe Page → Maybe Limit → APIKey → Lastfm Response
getBannedTracks t user page limit apiKey = callAPI t
  [ (#) (Method "user.getBannedTracks")
  , (#) user
  , (#) page
  , (#) limit
  , (#) apiKey
  ]

getEvents ∷ ResponseType → User → Maybe Page → Maybe Limit → Maybe FestivalsOnly → APIKey → Lastfm Response
getEvents t user page limit festivalsOnly apiKey = callAPI t
  [ (#) (Method "user.getEvents")
  , (#) user
  , (#) page
  , (#) limit
  , (#) festivalsOnly
  , (#) apiKey
  ]

getFriends ∷ ResponseType → User → Maybe RecentTracks → Maybe Page → Maybe Limit → APIKey → Lastfm Response
getFriends t user recentTracks page limit apiKey = callAPI t
  [ (#) (Method "user.getFriends")
  , (#) user
  , (#) recentTracks
  , (#) page
  , (#) limit
  , (#) apiKey
  ]

getInfo ∷ ResponseType → Maybe User → APIKey → Lastfm Response
getInfo t user apiKey = callAPI t
  [ (#) (Method "user.getInfo")
  , (#) user
  , (#) apiKey
  ]

getLovedTracks ∷ ResponseType → User → Maybe Page → Maybe Limit → APIKey → Lastfm Response
getLovedTracks t user page limit apiKey = callAPI t
  [ (#) (Method "user.getLovedTracks")
  , (#) user
  , (#) page
  , (#) limit
  , (#) apiKey
  ]

getNeighbours ∷ ResponseType → User → Maybe Limit → APIKey → Lastfm Response
getNeighbours t user limit apiKey = callAPI t
  [ (#) (Method "user.getNeighbours")
  , (#) user
  , (#) limit
  , (#) apiKey
  ]

getNewReleases ∷ ResponseType → User → Maybe UseRecs → APIKey → Lastfm Response
getNewReleases t user useRecs apiKey = callAPI t
  [ (#) (Method "user.getNewReleases")
  , (#) user
  , (#) useRecs
  , (#) apiKey
  ]

getPastEvents ∷ ResponseType → User → Maybe Page → Maybe Limit → APIKey → Lastfm Response
getPastEvents t user page limit apiKey = callAPI t
  [ (#) (Method "user.getPastEvents")
  , (#) user
  , (#) page
  , (#) limit
  , (#) apiKey
  ]

getPersonalTags ∷ ResponseType
                → User
                → Tag
                → TaggingType
                → Maybe Page
                → Maybe Limit
                → APIKey
                → Lastfm Response
getPersonalTags t user tag taggingType page limit apiKey = callAPI t
  [ (#) (Method "user.getPersonalTags")
  , (#) user
  , (#) tag
  , (#) taggingType
  , (#) page
  , (#) limit
  , (#) apiKey
  ]

getPlaylists ∷ ResponseType → User → APIKey → Lastfm Response
getPlaylists t user apiKey = callAPI t
  [ (#) (Method "user.getPlaylists")
  , (#) user
  , (#) apiKey
  ]

getRecentStations ∷ ResponseType → User → Maybe Page → Maybe Limit → APIKey → SessionKey → Secret → Lastfm Response
getRecentStations t user page limit apiKey sessionKey secret = callAPIsigned t secret
  [ (#) (Method "user.getRecentStations")
  , (#) user
  , (#) page
  , (#) limit
  , (#) apiKey
  , (#) sessionKey
  ]

getRecentTracks ∷ ResponseType → User → Maybe Page → Maybe Limit → Maybe From → Maybe To → APIKey → Lastfm Response
getRecentTracks t user page limit from to apiKey = callAPI t
  [ (#) (Method "user.getRecentTracks")
  , (#) user
  , (#) page
  , (#) limit
  , (#) from
  , (#) to
  , (#) apiKey
  ]

getRecommendedArtists ∷ ResponseType → Maybe Page → Maybe Limit → APIKey → SessionKey → Secret → Lastfm Response
getRecommendedArtists t page limit apiKey sessionKey secret = callAPIsigned t secret
  [ (#) (Method "user.getRecommendedArtists")
  , (#) page
  , (#) limit
  , (#) apiKey
  , (#) sessionKey
  ]

getRecommendedEvents ∷ ResponseType → Maybe Page → Maybe Limit → APIKey → SessionKey → Secret → Lastfm Response
getRecommendedEvents t page limit apiKey sessionKey secret = callAPIsigned t secret
  [ (#) (Method "user.getRecommendedEvents")
  , (#) page
  , (#) limit
  , (#) apiKey
  , (#) sessionKey
  ]

getShouts ∷ ResponseType → User → Maybe Page → Maybe Limit → APIKey → Lastfm Response
getShouts t user page limit apiKey = callAPI t
  [ (#) (Method "user.getShouts")
  , (#) user
  , (#) page
  , (#) limit
  , (#) apiKey
  ]

getTopAlbums ∷ ResponseType → User → Maybe Period → Maybe Page → Maybe Limit → APIKey → Lastfm Response
getTopAlbums t user period page limit apiKey = callAPI t
  [ (#) (Method "user.getTopAlbums")
  , (#) user
  , (#) period
  , (#) page
  , (#) limit
  , (#) apiKey
  ]

getTopArtists ∷ ResponseType → User → Maybe Period → Maybe Page → Maybe Limit → APIKey → Lastfm Response
getTopArtists t user period page limit apiKey = callAPI t
  [ (#) (Method "user.getTopArtists")
  , (#) user
  , (#) period
  , (#) page
  , (#) limit
  , (#) apiKey
  ]

getTopTags ∷ ResponseType → User → Maybe Limit → APIKey → Lastfm Response
getTopTags t user limit apiKey = callAPI t
  [ (#) (Method "user.getTopTags")
  , (#) user
  , (#) limit
  , (#) apiKey
  ]

getTopTracks ∷ ResponseType → User → Maybe Period → Maybe Page → Maybe Limit → APIKey → Lastfm Response
getTopTracks t user period page limit apiKey = callAPI t
  [ (#) (Method "user.getTopTracks")
  , (#) user
  , (#) period
  , (#) page
  , (#) limit
  , (#) apiKey
  ]

getWeeklyAlbumChart ∷ ResponseType → User → Maybe From → Maybe To → APIKey → Lastfm Response
getWeeklyAlbumChart t user from to apiKey = callAPI t
  [ (#) (Method "user.getWeeklyAlbumChart")
  , (#) user
  , (#) from
  , (#) to
  , (#) apiKey
  ]

getWeeklyArtistChart ∷ ResponseType → User → Maybe From → Maybe To → APIKey → Lastfm Response
getWeeklyArtistChart t user from to apiKey = callAPI t
  [ (#) (Method "user.getWeeklyArtistChart")
  , (#) user
  , (#) from
  , (#) to
  , (#) apiKey
  ]

getWeeklyChartList ∷ ResponseType → User → APIKey → Lastfm Response
getWeeklyChartList t user apiKey = callAPI t
  [ (#) (Method "user.getWeeklyChartList")
  , (#) user
  , (#) apiKey
  ]

getWeeklyTrackChart ∷ ResponseType → User → Maybe From → Maybe To → APIKey → Lastfm Response
getWeeklyTrackChart t user from to apiKey = callAPI t
  [ (#) (Method "user.getWeeklyTrackChart")
  , (#) user
  , (#) from
  , (#) to
  , (#) apiKey
  ]

shout ∷ ResponseType → User → Message → APIKey → SessionKey → Secret → Lastfm Response
shout t user message apiKey sessionKey secret = callAPIsigned t secret
  [ (#) (Method "user.shout")
  , (#) user
  , (#) message
  , (#) apiKey
  , (#) sessionKey
  ]