public void AddDocumentsToDb(string path) { int count = 1; using (var stream = string.IsNullOrWhiteSpace(path) ? GetEmbeddedLastFmSubset() : File.OpenRead(path)) using (var zip = new ZipArchive(stream, ZipArchiveMode.Read)) using (var bulkInsert = DocumentStoreHolder.MediaStore.BulkInsert(options: new BulkInsertOptions { OverwriteExisting = true, BatchSize = 256 })) { foreach (var entry in zip.Entries) { if (entry.Length == 0) { continue; } using (var entryStream = entry.Open()) { var docAsJson = RavenJObject.Load(new JsonTextReader(new StreamReader(entryStream))); var doc = new LastFm { Artist = docAsJson.Value <string>("artist"), TimeStamp = DateTime.Parse(docAsJson.Value <string>("timestamp")), Title = docAsJson.Value <string>("title"), TrackId = docAsJson.Value <string>("track_id"), Tags = docAsJson.Value <RavenJArray>("tags") .Select(x => ((RavenJArray)x)[0].Value <string>()) .ToList() }; bulkInsert.Store(doc, "lastfm/" + (count++)); } } } }
static AccountManager() { _vkontakte = ViewModelLocator.Vkontakte; _lastFm = ViewModelLocator.LastFm; Initialize(); }
public async override Task <PageResponse <LastTrack> > HandleResponse(HttpResponseMessage response) { var json = await response.Content.ReadAsStringAsync(); LastFmApiError error; if (LastFm.IsResponseValid(json, out error) && response.IsSuccessStatusCode) { JToken jtoken = JsonConvert.DeserializeObject <JToken>(json).SelectToken("recenttracks"); var tracksToken = jtoken.SelectToken("track"); var tracks = new List <LastTrack>(); foreach (var track in tracksToken.Children()) { var t = LastTrack.ParseJToken(track); tracks.Add(t); } var pageresponse = PageResponse <LastTrack> .CreateSuccessResponse(tracks); var attrToken = jtoken.SelectToken("@attr"); pageresponse.AddPageInfoFromJToken(attrToken); return(pageresponse); } else { return(LastResponse.CreateErrorResponse <PageResponse <LastTrack> >(error)); } }
public override async Task <T> ExecuteAsync() { SetParameters(); Url = BuildRequestUrl(); var apisig = Auth.GenerateMethodSignature(Method, Parameters); var postContent = LastFm.CreatePostBody(Method, Auth.ApiKey, apisig, Parameters); try { var httpClient = GetHttpClient(); var response = await httpClient.PostAsync(Url, postContent); return(await HandleResponse(response)); } catch (HttpRequestException) { if (LastFm.CatchRequestExceptions) { return(LastResponse.CreateErrorResponse <T>(LastFmApiError.RequestFailed)); } else { throw; } } }
public async override Task <PageResponse <LastStation> > HandleResponse(HttpResponseMessage response) { string json = await response.Content.ReadAsStringAsync(); LastResponseStatus status; if (LastFm.IsResponseValid(json, out status) && response.IsSuccessStatusCode) { JToken jtoken = JsonConvert.DeserializeObject <JToken>(json).SelectToken("recentstations"); var stationsToken = jtoken.SelectToken("station"); var stations = stationsToken.Children().Select(LastStation.ParseJToken).ToList(); var pageresponse = PageResponse <LastStation> .CreateSuccessResponse(stations); var attrToken = jtoken.SelectToken("@attr"); pageresponse.AddPageInfoFromJToken(attrToken); return(pageresponse); } else { return(LastResponse.CreateErrorResponse <PageResponse <LastStation> >(status)); } }
public override async Task <PageResponse <LastArtist> > HandleResponse(HttpResponseMessage response) { var json = await response.Content.ReadAsStringAsync(); var jtoken = JsonConvert.DeserializeObject <JToken>(json); var resultsToken = jtoken.SelectToken("topartists"); LastResponseStatus status; if (LastFm.IsResponseValid(json, out status) && response.IsSuccessStatusCode) { if (string.IsNullOrEmpty(resultsToken.SelectToken("@attr.tag").Value <string>())) { return(PageResponse <LastArtist> .CreateErrorResponse(LastResponseStatus.MissingParameters)); } var itemsToken = resultsToken.SelectToken("artist"); return(PageResponse <LastArtist> .CreateSuccessResponse(itemsToken, resultsToken, LastArtist.ParseJToken, LastPageResultsType.Attr)); } else { // The tag api always returns a "valid" response, so return(PageResponse <LastArtist> .CreateErrorResponse(status)); } }
public static Collection <PartialMatche> Search(string strAlbum) { Uri strUrl = new Uri(string.Format(@"http://ws.audioscrobbler.com/2.0/?method=album.search&album={0}&api_key=7e1cb1060b6150e4fbb60e119250f54c", Util.EncodeSearch(strAlbum))); XElement restResponse = XElement.Parse(Util.GetRest(strUrl)); return(LastFm.AlbumToPartialMatch(restResponse)); }
protected async Task <T> ExecuteAsyncInternal() { SetParameters(); var toRemove = Parameters.Where(p => String.IsNullOrEmpty(p.Value)).ToList(); foreach (var parameter in toRemove) { Parameters.Remove(parameter.Key); } Url = BuildRequestUrl(); var apisig = Auth.GenerateMethodSignature(Method, Parameters); var postContent = LastFm.CreatePostBody(Method, Auth.ApiKey, apisig, Parameters); try { var httpClient = HttpClient; using (var response = await httpClient.PostAsync(Url, postContent)) { return(await HandleResponse(response)); } } catch (HttpRequestException) { return(LastResponse.CreateErrorResponse <T>(LastResponseStatus.RequestFailed)); } }
public AlbumService(IUnitOfWork unitOfWork, IMapper mapper) { _database = unitOfWork; _mapper = mapper; _lastFm = new LastFm(); _resultFilter = new LastFmResultFilter(_lastFm); }
void LastFm_MySessionChanged() { Dispatcher.Invoke(new Action(() => { usr.Text = "Username: "******"Real name: " + LastFm.GetRealName(); })); }
public Scrobbler() { InitializeComponent(); SupportSkinner.SetSkin(this); InvalidateVisual(); LastFm.MySessionChanged += LastFm_MySessionChanged; usr.Text = "Username: "******"Real name: " + LastFm.GetRealName(); }
public async void SetContext(Artist artist) { this.DataContext = ART = artist; this.ART.IsUpdatingImage = false; lastFmButton.Visibility = ApplicationInfo.Current.HasInternetConnection ? Visibility.Visible : Visibility.Collapsed; //Color color; StorageFile imgFile = null; try { imgFile = await StorageFile.GetFileFromApplicationUriAsync(artist.ImageUri); } catch { } try { if (imgFile != null) { using (var stream = await imgFile.OpenAsync(FileAccessMode.Read)) { //color = await ImageHelper.GetDominantColor(stream); BitmapImage b = new BitmapImage(); rootBrush.ImageSource = b; b.SetSource(stream); } ellipse.SetSource(artist.ImageUri); } else { await LastFm.DownloadImage(artist, true); } } catch { } //AnimateBackgroundToColor(color); ////ellipseBrush.ImageSource = bmp; //ellipse.Source = bmp; //bmp.UriSource = new Uri("ms-appdata:///local/Artists/artist_" + StringHelper.RemoveSpecialChar(ART.Name) + ".jpg", UriKind.Absolute); //BitmapImage blurbmp = new BitmapImage(); //blurbmp.CreateOptions = BitmapCreateOptions.IgnoreImageCache; //rootBrush.ImageSource = blurbmp; //blurbmp.UriSource = new Uri("ms-appdata:///local/Artists/artist_" + StringHelper.RemoveSpecialChar(ART.Name) + ".jpg", UriKind.Absolute); title.Text = ART.Name.ToUpper(); subtitleSeparator.Visibility = subtitle2.Visibility = Visibility.Visible; }
private static Artist ParseArtist(string artistName) { try { bool isNew; Artist artist = ArtistServices.Get(artistName, out isNew); if (artist == null) { artist = new Artist(); } Uri strUrl = new Uri(string.Format(@"http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&api_key=7e1cb1060b6150e4fbb60e119250f54c&artist={0}&autocorrect=1", artistName)); XElement restResponse = XElement.Parse(Util.GetRest(strUrl)); LastFm objLastFm = LastFm.ArtistToObject(restResponse); artist.Bio = objLastFm.ArtistContent; artist.FulleName = objLastFm.ArtistName; if (objLastFm.ArtistExtraLargeImage != null) { artist.Picture = Util.GetImage(objLastFm.ArtistLargeImage); } artist.WebSite = objLastFm.ArtistUrl; strUrl = new Uri(string.Format(@"http://ws.audioscrobbler.com/2.0/?method=artist.getTopAlbums&api_key=7e1cb1060b6150e4fbb60e119250f54c&mbid={0}&limit=500", objLastFm.ArtistId)); restResponse = XElement.Parse(Util.GetRest(strUrl)); IEnumerable <LastFm> credits = LastFm.AlbumToCollection(restResponse); if (credits != null && artist.ArtistCredits != null) { foreach (LastFm item in credits) { if (artist.ArtistCredits.Any(x => x.Title.Trim().ToUpper() == item.AlbumName.Trim().ToUpper()) == false) { ArtistCredits artistcredit = new ArtistCredits(); artistcredit.ArtistId = artist.Id; artistcredit.BuyLink = item.AlbumUrl; artistcredit.Title = item.AlbumName; artistcredit.EntityType = EntityType.Music; artist.ArtistCredits.Add(artistcredit); } } } return(artist); } catch (Exception ex) { Util.LogException(ex); return(null); } }
private async void DownloadImage(Artist artist) { try { //LastFm lfm = new LastFm(); //lfm.DownloadCompleted += Lfm_DownloadCompleted; await LastFm.DownloadImage(artist); } catch { } }
void dpt_Tick(object sender, System.EventArgs e) { ticks++; if (incremented | Player.Instance.NetStreamingConfigsLoaded) { return; } if (Player.Instance.Wave != null && ticks > Player.Instance.Wave.Duration / 2 | ticks > 4000) { incremented = true; EventHandler handler = IncrementListens; if (handler != null) { handler(this, EventArgs.Empty); } //track update Track existingTrack = TrackQuery.GetTrack(CoreMain.CurrentTrack.Path); if (existingTrack != null) { existingTrack.Listens++; TrackQuery.SaveTrack(existingTrack); } //artistUpdate ArtistViewModel existingArtist = ArtistQuery.GetArtistViewModel(CoreMain.CurrentTrack.Artist); if (existingArtist != null) { existingArtist.Listens++; existingArtist.SaveArtist(); } //albumUpdate AlbumViewModel existingAlbum = AlbumQuery.GetAlbumViewModel(CoreMain.CurrentTrack.Album); if (existingAlbum != null) { existingAlbum.Listens++; existingAlbum.SaveAlbum(); } //a;bumUpdate ViewModels.GenreViewModel existingGenre = GenreQuery.GetGenreViewModel(CoreMain.CurrentTrack.Genre); if (existingGenre != null) { existingGenre.Listens++; existingGenre.SaveGenre(); } //scrobble LastFm.ScrobbleTrack(LastFm.CurrentTrack); } }
public void ApiUrlFormatReturnsCorrectly() { const string expected = "https://ws.audioscrobbler.com/2.0/?method=tobias.funke&api_key=suddenvalley&blue=performance&format=json&uncle=t-bag"; var actual = LastFm.FormatApiUrl("tobias.funke", "suddenvalley", new Dictionary <string, string> { { "uncle", "t-bag" }, { "blue", "performance" } }, true); Assert.AreEqual(expected, actual); }
private static async Task <LastTrack> GetLastTrack(string username) { try { var tracks = await LastFm.GetRecentScrobbles(username); return(tracks.FirstOrDefault()); } catch (ServiceException) { return(null); } }
public override async Task <LastResponse <string> > HandleResponse(HttpResponseMessage response) { var json = await response.Content.ReadAsStringAsync(); if (LastFm.IsResponseValid(json, out LastResponseStatus status) && response.IsSuccessStatusCode) { var token = JsonConvert.DeserializeObject <JObject>(json).GetValue("token"); return(LastResponse <string> .CreateSuccessResponse(token.Value <string>())); } else { return(LastResponse.CreateErrorResponse <LastResponse <string> >(status)); } }
private async void DownloadImages(Artist artist) { string lang = ApplicationInfo.Current.Language; //Debug.WriteLine("Preparing to download image: " + artist.Name); try { await LastFm.DownloadImage(artist); } catch { } }
public async static Task <LastResponse> HandleResponse(HttpResponseMessage response) { string json = await response.Content.ReadAsStringAsync(); LastFmApiError error; if (LastFm.IsResponseValid(json, out error) && response.IsSuccessStatusCode) { return(LastResponse.CreateSuccessResponse()); } else { return(LastResponse.CreateErrorResponse <LastResponse>(error)); } }
public override async Task <ScrobbleResponse> HandleResponse(HttpResponseMessage response) { var json = await response.Content.ReadAsStringAsync(); LastResponseStatus status; if (LastFm.IsResponseValid(json, out status) && response.IsSuccessStatusCode) { return(await ScrobbleResponse.CreateSuccessResponse(json)); } else { return(LastResponse.CreateErrorResponse <ScrobbleResponse>(status)); } }
public async override Task <PageResponse <LastTag> > HandleResponse(HttpResponseMessage response) { var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false); LastResponseStatus status; if (LastFm.IsResponseValid(json, out status) && response.IsSuccessStatusCode) { var jtoken = JsonConvert.DeserializeObject <JToken>(json); var itemsToken = jtoken.SelectToken("toptags.tag"); return(PageResponse <LastTag> .CreateSuccessResponse(itemsToken, LastTag.ParseJToken)); } return(PageResponse <LastTag> .CreateErrorResponse(status)); }
public void IsResponseValid() { LastResponseStatus status; Assert.IsFalse(LastFm.IsResponseValid(null, out status)); Assert.IsFalse(LastFm.IsResponseValid("{invalid json", out status)); var error6 = Encoding.UTF8.GetString(ArtistApiResponses.ArtistGetTagsError); Assert.IsFalse(LastFm.IsResponseValid(error6, out status)); Assert.AreEqual(LastResponseStatus.MissingParameters, status); var goodResponse = Encoding.UTF8.GetString(ArtistApiResponses.ArtistGetInfoSuccess); Assert.IsTrue(LastFm.IsResponseValid(goodResponse, out status)); Assert.AreEqual(LastResponseStatus.Successful, status); }
public async override Task <PageResponse <LastTag> > HandleResponse(HttpResponseMessage response) { var json = await response.Content.ReadAsStringAsync(); LastResponseStatus status; if (LastFm.IsResponseValid(json, out status) && response.IsSuccessStatusCode) { var jtoken = JsonConvert.DeserializeObject <JToken>(json).SelectToken("similartags"); var itemsToken = jtoken.SelectToken("tag"); var attrToken = jtoken.SelectToken("@attr"); var relatedTag = attrToken.SelectToken("tag").Value <string>(); return(PageResponse <LastTag> .CreateSuccessResponse(itemsToken, jt => LastTag.ParseJToken(jt, relatedTag))); } return(LastResponse.CreateErrorResponse <PageResponse <LastTag> >(status)); }
public async override Task <LastResponse <LastAlbum> > HandleResponse(HttpResponseMessage response) { var json = await response.Content.ReadAsStringAsync(); LastResponseStatus status; if (LastFm.IsResponseValid(json, out status) && response.IsSuccessStatusCode) { var jtoken = JsonConvert.DeserializeObject <JToken>(json); var album = LastAlbum.ParseJToken(jtoken.SelectToken("album")); return(LastResponse <LastAlbum> .CreateSuccessResponse(album)); } else { return(LastResponse.CreateErrorResponse <LastResponse <LastAlbum> >(status)); } }
public async override Task <PageResponse <LastTrack> > HandleResponse(HttpResponseMessage response) { var json = await response.Content.ReadAsStringAsync(); LastFmApiError error; if (LastFm.IsResponseValid(json, out error) && response.IsSuccessStatusCode) { var jtoken = JsonConvert.DeserializeObject <JToken>(json); var itemsToken = jtoken.SelectToken("similartracks").SelectToken("track"); return(PageResponse <LastTrack> .CreateSuccessResponse(itemsToken, null, LastTrack.ParseJToken)); } else { return(LastResponse.CreateErrorResponse <PageResponse <LastTrack> >(error)); } }
public async override Task <LastResponse <LastArtist> > HandleResponse(HttpResponseMessage response) { var json = await response.Content.ReadAsStringAsync(); LastFmApiError error; if (LastFm.IsResponseValid(json, out error) && response.IsSuccessStatusCode) { var jtoken = JsonConvert.DeserializeObject <JToken>(json); var artist = LastArtist.ParseJToken(jtoken.SelectToken("artist")); return(LastResponse <LastArtist> .CreateSuccessResponse(artist)); } else { return(LastResponse.CreateErrorResponse <LastResponse <LastArtist> >(error)); } }
public async override Task <PageResponse <LastArtist> > HandleResponse(HttpResponseMessage response) { var json = await response.Content.ReadAsStringAsync(); LastResponseStatus status; if (LastFm.IsResponseValid(json, out status) && response.IsSuccessStatusCode) { var jtoken = JsonConvert.DeserializeObject <JToken>(json); var itemsToken = jtoken.SelectToken("similarartists").SelectToken("artist"); return(PageResponse <LastArtist> .CreateSuccessResponse(itemsToken, LastArtist.ParseJToken)); } else { return(LastResponse.CreateErrorResponse <PageResponse <LastArtist> >(status)); } }
public override async Task <LastResponse <LastUserSession> > HandleResponse(HttpResponseMessage response) { var json = await response.Content.ReadAsStringAsync(); LastResponseStatus status; if (LastFm.IsResponseValid(json, out status) && response.IsSuccessStatusCode) { var sessionObject = JsonConvert.DeserializeObject <JObject>(json).GetValue("session"); var session = JsonConvert.DeserializeObject <LastUserSession>(sessionObject.ToString()); return(LastResponse <LastUserSession> .CreateSuccessResponse(session)); } else { return(LastResponse.CreateErrorResponse <LastResponse <LastUserSession> >(status)); } }
public override async Task <PageResponse <LastWeeklyChartList> > HandleResponse(HttpResponseMessage response) { var json = await response.Content.ReadAsStringAsync(); LastResponseStatus status; if (LastFm.IsResponseValid(json, out status) && response.IsSuccessStatusCode) { var jtoken = JsonConvert.DeserializeObject <JToken>(json); var chartListToken = jtoken.SelectToken("weeklychartlist"); var itemsToken = chartListToken.SelectToken("chart"); var pageInfoToken = chartListToken.SelectToken("@attr"); return(PageResponse <LastWeeklyChartList> .CreateSuccessResponse(itemsToken, pageInfoToken, LastWeeklyChartList.ParseJToken, LastPageResultsType.Attr)); } return(LastResponse.CreateErrorResponse <PageResponse <LastWeeklyChartList> >(status)); }
public LastFmChartRequest(LastFm lastFm) { _lastFm = lastFm; }
public void MapFrom(LastFm.Album lastFmAlbum) { Image img = new Image(); img.MapFrom(lastFmAlbum.Image.FirstOrDefault(x=>x.Size == "extralarge" || x.Size == "mega")); this.Images = new List<Image>() { img }; }
public LastFmAuthRequest(LastFm lastFm) { _lastFm = lastFm; }
static DataService() { _vkontakte = ViewModelLocator.Vkontakte; _lastFm = ViewModelLocator.LastFm; }
public LastFmArtistRequest(LastFm lastFm) { _lastFm = lastFm; }
/// <summary> /// Map from LastFmClient. /// </summary> /// <param name="image">An image.</param> public void MapFrom(LastFm.Image image) { this.Url = image.Text; }
public LastFmUserRequest(LastFm lastFm) { _lastFm = lastFm; }
public LastFmTagRequest(LastFm lastFm) { _lastFm = lastFm; }
public LastFmTrackRequest(LastFm lastFm) { _lastFm = lastFm; }
public LastFmAlbumRequest(LastFm lastFm) { _lastFm = lastFm; }