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();
        }
        private void load(TaskProgressReporter reporter)
        {
            MediaService.GetVideoFilePath(this.VideoModel.Url, out string path, reporter);
            this.VideoFilePath = path;

            Task.Run(() => { MediaService.GetAudioFilePath(this.VideoModel.Url, out _); });
        }
Пример #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();
        }
        public void StartLoading(Action <double> progressHandler)
        {
            Task.Run(() =>
            {
                this.DownloadSuccessfull = MediaService.GetVideoFilePath(this.VideoModel.Url, out string path, progressHandler);
                this.VideoFilePath       = path;

                Task.Run(() => { MediaService.GetAudioFilePath(this.VideoModel.Url, out _); });

                this.LoadingFinished?.Invoke();
            });
        }
        public void Export()
        {
            using (FolderBrowserDialog dialog = new FolderBrowserDialog())
            {
                if (dialog.ShowDialog() != DialogResult.OK || !MediaService.GetAudioFilePath(this.VideoModel.Url, out string path))
                {
                    return;
                }

                string name = Path.GetInvalidFileNameChars()
                              .Aggregate(this.VideoModel.Title, (current, invalidFileNameChar) => current.Replace(invalidFileNameChar, ' '));

                File.Copy(path, Path.Combine(dialog.SelectedPath, name + ".mp3"), true);
            }
        }