mirror of
https://github.com/Sarsoo/IF.Lastfm.git
synced 2024-10-17 07:13:09 +01:00
Rename track, album and artist objects
This commit is contained in:
parent
878e7c0e63
commit
c8429bd361
@ -17,9 +17,9 @@ public void AlbumParsesValidJson()
|
|||||||
{
|
{
|
||||||
var jo = ResourceManager.LoadResource(Encoding.UTF8.GetString(TestData.AlbumGetInfo));
|
var jo = ResourceManager.LoadResource(Encoding.UTF8.GetString(TestData.AlbumGetInfo));
|
||||||
|
|
||||||
var parsed = Album.ParseJToken(jo.SelectToken("album"));
|
var parsed = LastAlbum.ParseJToken(jo.SelectToken("album"));
|
||||||
|
|
||||||
var expected = new Album
|
var expected = new LastAlbum
|
||||||
{
|
{
|
||||||
ArtistId = "283786832",
|
ArtistId = "283786832",
|
||||||
ArtistName = "Grimes",
|
ArtistName = "Grimes",
|
||||||
@ -42,7 +42,7 @@ public void AlbumParsesValidJson()
|
|||||||
Url = new Uri("http://www.last.fm/tag/best%20of%202012", UriKind.Absolute)
|
Url = new Uri("http://www.last.fm/tag/best%20of%202012", UriKind.Absolute)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Tracks = new List<Track>
|
Tracks = new List<LastTrack>
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -15,7 +15,7 @@ public AlbumApi(IAuth auth)
|
|||||||
Auth = auth;
|
Auth = auth;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<LastResponse<Album>> GetAlbumInfoAsync(string artistname, string albumname, bool autocorrect = false)
|
public async Task<LastResponse<LastAlbum>> GetAlbumInfoAsync(string artistname, string albumname, bool autocorrect = false)
|
||||||
{
|
{
|
||||||
var command = new GetAlbumInfoCommand(Auth, artistname, albumname)
|
var command = new GetAlbumInfoCommand(Auth, artistname, albumname)
|
||||||
{
|
{
|
||||||
@ -40,7 +40,7 @@ public Task<PageResponse<Tag>> GetTopTagsForAlbumAsync(string artist, string alb
|
|||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<PageResponse<Album>> SearchForAlbumAsync(string album, int page = 1, int itemsPerPage = LastFm.DefaultPageLength)
|
public Task<PageResponse<LastAlbum>> SearchForAlbumAsync(string album, int page = 1, int itemsPerPage = LastFm.DefaultPageLength)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ public ArtistApi(IAuth auth)
|
|||||||
Auth = auth;
|
Auth = auth;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<LastResponse<Artist>> GetArtistInfoAsync(string artist,
|
public async Task<LastResponse<LastArtist>> GetArtistInfoAsync(string artist,
|
||||||
string bioLang = LastFm.DefaultLanguageCode,
|
string bioLang = LastFm.DefaultLanguageCode,
|
||||||
bool autocorrect = false)
|
bool autocorrect = false)
|
||||||
{
|
{
|
||||||
@ -28,7 +28,7 @@ public async Task<LastResponse<Artist>> GetArtistInfoAsync(string artist,
|
|||||||
return await command.ExecuteAsync();
|
return await command.ExecuteAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<PageResponse<Album>> GetTopAlbumsForArtistAsync(string artist,
|
public async Task<PageResponse<LastAlbum>> GetTopAlbumsForArtistAsync(string artist,
|
||||||
bool autocorrect = false,
|
bool autocorrect = false,
|
||||||
int page = 1,
|
int page = 1,
|
||||||
int itemsPerPage = LastFm.DefaultPageLength)
|
int itemsPerPage = LastFm.DefaultPageLength)
|
||||||
@ -37,7 +37,7 @@ public async Task<PageResponse<Album>> GetTopAlbumsForArtistAsync(string artist,
|
|||||||
return await command.ExecuteAsync();
|
return await command.ExecuteAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<PageResponse<Track>> GetTopTracksForArtistAsync(string artist,
|
public async Task<PageResponse<LastTrack>> GetTopTracksForArtistAsync(string artist,
|
||||||
bool autocorrect = false,
|
bool autocorrect = false,
|
||||||
int page = 1,
|
int page = 1,
|
||||||
int itemsPerPage = LastFm.DefaultPageLength)
|
int itemsPerPage = LastFm.DefaultPageLength)
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
namespace IF.Lastfm.Core.Api.Commands.AlbumApi
|
namespace IF.Lastfm.Core.Api.Commands.AlbumApi
|
||||||
{
|
{
|
||||||
internal class GetAlbumInfoCommand : GetAsyncCommandBase<LastResponse<Album>>
|
internal class GetAlbumInfoCommand : GetAsyncCommandBase<LastResponse<LastAlbum>>
|
||||||
{
|
{
|
||||||
public string ArtistName { get; private set; }
|
public string ArtistName { get; private set; }
|
||||||
public string AlbumName { get; private set; }
|
public string AlbumName { get; private set; }
|
||||||
@ -32,7 +32,7 @@ public override void SetParameters()
|
|||||||
base.DisableCaching();
|
base.DisableCaching();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async override Task<LastResponse<Album>> HandleResponse(HttpResponseMessage response)
|
public async override Task<LastResponse<LastAlbum>> HandleResponse(HttpResponseMessage response)
|
||||||
{
|
{
|
||||||
string json = await response.Content.ReadAsStringAsync();
|
string json = await response.Content.ReadAsStringAsync();
|
||||||
|
|
||||||
@ -41,13 +41,13 @@ public async override Task<LastResponse<Album>> HandleResponse(HttpResponseMessa
|
|||||||
{
|
{
|
||||||
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
|
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
|
||||||
|
|
||||||
var album = Album.ParseJToken(jtoken.SelectToken("album"));
|
var album = LastAlbum.ParseJToken(jtoken.SelectToken("album"));
|
||||||
|
|
||||||
return LastResponse<Album>.CreateSuccessResponse(album);
|
return LastResponse<LastAlbum>.CreateSuccessResponse(album);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return LastResponse.CreateErrorResponse<LastResponse<Album>>(error);
|
return LastResponse.CreateErrorResponse<LastResponse<LastAlbum>>(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace IF.Lastfm.Core.Api.Commands.ArtistApi
|
namespace IF.Lastfm.Core.Api.Commands.ArtistApi
|
||||||
{
|
{
|
||||||
internal class GetArtistInfoCommand : GetAsyncCommandBase<LastResponse<Artist>>
|
internal class GetArtistInfoCommand : GetAsyncCommandBase<LastResponse<LastArtist>>
|
||||||
{
|
{
|
||||||
public string ArtistName { get; set; }
|
public string ArtistName { get; set; }
|
||||||
public string BioLanguage { get; set; }
|
public string BioLanguage { get; set; }
|
||||||
@ -33,7 +33,7 @@ public override void SetParameters()
|
|||||||
base.DisableCaching();
|
base.DisableCaching();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async override Task<LastResponse<Artist>> HandleResponse(HttpResponseMessage response)
|
public async override Task<LastResponse<LastArtist>> HandleResponse(HttpResponseMessage response)
|
||||||
{
|
{
|
||||||
string json = await response.Content.ReadAsStringAsync();
|
string json = await response.Content.ReadAsStringAsync();
|
||||||
|
|
||||||
@ -42,13 +42,13 @@ public async override Task<LastResponse<Artist>> HandleResponse(HttpResponseMess
|
|||||||
{
|
{
|
||||||
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
|
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
|
||||||
|
|
||||||
var artist = Artist.ParseJToken(jtoken.SelectToken("artist"));
|
var artist = LastArtist.ParseJToken(jtoken.SelectToken("artist"));
|
||||||
|
|
||||||
return LastResponse<Artist>.CreateSuccessResponse(artist);
|
return LastResponse<LastArtist>.CreateSuccessResponse(artist);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return LastResponse.CreateErrorResponse<LastResponse<Artist>>(error);
|
return LastResponse.CreateErrorResponse<LastResponse<LastArtist>>(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
namespace IF.Lastfm.Core.Api.Commands.ArtistApi
|
namespace IF.Lastfm.Core.Api.Commands.ArtistApi
|
||||||
{
|
{
|
||||||
internal class GetArtistTopAlbumsCommand : GetAsyncCommandBase<PageResponse<Album>>
|
internal class GetArtistTopAlbumsCommand : GetAsyncCommandBase<PageResponse<LastAlbum>>
|
||||||
{
|
{
|
||||||
public string ArtistName { get; set; }
|
public string ArtistName { get; set; }
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ public override void SetParameters()
|
|||||||
base.DisableCaching();
|
base.DisableCaching();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async override Task<PageResponse<Album>> HandleResponse(HttpResponseMessage response)
|
public async override Task<PageResponse<LastAlbum>> HandleResponse(HttpResponseMessage response)
|
||||||
{
|
{
|
||||||
string json = await response.Content.ReadAsStringAsync();
|
string json = await response.Content.ReadAsStringAsync();
|
||||||
|
|
||||||
@ -38,15 +38,15 @@ public async override Task<PageResponse<Album>> HandleResponse(HttpResponseMessa
|
|||||||
{
|
{
|
||||||
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
|
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
|
||||||
|
|
||||||
var albums = new List<Album>();
|
var albums = new List<LastAlbum>();
|
||||||
|
|
||||||
foreach (var jToken in jtoken.SelectToken("topalbums").SelectToken("album").Children())
|
foreach (var jToken in jtoken.SelectToken("topalbums").SelectToken("album").Children())
|
||||||
{
|
{
|
||||||
var album = Album.ParseJToken(jToken);
|
var album = LastAlbum.ParseJToken(jToken);
|
||||||
albums.Add(album);
|
albums.Add(album);
|
||||||
}
|
}
|
||||||
|
|
||||||
var pageresponse = PageResponse<Album>.CreateSuccessResponse(albums);
|
var pageresponse = PageResponse<LastAlbum>.CreateSuccessResponse(albums);
|
||||||
|
|
||||||
var attrToken = jtoken.SelectToken("topalbums").SelectToken("@attr");
|
var attrToken = jtoken.SelectToken("topalbums").SelectToken("@attr");
|
||||||
pageresponse.AddPageInfoFromJToken(attrToken);
|
pageresponse.AddPageInfoFromJToken(attrToken);
|
||||||
@ -55,7 +55,7 @@ public async override Task<PageResponse<Album>> HandleResponse(HttpResponseMessa
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return LastResponse.CreateErrorResponse<PageResponse<Album>>(error);
|
return LastResponse.CreateErrorResponse<PageResponse<LastAlbum>>(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
namespace IF.Lastfm.Core.Api.Commands.ArtistApi
|
namespace IF.Lastfm.Core.Api.Commands.ArtistApi
|
||||||
{
|
{
|
||||||
internal class GetArtistTopTracksCommand : GetAsyncCommandBase<PageResponse<Track>>
|
internal class GetArtistTopTracksCommand : GetAsyncCommandBase<PageResponse<LastTrack>>
|
||||||
{
|
{
|
||||||
public string ArtistName { get; set; }
|
public string ArtistName { get; set; }
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ public override void SetParameters()
|
|||||||
base.DisableCaching();
|
base.DisableCaching();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async override Task<PageResponse<Track>> HandleResponse(HttpResponseMessage response)
|
public async override Task<PageResponse<LastTrack>> HandleResponse(HttpResponseMessage response)
|
||||||
{
|
{
|
||||||
string json = await response.Content.ReadAsStringAsync();
|
string json = await response.Content.ReadAsStringAsync();
|
||||||
|
|
||||||
@ -38,15 +38,15 @@ public async override Task<PageResponse<Track>> HandleResponse(HttpResponseMessa
|
|||||||
{
|
{
|
||||||
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
|
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
|
||||||
|
|
||||||
var tracks = new List<Track>();
|
var tracks = new List<LastTrack>();
|
||||||
|
|
||||||
foreach (var jToken in jtoken.SelectToken("toptracks").SelectToken("track").Children())
|
foreach (var jToken in jtoken.SelectToken("toptracks").SelectToken("track").Children())
|
||||||
{
|
{
|
||||||
var t = Track.ParseJToken(jToken);
|
var t = LastTrack.ParseJToken(jToken);
|
||||||
tracks.Add(t);
|
tracks.Add(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
var pageresponse = PageResponse<Track>.CreateSuccessResponse(tracks);
|
var pageresponse = PageResponse<LastTrack>.CreateSuccessResponse(tracks);
|
||||||
|
|
||||||
var attrToken = jtoken.SelectToken("toptracks").SelectToken("@attr");
|
var attrToken = jtoken.SelectToken("toptracks").SelectToken("@attr");
|
||||||
pageresponse.AddPageInfoFromJToken(attrToken);
|
pageresponse.AddPageInfoFromJToken(attrToken);
|
||||||
@ -55,7 +55,7 @@ public async override Task<PageResponse<Track>> HandleResponse(HttpResponseMessa
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return LastResponse.CreateErrorResponse<PageResponse<Track>>(error);
|
return LastResponse.CreateErrorResponse<PageResponse<LastTrack>>(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace IF.Lastfm.Core.Api.Commands.TrackApi
|
namespace IF.Lastfm.Core.Api.Commands.TrackApi
|
||||||
{
|
{
|
||||||
internal class GetTrackInfoCommand : GetAsyncCommandBase<LastResponse<Track>>
|
internal class GetTrackInfoCommand : GetAsyncCommandBase<LastResponse<LastTrack>>
|
||||||
{
|
{
|
||||||
public string TrackName { get; set; }
|
public string TrackName { get; set; }
|
||||||
public string ArtistName { get; set; }
|
public string ArtistName { get; set; }
|
||||||
@ -36,7 +36,7 @@ public override void SetParameters()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async override Task<LastResponse<Track>> HandleResponse(HttpResponseMessage response)
|
public async override Task<LastResponse<LastTrack>> HandleResponse(HttpResponseMessage response)
|
||||||
{
|
{
|
||||||
string json = await response.Content.ReadAsStringAsync();
|
string json = await response.Content.ReadAsStringAsync();
|
||||||
|
|
||||||
@ -45,13 +45,13 @@ public async override Task<LastResponse<Track>> HandleResponse(HttpResponseMessa
|
|||||||
{
|
{
|
||||||
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
|
var jtoken = JsonConvert.DeserializeObject<JToken>(json);
|
||||||
|
|
||||||
var track = Track.ParseJToken(jtoken.SelectToken("track"));
|
var track = LastTrack.ParseJToken(jtoken.SelectToken("track"));
|
||||||
|
|
||||||
return LastResponse<Track>.CreateSuccessResponse(track);
|
return LastResponse<LastTrack>.CreateSuccessResponse(track);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return LastResponse.CreateErrorResponse<LastResponse<Track>>(error);
|
return LastResponse.CreateErrorResponse<LastResponse<LastTrack>>(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
namespace IF.Lastfm.Core.Api.Commands.UserApi
|
namespace IF.Lastfm.Core.Api.Commands.UserApi
|
||||||
{
|
{
|
||||||
internal class GetRecentScrobblesCommand : GetAsyncCommandBase<PageResponse<Track>>
|
internal class GetRecentScrobblesCommand : GetAsyncCommandBase<PageResponse<LastTrack>>
|
||||||
{
|
{
|
||||||
public string Username { get; private set; }
|
public string Username { get; private set; }
|
||||||
public DateTime From { get; private set; }
|
public DateTime From { get; private set; }
|
||||||
@ -31,7 +31,7 @@ public override void SetParameters()
|
|||||||
DisableCaching();
|
DisableCaching();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async override Task<PageResponse<Track>> HandleResponse(HttpResponseMessage response)
|
public async override Task<PageResponse<LastTrack>> HandleResponse(HttpResponseMessage response)
|
||||||
{
|
{
|
||||||
var json = await response.Content.ReadAsStringAsync();
|
var json = await response.Content.ReadAsStringAsync();
|
||||||
|
|
||||||
@ -42,15 +42,15 @@ public async override Task<PageResponse<Track>> HandleResponse(HttpResponseMessa
|
|||||||
|
|
||||||
var tracksToken = jtoken.SelectToken("track");
|
var tracksToken = jtoken.SelectToken("track");
|
||||||
|
|
||||||
var tracks = new List<Track>();
|
var tracks = new List<LastTrack>();
|
||||||
foreach (var track in tracksToken.Children())
|
foreach (var track in tracksToken.Children())
|
||||||
{
|
{
|
||||||
var t = Track.ParseJToken(track);
|
var t = LastTrack.ParseJToken(track);
|
||||||
|
|
||||||
tracks.Add(t);
|
tracks.Add(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
var pageresponse = PageResponse<Track>.CreateSuccessResponse(tracks);
|
var pageresponse = PageResponse<LastTrack>.CreateSuccessResponse(tracks);
|
||||||
|
|
||||||
var attrToken = jtoken.SelectToken("@attr");
|
var attrToken = jtoken.SelectToken("@attr");
|
||||||
pageresponse.AddPageInfoFromJToken(attrToken);
|
pageresponse.AddPageInfoFromJToken(attrToken);
|
||||||
@ -59,7 +59,7 @@ public async override Task<PageResponse<Track>> HandleResponse(HttpResponseMessa
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return LastResponse.CreateErrorResponse<PageResponse<Track>>(error);
|
return LastResponse.CreateErrorResponse<PageResponse<LastTrack>>(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
namespace IF.Lastfm.Core.Api.Commands.UserApi
|
namespace IF.Lastfm.Core.Api.Commands.UserApi
|
||||||
{
|
{
|
||||||
internal class GetTopAlbumsCommand : GetAsyncCommandBase<PageResponse<Album>>
|
internal class GetTopAlbumsCommand : GetAsyncCommandBase<PageResponse<LastAlbum>>
|
||||||
{
|
{
|
||||||
public string Username { get; set; }
|
public string Username { get; set; }
|
||||||
public LastStatsTimeSpan TimeSpan { get; set; }
|
public LastStatsTimeSpan TimeSpan { get; set; }
|
||||||
@ -32,7 +32,7 @@ public override void SetParameters()
|
|||||||
DisableCaching();
|
DisableCaching();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async override Task<PageResponse<Album>> HandleResponse(HttpResponseMessage response)
|
public async override Task<PageResponse<LastAlbum>> HandleResponse(HttpResponseMessage response)
|
||||||
{
|
{
|
||||||
string json = await response.Content.ReadAsStringAsync();
|
string json = await response.Content.ReadAsStringAsync();
|
||||||
|
|
||||||
@ -43,13 +43,13 @@ public async override Task<PageResponse<Album>> HandleResponse(HttpResponseMessa
|
|||||||
|
|
||||||
var albumsToken = jtoken.SelectToken("topalbums").SelectToken("album");
|
var albumsToken = jtoken.SelectToken("topalbums").SelectToken("album");
|
||||||
|
|
||||||
var albums = albumsToken.Children().Select(Album.ParseJToken);
|
var albums = albumsToken.Children().Select(LastAlbum.ParseJToken);
|
||||||
|
|
||||||
return PageResponse<Album>.CreateSuccessResponse(albums);
|
return PageResponse<LastAlbum>.CreateSuccessResponse(albums);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return LastResponse.CreateErrorResponse<PageResponse<Album>>(error);
|
return LastResponse.CreateErrorResponse<PageResponse<LastAlbum>>(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ public interface IAlbumApi
|
|||||||
{
|
{
|
||||||
IAuth Auth { get; }
|
IAuth Auth { get; }
|
||||||
|
|
||||||
Task<LastResponse<Album>> GetAlbumInfoAsync(string artist, string album, bool autocorrect = false);
|
Task<LastResponse<LastAlbum>> GetAlbumInfoAsync(string artist, string album, bool autocorrect = false);
|
||||||
|
|
||||||
Task<PageResponse<BuyLink>> GetBuyLinksForAlbumAsync(string artist,
|
Task<PageResponse<BuyLink>> GetBuyLinksForAlbumAsync(string artist,
|
||||||
string album,
|
string album,
|
||||||
@ -24,7 +24,7 @@ Task<PageResponse<Tag>> GetTopTagsForAlbumAsync(string artist,
|
|||||||
string album,
|
string album,
|
||||||
bool autocorrect = false);
|
bool autocorrect = false);
|
||||||
|
|
||||||
Task<PageResponse<Album>> SearchForAlbumAsync(string album,
|
Task<PageResponse<LastAlbum>> SearchForAlbumAsync(string album,
|
||||||
int page = 1,
|
int page = 1,
|
||||||
int itemsPerPage = LastFm.DefaultPageLength);
|
int itemsPerPage = LastFm.DefaultPageLength);
|
||||||
|
|
||||||
|
@ -12,15 +12,15 @@ public interface IArtistApi
|
|||||||
{
|
{
|
||||||
IAuth Auth { get; }
|
IAuth Auth { get; }
|
||||||
|
|
||||||
Task<LastResponse<Artist>> GetArtistInfoAsync(string artist, string bioLang = LastFm.DefaultLanguageCode,
|
Task<LastResponse<LastArtist>> GetArtistInfoAsync(string artist, string bioLang = LastFm.DefaultLanguageCode,
|
||||||
bool autocorrect = false);
|
bool autocorrect = false);
|
||||||
|
|
||||||
Task<PageResponse<Album>> GetTopAlbumsForArtistAsync(string artist,
|
Task<PageResponse<LastAlbum>> GetTopAlbumsForArtistAsync(string artist,
|
||||||
bool autocorrect = false,
|
bool autocorrect = false,
|
||||||
int page = 1,
|
int page = 1,
|
||||||
int itemsPerPage = LastFm.DefaultPageLength);
|
int itemsPerPage = LastFm.DefaultPageLength);
|
||||||
|
|
||||||
Task<PageResponse<Track>> GetTopTracksForArtistAsync(string artist,
|
Task<PageResponse<LastTrack>> GetTopTracksForArtistAsync(string artist,
|
||||||
bool autocorrect = false,
|
bool autocorrect = false,
|
||||||
int page = 1,
|
int page = 1,
|
||||||
int itemsPerPage = LastFm.DefaultPageLength);
|
int itemsPerPage = LastFm.DefaultPageLength);
|
||||||
|
@ -18,7 +18,7 @@ Task<PageResponse<Shout>> GetShoutsForTrackAsync(string trackname,
|
|||||||
int page = 0,
|
int page = 0,
|
||||||
int count = LastFm.DefaultPageLength);
|
int count = LastFm.DefaultPageLength);
|
||||||
|
|
||||||
Task<LastResponse<Track>> GetInfoAsync(string trackname, string artistname, string username = "");
|
Task<LastResponse<LastTrack>> GetInfoAsync(string trackname, string artistname, string username = "");
|
||||||
|
|
||||||
Task<LastResponse> LoveTrackAsync(string trackname, string artistname);
|
Task<LastResponse> LoveTrackAsync(string trackname, string artistname);
|
||||||
Task<LastResponse> UnloveTrackAsync(string trackname, string artistname);
|
Task<LastResponse> UnloveTrackAsync(string trackname, string artistname);
|
||||||
|
@ -10,12 +10,12 @@ public interface IUserApi
|
|||||||
{
|
{
|
||||||
IAuth Auth { get; }
|
IAuth Auth { get; }
|
||||||
|
|
||||||
Task<PageResponse<Album>> GetTopAlbums(string username,
|
Task<PageResponse<LastAlbum>> GetTopAlbums(string username,
|
||||||
LastStatsTimeSpan span,
|
LastStatsTimeSpan span,
|
||||||
int startIndex = 0,
|
int startIndex = 0,
|
||||||
int endIndex = LastFm.DefaultPageLength);
|
int endIndex = LastFm.DefaultPageLength);
|
||||||
|
|
||||||
Task<PageResponse<Track>> GetRecentScrobbles(string username,
|
Task<PageResponse<LastTrack>> GetRecentScrobbles(string username,
|
||||||
DateTime since,
|
DateTime since,
|
||||||
int startIndex = 0,
|
int startIndex = 0,
|
||||||
int endIndex = LastFm.DefaultPageLength);
|
int endIndex = LastFm.DefaultPageLength);
|
||||||
|
@ -66,7 +66,7 @@ public async Task<PageResponse<Shout>> GetShoutsForTrackAsync(string trackname,
|
|||||||
return await command.ExecuteAsync();
|
return await command.ExecuteAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<LastResponse<Track>> GetInfoAsync(string trackname, string artistname, string username = "")
|
public async Task<LastResponse<LastTrack>> GetInfoAsync(string trackname, string artistname, string username = "")
|
||||||
{
|
{
|
||||||
var command = new GetTrackInfoCommand(Auth, trackname, artistname)
|
var command = new GetTrackInfoCommand(Auth, trackname, artistname)
|
||||||
{
|
{
|
||||||
|
@ -24,7 +24,7 @@ public UserApi(IAuth auth)
|
|||||||
/// <param name="pagenumber"></param>
|
/// <param name="pagenumber"></param>
|
||||||
/// <param name="count"></param>
|
/// <param name="count"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<PageResponse<Album>> GetTopAlbums(string username, LastStatsTimeSpan span, int pagenumber = 0, int count = LastFm.DefaultPageLength)
|
public async Task<PageResponse<LastAlbum>> GetTopAlbums(string username, LastStatsTimeSpan span, int pagenumber = 0, int count = LastFm.DefaultPageLength)
|
||||||
{
|
{
|
||||||
var command = new GetTopAlbumsCommand(Auth, username, span)
|
var command = new GetTopAlbumsCommand(Auth, username, span)
|
||||||
{
|
{
|
||||||
@ -43,7 +43,7 @@ public async Task<PageResponse<Album>> GetTopAlbums(string username, LastStatsTi
|
|||||||
/// <param name="pagenumber"></param>
|
/// <param name="pagenumber"></param>
|
||||||
/// <param name="count"></param>
|
/// <param name="count"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<PageResponse<Track>> GetRecentScrobbles(string username, DateTime since, int pagenumber = 0, int count = LastFm.DefaultPageLength)
|
public async Task<PageResponse<LastTrack>> GetRecentScrobbles(string username, DateTime since, int pagenumber = 0, int count = LastFm.DefaultPageLength)
|
||||||
{
|
{
|
||||||
var command = new GetRecentScrobblesCommand(Auth, username, since)
|
var command = new GetRecentScrobblesCommand(Auth, username, since)
|
||||||
{
|
{
|
||||||
|
@ -81,8 +81,8 @@
|
|||||||
<Compile Include="Api\UserApi.cs" />
|
<Compile Include="Api\UserApi.cs" />
|
||||||
<Compile Include="Json\LastFmBooleanConverter.cs" />
|
<Compile Include="Json\LastFmBooleanConverter.cs" />
|
||||||
<Compile Include="LastFm.cs" />
|
<Compile Include="LastFm.cs" />
|
||||||
<Compile Include="Objects\Album.cs" />
|
<Compile Include="Objects\LastAlbum.cs" />
|
||||||
<Compile Include="Objects\Artist.cs" />
|
<Compile Include="Objects\LastArtist.cs" />
|
||||||
<Compile Include="Objects\BuyLink.cs" />
|
<Compile Include="Objects\BuyLink.cs" />
|
||||||
<Compile Include="Objects\CountryCode.cs" />
|
<Compile Include="Objects\CountryCode.cs" />
|
||||||
<Compile Include="Objects\ILastFmObject.cs" />
|
<Compile Include="Objects\ILastFmObject.cs" />
|
||||||
@ -90,7 +90,7 @@
|
|||||||
<Compile Include="Objects\Shout.cs" />
|
<Compile Include="Objects\Shout.cs" />
|
||||||
<Compile Include="Objects\Station.cs" />
|
<Compile Include="Objects\Station.cs" />
|
||||||
<Compile Include="Objects\Tag.cs" />
|
<Compile Include="Objects\Tag.cs" />
|
||||||
<Compile Include="Objects\Track.cs" />
|
<Compile Include="Objects\LastTrack.cs" />
|
||||||
<Compile Include="Objects\User.cs" />
|
<Compile Include="Objects\User.cs" />
|
||||||
<Compile Include="Objects\UserSession.cs" />
|
<Compile Include="Objects\UserSession.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
@ -5,12 +5,12 @@
|
|||||||
|
|
||||||
namespace IF.Lastfm.Core.Objects
|
namespace IF.Lastfm.Core.Objects
|
||||||
{
|
{
|
||||||
public class Album : ILastFmObject
|
public class LastAlbum : ILastFmObject
|
||||||
{
|
{
|
||||||
#region Properties
|
#region Properties
|
||||||
|
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public IEnumerable<Track> Tracks { get; set; }
|
public IEnumerable<LastTrack> Tracks { get; set; }
|
||||||
|
|
||||||
public string ArtistName { get; set; }
|
public string ArtistName { get; set; }
|
||||||
public string ArtistId { get; set; }
|
public string ArtistId { get; set; }
|
||||||
@ -36,9 +36,9 @@ public class Album : ILastFmObject
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="token"></param>
|
/// <param name="token"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
internal static Album ParseJToken(JToken token)
|
internal static LastAlbum ParseJToken(JToken token)
|
||||||
{
|
{
|
||||||
var a = new Album();
|
var a = new LastAlbum();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -48,7 +48,7 @@ internal static Album ParseJToken(JToken token)
|
|||||||
var tracksToken = token.SelectToken("tracks").SelectToken("track");
|
var tracksToken = token.SelectToken("tracks").SelectToken("track");
|
||||||
if (tracksToken != null)
|
if (tracksToken != null)
|
||||||
{
|
{
|
||||||
a.Tracks = tracksToken.Children().Select(trackToken => Track.ParseJToken(trackToken, a.Name));
|
a.Tracks = tracksToken.Children().Select(trackToken => LastTrack.ParseJToken(trackToken, a.Name));
|
||||||
}
|
}
|
||||||
|
|
||||||
var tagsToken = token.SelectToken("toptags").SelectToken("tag");
|
var tagsToken = token.SelectToken("toptags").SelectToken("tag");
|
||||||
@ -59,8 +59,8 @@ internal static Album ParseJToken(JToken token)
|
|||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
// for when artist is not a string but a Artist object
|
// for when artist is not a string but a LastArtist object
|
||||||
var artist = token.SelectToken("artist").ToObject<Artist>();
|
var artist = token.SelectToken("artist").ToObject<LastArtist>();
|
||||||
a.ArtistName = artist.Name;
|
a.ArtistName = artist.Name;
|
||||||
a.ArtistId = artist.Mbid;
|
a.ArtistId = artist.Mbid;
|
||||||
}
|
}
|
@ -8,7 +8,7 @@ namespace IF.Lastfm.Core.Objects
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Todo bio, tour, similar, stats, streamable
|
/// Todo bio, tour, similar, stats, streamable
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Artist : ILastFmObject
|
public class LastArtist : ILastFmObject
|
||||||
{
|
{
|
||||||
#region Properties
|
#region Properties
|
||||||
|
|
||||||
@ -22,9 +22,9 @@ public class Artist : ILastFmObject
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
internal static Artist ParseJToken(JToken token)
|
internal static LastArtist ParseJToken(JToken token)
|
||||||
{
|
{
|
||||||
var a = new Artist();
|
var a = new LastArtist();
|
||||||
|
|
||||||
a.Name = token.Value<string>("name");
|
a.Name = token.Value<string>("name");
|
||||||
a.Mbid = token.Value<string>("mbid");
|
a.Mbid = token.Value<string>("mbid");
|
@ -9,7 +9,7 @@ namespace IF.Lastfm.Core.Objects
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// TODO Wiki, Stream availability
|
/// TODO Wiki, Stream availability
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Track : ILastFmObject
|
public class LastTrack : ILastFmObject
|
||||||
{
|
{
|
||||||
#region Properties
|
#region Properties
|
||||||
|
|
||||||
@ -39,9 +39,9 @@ public class Track : ILastFmObject
|
|||||||
/// <param name="token">A valid JToken</param>
|
/// <param name="token">A valid JToken</param>
|
||||||
/// <returns>track equivalent to the JToken</returns>
|
/// <returns>track equivalent to the JToken</returns>
|
||||||
/// <remarks>If this method is used directly then the duration attribute will be parsed as MILLIseconds</remarks>
|
/// <remarks>If this method is used directly then the duration attribute will be parsed as MILLIseconds</remarks>
|
||||||
internal static Track ParseJToken(JToken token)
|
internal static LastTrack ParseJToken(JToken token)
|
||||||
{
|
{
|
||||||
var t = new Track();
|
var t = new LastTrack();
|
||||||
|
|
||||||
t.Name = token.Value<string>("name");
|
t.Name = token.Value<string>("name");
|
||||||
t.Mbid = token.Value<string>("mbid");
|
t.Mbid = token.Value<string>("mbid");
|
||||||
@ -50,14 +50,14 @@ internal static Track ParseJToken(JToken token)
|
|||||||
var artistToken = token.SelectToken("artist");
|
var artistToken = token.SelectToken("artist");
|
||||||
if (artistToken != null)
|
if (artistToken != null)
|
||||||
{
|
{
|
||||||
t.ArtistName = Artist.GetNameFromJToken(artistToken);
|
t.ArtistName = LastArtist.GetNameFromJToken(artistToken);
|
||||||
t.ArtistMbid = artistToken.Value<string>("mbid");
|
t.ArtistMbid = artistToken.Value<string>("mbid");
|
||||||
}
|
}
|
||||||
|
|
||||||
var albumToken = token.SelectToken("album");
|
var albumToken = token.SelectToken("album");
|
||||||
if (albumToken != null)
|
if (albumToken != null)
|
||||||
{
|
{
|
||||||
t.AlbumName = Album.GetNameFromJToken(albumToken);
|
t.AlbumName = LastAlbum.GetNameFromJToken(albumToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
var tagsToken = token.SelectToken("toptags");
|
var tagsToken = token.SelectToken("toptags");
|
||||||
@ -109,7 +109,7 @@ internal static Track ParseJToken(JToken token)
|
|||||||
/// <param name="albumName">Name of the album this track belongs to</param>
|
/// <param name="albumName">Name of the album this track belongs to</param>
|
||||||
/// <returns>track equivalent to the JToken</returns>
|
/// <returns>track equivalent to the JToken</returns>
|
||||||
/// <remarks>If this method is used then the duration attribute will be parsed as seconds</remarks>
|
/// <remarks>If this method is used then the duration attribute will be parsed as seconds</remarks>
|
||||||
internal static Track ParseJToken(JToken token, string albumName)
|
internal static LastTrack ParseJToken(JToken token, string albumName)
|
||||||
{
|
{
|
||||||
var t = ParseJToken(token);
|
var t = ParseJToken(token);
|
||||||
t.AlbumName = albumName;
|
t.AlbumName = albumName;
|
@ -39,7 +39,7 @@
|
|||||||
<Button Content="Scrobbling" Click="OnScrobblingLinkClick"/>
|
<Button Content="Scrobbling" Click="OnScrobblingLinkClick"/>
|
||||||
<Button Content="History" Click="OnHistoryLinkClick"/>
|
<Button Content="History" Click="OnHistoryLinkClick"/>
|
||||||
<Button Content="Recent Stations" Click="OnRecentStationsLinkClick"/>
|
<Button Content="Recent Stations" Click="OnRecentStationsLinkClick"/>
|
||||||
<Button Content="Get Artist Info" Click="OnGetArtistInfoLinkClick"/>
|
<Button Content="Get LastArtist Info" Click="OnGetArtistInfoLinkClick"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
|
@ -36,17 +36,17 @@
|
|||||||
Margin="12,0">
|
Margin="12,0">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<StackPanel.Background>
|
<StackPanel.Background>
|
||||||
<ImageBrush ImageSource="{Binding Artist.MainImage.Mega}"
|
<ImageBrush ImageSource="{Binding LastArtist.MainImage.Mega}"
|
||||||
Opacity="0.7"
|
Opacity="0.7"
|
||||||
Stretch="UniformToFill"/>
|
Stretch="UniformToFill"/>
|
||||||
</StackPanel.Background>
|
</StackPanel.Background>
|
||||||
<TextBlock Text="LASTFM-WP DEMO APP" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
|
<TextBlock Text="LASTFM-WP DEMO APP" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
|
||||||
<TextBlock Text="artist info" Margin="9,-7,0,12" Style="{StaticResource PhoneTextTitle1Style}"/>
|
<TextBlock Text="artist info" Margin="9,-7,0,12" Style="{StaticResource PhoneTextTitle1Style}"/>
|
||||||
<toolkit:PhoneTextBox Hint="Artist" Text="{Binding ArtistName, Mode=TwoWay}"/>
|
<toolkit:PhoneTextBox Hint="LastArtist" Text="{Binding ArtistName, Mode=TwoWay}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<TextBlock Text="top tags" Margin="12,12,0,12" Style="{StaticResource PhoneTextTitle2Style}"/>
|
<TextBlock Text="top tags" Margin="12,12,0,12" Style="{StaticResource PhoneTextTitle2Style}"/>
|
||||||
<ItemsControl ItemsSource="{Binding Artist.Tags}"
|
<ItemsControl ItemsSource="{Binding LastArtist.Tags}"
|
||||||
VerticalAlignment="Top">
|
VerticalAlignment="Top">
|
||||||
<ItemsControl.ItemTemplate>
|
<ItemsControl.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
|
@ -10,10 +10,10 @@ namespace IF.Lastfm.Demo.Apollo.ViewModels.ArtistApi
|
|||||||
public class GetArtistInfoViewModel : BaseViewModel
|
public class GetArtistInfoViewModel : BaseViewModel
|
||||||
{
|
{
|
||||||
private string _artistName;
|
private string _artistName;
|
||||||
private Artist _artist;
|
private LastArtist _lastArtist;
|
||||||
private bool _inProgress;
|
private bool _inProgress;
|
||||||
private IEnumerable<Track> _topTracks;
|
private IEnumerable<LastTrack> _topTracks;
|
||||||
private IEnumerable<Album> _topAlbums;
|
private IEnumerable<LastAlbum> _topAlbums;
|
||||||
|
|
||||||
public string ArtistName
|
public string ArtistName
|
||||||
{
|
{
|
||||||
@ -30,17 +30,17 @@ public string ArtistName
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Artist Artist
|
public LastArtist LastArtist
|
||||||
{
|
{
|
||||||
get { return _artist; }
|
get { return _lastArtist; }
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (Equals(value, _artist))
|
if (Equals(value, _lastArtist))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_artist = value;
|
_lastArtist = value;
|
||||||
OnPropertyChanged();
|
OnPropertyChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -59,7 +59,7 @@ public bool InProgress
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<Track> TopTracks
|
public IEnumerable<LastTrack> TopTracks
|
||||||
{
|
{
|
||||||
get { return _topTracks; }
|
get { return _topTracks; }
|
||||||
set
|
set
|
||||||
@ -73,7 +73,7 @@ public IEnumerable<Track> TopTracks
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<Album> TopAlbums
|
public IEnumerable<LastAlbum> TopAlbums
|
||||||
{
|
{
|
||||||
get { return _topAlbums; }
|
get { return _topAlbums; }
|
||||||
set
|
set
|
||||||
@ -113,7 +113,7 @@ public async Task GetInfo()
|
|||||||
var artist = await artistApi.GetArtistInfoAsync(ArtistName);
|
var artist = await artistApi.GetArtistInfoAsync(ArtistName);
|
||||||
if (artist.Success)
|
if (artist.Success)
|
||||||
{
|
{
|
||||||
Artist = artist.Content;
|
LastArtist = artist.Content;
|
||||||
}
|
}
|
||||||
|
|
||||||
var topAlbums = await artistApi.GetTopAlbumsForArtistAsync(ArtistName);
|
var topAlbums = await artistApi.GetTopAlbumsForArtistAsync(ArtistName);
|
||||||
|
@ -12,7 +12,7 @@ public class HistoryTestViewModel : BaseViewModel
|
|||||||
{
|
{
|
||||||
private bool _inProgress;
|
private bool _inProgress;
|
||||||
private bool _successful;
|
private bool _successful;
|
||||||
private ObservableCollection<Track> _tracks;
|
private ObservableCollection<LastTrack> _tracks;
|
||||||
private Auth _auth;
|
private Auth _auth;
|
||||||
private PageProgress _historyPageProgress;
|
private PageProgress _historyPageProgress;
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ public bool Successful
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ObservableCollection<Track> Tracks
|
public ObservableCollection<LastTrack> Tracks
|
||||||
{
|
{
|
||||||
get { return _tracks; }
|
get { return _tracks; }
|
||||||
set
|
set
|
||||||
@ -83,7 +83,7 @@ public ObservableCollection<Track> Tracks
|
|||||||
public HistoryTestViewModel()
|
public HistoryTestViewModel()
|
||||||
{
|
{
|
||||||
_historyPageProgress = new PageProgress();
|
_historyPageProgress = new PageProgress();
|
||||||
Tracks = new ObservableCollection<Track>();
|
Tracks = new ObservableCollection<LastTrack>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task NavigatedTo()
|
public async Task NavigatedTo()
|
||||||
|
Loading…
Reference in New Issue
Block a user