2022-09-30 05:39:11 +00:00

83 lines
3.1 KiB
JavaScript

var defaults = require('./defaults');
var User = module.exports = function (lastfm) {
this.lastfm = lastfm;
};
User.prototype.getArtistTracks = function (params, callback) {
var options = defaults.defaultOptions(params, callback, 'artisttracks');
this.lastfm.api.request('user.getArtistTracks', options);
};
User.prototype.getFriends = function (params, callback) {
var options = defaults.defaultOptions(params, callback, 'friends');
this.lastfm.api.request('user.getFriends', options);
};
User.prototype.getInfo = function (user, callback) {
if (typeof callback !== 'function') { callback = user; user = null; }
var params = (user) ? { 'user' : user } : null;
var options = defaults.defaultOptions(params, callback, 'user');
if (!params) { options.sk = this.lastfm.sessionCredentials.key; }
this.lastfm.api.request('user.getInfo', options);
};
User.prototype.getLovedTracks = function (params, callback) {
var options = defaults.defaultOptions(params, callback, 'lovedtracks');
this.lastfm.api.request('user.getLovedTracks', options);
};
User.prototype.getPersonalTags = function (params, callback) {
var options = defaults.defaultOptions(params, callback, 'taggings');
this.lastfm.api.request('user.getPersonalTags', options);
};
User.prototype.getRecentTracks = function (params, callback) {
var options = defaults.defaultOptions(params, callback, 'recenttracks');
this.lastfm.api.request('user.getRecentTracks', options);
};
User.prototype.getTopAlbums = function (params, callback) {
var options = defaults.defaultOptions(params, callback, 'topalbums');
this.lastfm.api.request('user.getTopAlbums', options);
};
User.prototype.getTopArtists = function (params, callback) {
var options = defaults.defaultOptions(params, callback, 'topartists');
this.lastfm.api.request('user.getTopArtists', options);
};
User.prototype.getTopTags = function (user, limit, callback) {
if (typeof callback !== 'function') { callback = limit; limit = null; }
var options = defaults.defaultOptions({
'user' : user,
'limit' : limit
}, callback, 'toptags');
this.lastfm.api.request('user.getTopTags', options);
};
User.prototype.getTopTracks = function (params, callback) {
var options = defaults.defaultOptions(params, callback, 'toptracks');
this.lastfm.api.request('user.getTopTracks', options);
};
User.prototype.getWeeklyAlbumChart = function (params, callback) {
var options = defaults.defaultOptions(params, callback, 'weeklyalbumchart');
this.lastfm.api.request('user.getWeeklyAlbumChart', options);
};
User.prototype.getWeeklyArtistChart = function (params, callback) {
var options = defaults.defaultOptions(params, callback, 'weeklyartistchart');
this.lastfm.api.request('user.getWeeklyArtistChart', options);
};
User.prototype.getWeeklyChartList = function (user, callback) {
var options = defaults.defaultOptions({ 'user' : user }, callback, 'weeklychartlist');
this.lastfm.api.request('user.getWeeklyChartList', options);
};
User.prototype.getWeeklyTrackChart = function (params, callback) {
var options = defaults.defaultOptions(params, callback, 'weeklytrackchart');
this.lastfm.api.request('user.getWeeklyTrackChart', options);
};