Exemple #1
0
        private void AddDownloadListItem(MusicEntryModel musicEntry)
        {
            if (listViewDownload.Items.Find(musicEntry.ProxyId, false).Length != 0)
            {
                return;
            }
            ListViewItem item = new ListViewItem(musicEntry.Title);

            item.Name = musicEntry.ProxyId;
            item.Tag  = musicEntry;
            item.SubItems.Add(new ListViewItem.ListViewSubItem(item, musicEntry.Artist)
            {
                Tag = columnHeaderArtist
            });
            item.SubItems.Add(new ListViewItem.ListViewSubItem(item, musicEntry.Album)
            {
                Tag = columnHeaderAlbum
            });
            listViewDownload.Items.Add(item);
            if (musicEntry.IsFileExists())
            {
                Bitmap img = musicEntry.GetCoverFromFile();
                if (img != null)
                {
                    imgDownloadListCover.Images.Add(musicEntry.ProxyId, img);
                    item.ImageKey = musicEntry.ProxyId;
                }
            }
        }
Exemple #2
0
 private void RemoveFromDownloadList(MusicEntryModel musicEntry)
 {
     if (musicEntry != null)
     {
         listViewDownload.Items.RemoveByKey(musicEntry.ProxyId);
         imgDownloadListCover.Images.RemoveByKey(musicEntry.ProxyId);
     }
 }
        public List <MusicEntryModel> GetAlbumById(string id)
        {
            Dictionary <string, string> data = new Dictionary <string, string>();

            data.Add("id", id);
            string response = webController.RequestString("get_album", data);

            return(MusicEntryModel.GetMusicEntrysByM3U(response));
        }
        /*public MusicEntry GetSongById(string id)
         * {
         *  Dictionary<string, string> data = new Dictionary<string, string>();
         *  data.Add("id", id);
         *  string response = webController.RequestString("get_song", data);
         *  List<MusicEntry> music = MusicEntry.GetMusicEntrysByM3U(response);
         *  return music != null ? music.First() : null;
         * }*/

        public List <MusicEntryModel> GetArtistTopTracksById(string id, int count = 20)
        {
            Dictionary <string, string> data = new Dictionary <string, string>();

            data.Add("id", id);
            data.Add("type", "song");
            data.Add("num_tracks", count.ToString());
            string response = webController.RequestString("get_top_tracks_artist", data);

            return(MusicEntryModel.GetMusicEntrysByM3U(response));
        }
Exemple #5
0
        private async void PlayListItem(MusicEntryModel musicEntry)
        {
            string lastUrl = AudioController.Instance.AudioUrl;

            if (AudioController.Instance.WaveOut.PlaybackState == NAudio.Wave.PlaybackState.Playing)
            {
                AudioController.Instance.StopAudio();
            }
            if (lastUrl != musicEntry.ProxyPath)
            {
                await AudioController.Instance.PlayMp3FromUrl(musicEntry.ProxyPath);
            }
        }
        public List <MusicEntryModel> GetMusicBySearch(string title, string artist, int count = 20)
        {
            Dictionary <string, string> data = new Dictionary <string, string>();

            data.Add("type", "matches");
            if (!string.IsNullOrEmpty(title))
            {
                data.Add("title", title);
            }
            if (!string.IsNullOrEmpty(artist))
            {
                data.Add("artist", artist);
            }
            data.Add("exact", "no");
            data.Add("num_tracks", count.ToString());
            string response = webController.RequestString("get_by_search", data);

            return(MusicEntryModel.GetMusicEntrysByM3U(response));
        }
Exemple #7
0
 private void RemoveDownloadListItemsFromSelection()
 {
     if (!downloadAvaible)
     {
         return;
     }
     if (listViewDownload.SelectedItems.Count == 0)
     {
         return;
     }
     if (MetroFramework.MetroMessageBox.Show(this, "Would you remove the items from the download list?", "Download list", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
     {
         foreach (ListViewItem item in listViewDownload.SelectedItems)
         {
             MusicEntryModel musicEntry = (MusicEntryModel)item.Tag;
             RemoveFromDownloadList(musicEntry);
         }
         listViewDownload.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
     }
 }
        public List <MusicEntryModel> GetMusicByPlaylist(PlaylistEntryModel playlistEntry)
        {
            string response = webController.RequestString(playlistEntry.ProxyPath);

            return(MusicEntryModel.GetMusicEntrysByM3U(response));
        }
Exemple #9
0
        private async void DownloadListItems()
        {
            if (!downloadAvaible)
            {
                return;
            }
            if (listViewDownload.SelectedItems.Count == 0)
            {
                return;
            }
            if (MetroFramework.MetroMessageBox.Show(this, "Would you download the items?", "Download", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
            {
                List <ListViewItem> downloadItems = new List <ListViewItem>();
                foreach (ListViewItem item in listViewDownload.SelectedItems)
                {
                    MusicEntryModel musicEntry = (MusicEntryModel)item.Tag;
                    if (!musicEntry.IsFileExists())
                    {
                        downloadItems.Add(item);
                    }
                }
                downloadAvaible             = false;
                progressBarDownload.Maximum = downloadItems.Count;
                progressBarDownload.Enabled = true;
                foreach (ListViewItem item in downloadItems)
                {
                    progressBarDownload.Value++;
                    MusicEntryModel musicEntry = (MusicEntryModel)item.Tag;
                    musicEntry.UpdateFilePath();
start_download:
                    try
                    {
                        await ProxyApiController.Instance.DownloadSong(musicEntry.ProxyPath, musicEntry.FilePath);

                        Bitmap img = musicEntry.GetCoverFromFile();
                        if (img != null)
                        {
                            imgDownloadListCover.Images.Add(musicEntry.ProxyId, img);
                            item.ImageKey = musicEntry.ProxyId;
                        }
                    }
                    catch (Exception e)
                    {
                        try
                        {
                            File.Delete(musicEntry.FilePath);
                        }
                        catch { }
                        if (!ConfigController.IgnoreErrors)
                        {
                            DialogResult dialogResult = MetroFramework.MetroMessageBox.Show(this, "Error at item " + progressBarDownload.Value + ":\n" + e.ToString(), "Error", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Exclamation);
                            if (dialogResult == DialogResult.Retry)
                            {
                                goto start_download;
                            }
                            else if (dialogResult == DialogResult.Ignore)
                            {
                                continue;
                            }
                            else
                            {
                                break;
                            }
                        }
                        else
                        {
                            continue;
                        }
                    }
                }
                progressBarDownload.Value   = 0;
                progressBarDownload.Enabled = false;
                downloadAvaible             = true;
            }
        }