예제 #1
0
        public static void ExportReleasesOld(int[] ids)
        {
            if (ids == null || ids.Length == 0)
            {
                return;
            }

            using (FolderBrowserDialog dialog = new FolderBrowserDialog())
            {
                if (dialog.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                string folder = dialog.SelectedPath;

                ProgressDialog progressDialog = new ProgressDialog {
                    InfoText = $"exporting releases to {dialog.SelectedPath}"
                };

                Task.Run(() =>
                {
                    for (int i = 0; i < ids.Length; i++)
                    {
                        DiscogsRelease release = DiscogsService.GetRelease(ids[i]);
                        MediaService.ExportRelease(release, folder);
                        progressDialog?.SetProgress(ProgressHelper.GetProgressPercentage(i + 1, ids.Length));
                    }
                });

                progressDialog.Show();
            }
        }
        public static void DownloadReleasesOld(int[] ids)
        {
            if (ids == null || ids.Length == 0)
            {
                return;
            }

            ProgressDialog progressDialog = new ProgressDialog {
                InfoText = "downloading releases"
            };

            Task.Run(() =>
            {
                for (int i = 0; i < ids.Length; i++)
                {
                    DiscogsRelease release = DiscogsService.GetRelease(ids[i]);

                    if (release.videos == null)
                    {
                        continue;
                    }

                    Task.WaitAll(release.videos.Select(v => Task.Run(() =>
                    {
                        MediaService.GetVideoFilePath(v.uri, out _, null);
                        MediaService.GetAudioFilePath(v.uri, out _);
                    })).ToArray());

                    progressDialog?.SetProgress(ProgressHelper.GetProgressPercentage(i + 1, ids.Length));
                }
            });

            progressDialog.Show();
        }
예제 #3
0
        public static void ReleasesHelp(int[] ids, Help help)
        {
            string folder = null;

            if (help == Help.Export)
            {
                using (FolderBrowserDialog dialog = new FolderBrowserDialog())
                {
                    if (dialog.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }

                    folder = dialog.SelectedPath;
                }
            }

            ProgressDialog progressDialog = new ProgressDialog {
                InfoText = help.ToString()
            };

            Task.Run(() =>
            {
                for (int i = 0; i < ids.Length; i++)
                {
                    DiscogsRelease release = DiscogsService.GetRelease(ids[i]);

                    if (release.videos == null || release.videos.Length == 0)
                    {
                        continue;
                    }

                    switch (help)
                    {
                    case Help.Download:
                        Task.WaitAll(release.videos.Select(v => Task.Run(() =>
                        {
                            MediaService.GetVideoFilePath(v.uri, out _, null);
                            MediaService.GetAudioFilePath(v.uri, out _);
                        })).ToArray());
                        break;

                    case Help.Export:
                        MediaService.ExportRelease(release, folder);
                        break;

                    default:
                        return;
                    }

                    progressDialog?.SetProgress(ProgressHelper.GetProgressPercentage(i + 1, ids.Length));
                }
            });

            progressDialog.Show();
        }
예제 #4
0
        private void checkSettings()
        {
            string hint = "";

            if (!Directory.Exists(Settings.Default.Folder))
            {
                hint += "please provide a folder to cache data\r\n\r\n";
            }

            if (string.IsNullOrWhiteSpace(Settings.Default.Token))
            {
                hint += "please provide a token to access discogs api";
            }

            if (!string.IsNullOrWhiteSpace(hint))
            {
                hint += "\r\n\r\n(can be done in settings)";
                this.panelView.Controls.Clear();
                this.panelView.Controls.Add(new Label {
                    Text = hint, AutoSize = true
                });
                return;
            }

            MediaService.SetApplicationFolder(Settings.Default.Folder);

            DiscogsService.SetApplicationFolder(Settings.Default.Folder);

            DiscogsService.MaxItems = Settings.Default.MaxItems;

            DiscogsService.SetToken(Settings.Default.Token);

            this.panelView.Controls.Clear();
            HomeViewControl viewMain = new HomeViewControl();

            viewMain.TableFontSize = Settings.Default.TableFontSize;
            this.panelView.Controls.Add(viewMain);
            viewMain.Dock = DockStyle.Fill;
        }
예제 #5
0
 private void clearCacheToolStripMenuItemClick(object sender, EventArgs e)
 {
     DiscogsService.ClearCache();
 }
예제 #6
0
 public void StartGetLabel()
 {
     Task.Run(() => { this.LabelLoaded?.Invoke(DiscogsService.GetLabel(this.release.labels[0].id)); });
 }
예제 #7
0
 public void StartGetArtist(DiscogsReleaseArtist artist)
 {
     Task.Run(() => { this.ArtistLoaded?.Invoke(DiscogsService.GetArtist(artist.id)); });
 }