Beispiel #1
0
        private Artist[] GetLowInterestArtists(SimilarArtists similarArtists)
        {
            var lowInterestHandler = new LowInterestArtistHandler(mRequestHandler, mConfig.Key);
            var artistData         = lowInterestHandler.PullArtistData(similarArtists);

            return(lowInterestHandler.SelectLowInterestArtists(artistData, mConfig.Cutoff));
        }
Beispiel #2
0
 public string ToSQLInsert()
 {
     return(string.Format("INSERT INTO `{0}` (`artist_id`, `name`, `creation_date`, `official_site`, `reviewer_id`, `countries`, `similar_artists_nodes`, `additionnal_similar_artists_names`, `sorting_weight`) VALUES ('{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}');"
                          , SQLTableName, Id, Name.ToCamelCase().GetSafeMySQL(), CreationDate.ToUnixTimeStamp(), OfficialUrl, Reviewer.Id
                          , Countries.Aggregate(string.Empty, (seed, entry) => seed + "|" + entry.CountryName.ToCamelCase().GetSafeMySQL()).Trim('|')
                          , SimilarArtists.Aggregate(string.Empty, (seed, entry) => seed + "|" + entry.Id).Trim('|')
                          , RawSimilarArtists.Aggregate(string.Empty, (seed, entry) => seed + "|" + entry.ToCamelCase().GetSafeMySQL()).Trim('|')
                          , SortWeight));
 }
        private static void GetSimilarArtists(string value)
        {
            try
            {
                SimilarArtists similarArtistList = new SimilarArtists();
                similarArtistList.Data = MbApi.Library_QuerySimilarArtists(value, 0.2).Split('\u0000');
                similarArtistList.callback_function = "updateSimilarArtistList";

                WsRef.SendMessage(Util.Serialize(similarArtistList));
            }
            catch (Exception) { }
        }
        private void GetSimilarArtistsAsync(SynoItem artist)
        {
            // TODO : Look on last.fm
            LastFmApi api = new LastFmApi();
            var       t   = api.GetSimilarArtistsAsync(artist.Title);

            t.ContinueWith(o =>
            {
                SimilarArtists.Clear();
                foreach (var lastFmArtist in o.Result)
                {
                    // FIXME : USe a factory.
                    SimilarArtists.Add(new ArtistViewModel(lastFmArtist.Name, lastFmArtist.Mbid, lastFmArtist.Url, lastFmArtist.Match, lastFmArtist.Images));
                }
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
Beispiel #5
0
        public async void LoadTopTracks(string songName, string similarTrackArtistName, int id)
        {
            await DispatcherHelper.RunAsync(async() =>
            {
                int count = 10;
                if (Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily != "Windows.Mobile")
                {
                    count = 20;
                }

                ClearNowPlayingViewModelData();

                Message              = Core.StringMessage.LoadingPleaseWait;
                IsLoading            = true;
                SimilarTrackVisible  = true;
                SimilarArtistVisible = false;
                // viewModelCleared = false;

                SimilarTracks = new ObservableCollection <Base>();

                try
                {
                    var webResults = await _service.GetSimilarTracksAsync(songName, similarTrackArtistName, count);

                    if (webResults == null || webResults.Songs.Count < 1)
                    {
                        SimilarTrackVisible  = false;
                        SimilarArtistVisible = true;
                        var o          = await _service.GetSimilarArtistsAsync(similarTrackArtistName, 10);
                        SimilarArtists = o?.Artists;
                        if (o != null)
                        {
                            o = null;
                        }
                    }
                    else
                    {
                        int indexToAdd = -1;
                        foreach (var simpleTrack in webResults.Songs)
                        {
                            indexToAdd++;
                            SimilarTracks.Add(simpleTrack);
                            if (indexToAdd == 2 || indexToAdd == 10 || indexToAdd == 22 || indexToAdd == 34 || indexToAdd == 49 ||
                                indexToAdd == 63 || indexToAdd == 78 || indexToAdd == 88 || indexToAdd == 99)
                            {
                                SimilarTracks.Insert(indexToAdd, new ListAdvert());
                            }
                        }
                    }

                    if (webResults != null)
                    {
                        webResults = null;
                    }
                }
                catch (Exception)
                {
                    Message = Core.StringMessage.SomethinWentWrong;
                }

                if ((SimilarArtists != null && SimilarArtists.Count() > 0) ||
                    (SimilarTracks != null && SimilarTracks.Count > 0))
                {
                    Message = Core.StringMessage.NoMessge;
                }
                else
                {
                    Message = Core.StringMessage.EmptyMessage;
                }

                IsLoading = false;
            });
        }