Esempio n. 1
0
        public async Task <WebSong> GetMatch(Mp3Provider provider, string title, string artist, string album = null)
        {
            var     webSongs = new List <WebSong>();
            WebSong song     = null;

            switch (provider)
            {
            case Mp3Provider.ProstoPleer:
                webSongs = await _service.SearchPleer(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.Songily:
                webSongs = await _service.SearchSongily(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.Mp3FreeXMatch:
                webSongs = await _service.SearchMp3Freex(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.Mp3Lio:
                webSongs = await _service.SearchMp3lio(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.Mp3Pm:
                webSongs = await _service.SearchMp3Pm(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.YouTube:
                webSongs = await _service.SearchYoutube(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.Mp3Miner:
                webSongs = await _service.SearchMp3Miner(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.SoundCloud:
                webSongs = await _service.SearchSoundCloud(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.AnyMaza:
                webSongs = await _service.SearchAnyMaza(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.MiMp3:
                webSongs = await _service.SearchMiMp3(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.Mp3Skull:
                webSongs = await _service.SearchMp3Skull(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.Mp3Clan:
                webSongs = await _service.SearchMp3Clan(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.Netease:
                webSongs = await _service.SearchNetease(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.Mp3Truck:
                webSongs = await _service.SearchMp3Truck(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.Mp3Glu:
                webSongs = await _service.SearchMp3Glu(title, artist).ConfigureAwait(false);

                break;

            case Mp3Provider.Meile:
                webSongs = await _service.SearchMeile(title, artist).ConfigureAwait(false);

                break;
            }

            if (webSongs != null)
            {
                song = webSongs.FirstOrDefault(p => p.IsBestMatch);
                if (song != null)
                {
                    return(song);
                }
                song = webSongs.FirstOrDefault(p => p.IsMatch && !p.IsLinkDeath);
                if (song != null)
                {
                    return(song);
                }
            }
            return(null);
        }
Esempio n. 2
0
        public async void ReceiveSong(Song song)
        {
            if (!App.Locator.Network.IsActive)
            {
                return;
            }

            try
            {
                CurrentSong = song;

                viewModelCleared = false;

                IsLoading = true;


                var tasks = new List <Task>
                {
                    Task.Factory.StartNew(
                        async() =>
                    {
                        await DispatcherHelper.RunAsync(() => IsSCLoading = true);

                        var results =
                            await
                            searchService.SearchSoundCloud(title: CurrentSong.Name, artist: CurrentSong.Artist.Name, limit: 5);

                        await DispatcherHelper.RunAsync(() =>
                        {
                            count--;
                            if (count == 0)
                            {
                                IsLoading = false;
                            }
                            IsSCLoading = false;
                            if (results == null)
                            {
                                return;
                            }
                            SoundCloud = new ObservableCollection <Base>();

                            if (results.Count > 0)
                            {
                                int indexToAdd = -1;
                                foreach (var item in results)
                                {
                                    indexToAdd++;
                                    SoundCloud.Add(item);
                                    if (indexToAdd == 2 || indexToAdd == 10 || indexToAdd == 22 || indexToAdd == 34 || indexToAdd == 49 ||
                                        indexToAdd == 63 || indexToAdd == 78 || indexToAdd == 88 || indexToAdd == 99)
                                    {
                                        SoundCloud.Insert(indexToAdd, new ListAdvert());
                                    }
                                }
                            }
                        });
                    }),

                    Task.Factory.StartNew(
                        async() =>
                    {
                        await DispatcherHelper.RunAsync(() => IsWTLoading = true);


                        var results = await searchService.SearchMp3Glu(CurrentSong.Name, CurrentSong.Artist.Name, limit: 5);
                        await dispatcherHelper.RunAsync(
                            () =>
                        {
                            count--;
                            if (count == 0)
                            {
                                IsLoading = false;
                            }
                            IsWTLoading = true;
                            if (results == null)
                            {
                                return;
                            }
                            WapTrack = new ObservableCollection <Base>();

                            if (results.Count > 0)
                            {
                                int indexToAdd = -1;
                                foreach (var item in results)
                                {
                                    indexToAdd++;
                                    WapTrack.Add(item);
                                    if (indexToAdd == 2 || indexToAdd == 10 || indexToAdd == 22 || indexToAdd == 34 || indexToAdd == 49 ||
                                        indexToAdd == 63 || indexToAdd == 78 || indexToAdd == 88 || indexToAdd == 99)
                                    {
                                        WapTrack.Insert(indexToAdd, new ListAdvert());
                                    }
                                }
                            }
                        });
                    }),

                    Task.Factory.StartNew(
                        async() =>
                    {
                        await DispatcherHelper.RunAsync(() => IsPLLoading = true);

                        var results =
                            await
                            searchService.SearchMp3lio(title: CurrentSong.Name, artist: CurrentSong.Artist.Name, limit: 5);

                        await dispatcherHelper.RunAsync(
                            () =>
                        {
                            count--;
                            if (count == 0)
                            {
                                IsLoading = false;
                            }
                            IsPLLoading = false;
                            if (results == null)
                            {
                                return;
                            }
                            Pleer = new ObservableCollection <Base>(results);
                            if (Pleer.Count > 1)
                            {
                                int indexToAdd = -1;
                                foreach (var item in Pleer)
                                {
                                    indexToAdd++;
                                    if (indexToAdd == 2 || indexToAdd == 10 || indexToAdd == 22 || indexToAdd == 34 || indexToAdd == 49 ||
                                        indexToAdd == 63 || indexToAdd == 78 || indexToAdd == 88 || indexToAdd == 99)
                                    {
                                        Pleer.Insert(indexToAdd, new ListAdvert());
                                    }
                                }
                            }
                        });
                    }),

                    Task.Factory.StartNew(
                        async() =>
                    {
                        await DispatcherHelper.RunAsync(() => IsYTLoading = true);


                        var results =
                            await
                            searchService.SearchYoutube(title: CurrentSong.Name, artist: CurrentSong.Artist.Name, limit: 5, includeAudioTag: true);

                        await dispatcherHelper.RunAsync(
                            () =>
                        {
                            count--;
                            if (count == 0)
                            {
                                IsLoading = false;
                            }
                            IsYTLoading = false;
                            if (results == null)
                            {
                                return;
                            }
                            YouTube = new ObservableCollection <Base>();

                            if (results.Count > 0)
                            {
                                int indexToAdd = -1;
                                foreach (var item in results)
                                {
                                    indexToAdd++;
                                    YouTube.Add(item);
                                    if (indexToAdd == 2 || indexToAdd == 10 || indexToAdd == 22 || indexToAdd == 34 || indexToAdd == 49 ||
                                        indexToAdd == 63 || indexToAdd == 78 || indexToAdd == 88 || indexToAdd == 99)
                                    {
                                        YouTube.Insert(indexToAdd, new ListAdvert());
                                    }
                                }
                            }
                        });
                    }),



                    Task.Factory.StartNew(
                        async() =>
                    {
                        await DispatcherHelper.RunAsync(() => IsMPZLoading = true);


                        var results = await searchService.SearchMp3Pm(CurrentSong.Name, CurrentSong.Artist.Name, limit: 5);
                        await dispatcherHelper.RunAsync(
                            () =>
                        {
                            count--;
                            if (count == 0)
                            {
                                IsLoading = false;
                            }
                            IsMPZLoading = false;
                            if (results == null)
                            {
                                return;
                            }
                            Mpz = new ObservableCollection <Base>();

                            if (results.Count > 0)
                            {
                                int indexToAdd = -1;
                                foreach (var item in results)
                                {
                                    indexToAdd++;
                                    Mpz.Add(item);
                                    if (indexToAdd == 2 || indexToAdd == 10 || indexToAdd == 22 || indexToAdd == 34 || indexToAdd == 49 ||
                                        indexToAdd == 63 || indexToAdd == 78 || indexToAdd == 88 || indexToAdd == 99)
                                    {
                                        Mpz.Insert(indexToAdd, new ListAdvert());
                                    }
                                }
                            }
                        });
                    }),
                };

                await Task.WhenAll(tasks);
            }
            catch (Exception)
            {
                IsLoading = false;
            }
            if (count == 0)
            {
                IsLoading = false;
            }
        }