From 78767b315c3a0b240124ae710955baaa3e96338f Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 12 Jun 2019 10:43:04 +0200 Subject: [PATCH 01/19] docs: fix alt text for icon --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b3757f58..d72828a3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

Download Bandcamp Downloader

+

Icon Bandcamp Downloader

Download From c0c47c9aed6d82ef42ca6362cadc22b25168e55b Mon Sep 17 00:00:00 2001 From: Will Harries Date: Wed, 12 Jun 2019 11:45:05 +0100 Subject: [PATCH 02/19] fix: do not download albums with no tracks --- src/BandcampDownloader/Core/DownloadManager.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/BandcampDownloader/Core/DownloadManager.cs b/src/BandcampDownloader/Core/DownloadManager.cs index b371e993..fd3662f0 100644 --- a/src/BandcampDownloader/Core/DownloadManager.cs +++ b/src/BandcampDownloader/Core/DownloadManager.cs @@ -382,7 +382,13 @@ private async Task> GetAlbumsAsync(List urls) { // Get info on album try { - albums.Add(BandcampHelper.GetAlbum(htmlCode)); + var album = BandcampHelper.GetAlbum(htmlCode); + + if (album.Tracks.Count > 0) { + albums.Add(album); + } else { + LogAdded(this, new LogArgs($"No tracks found for {url}, album will not be downloaded", LogType.Info)); + } } catch { LogAdded(this, new LogArgs($"Could not retrieve album info for {url}", LogType.Error)); continue; From 232f466d4316d6c7a6d8dce87309079173df3d98 Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 12 Jun 2019 18:52:28 +0200 Subject: [PATCH 03/19] refactor: use explicit type instead of var --- src/BandcampDownloader/Core/DownloadManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BandcampDownloader/Core/DownloadManager.cs b/src/BandcampDownloader/Core/DownloadManager.cs index fd3662f0..74e93398 100644 --- a/src/BandcampDownloader/Core/DownloadManager.cs +++ b/src/BandcampDownloader/Core/DownloadManager.cs @@ -382,7 +382,7 @@ private async Task> GetAlbumsAsync(List urls) { // Get info on album try { - var album = BandcampHelper.GetAlbum(htmlCode); + Album album = BandcampHelper.GetAlbum(htmlCode); if (album.Tracks.Count > 0) { albums.Add(album); From 2ecaa1edcbe642fb62bdf165a5074551185c26b3 Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 12 Jun 2019 18:53:07 +0200 Subject: [PATCH 04/19] fix: use warn instead of info on album with no track --- src/BandcampDownloader/Core/DownloadManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BandcampDownloader/Core/DownloadManager.cs b/src/BandcampDownloader/Core/DownloadManager.cs index 74e93398..94462bbe 100644 --- a/src/BandcampDownloader/Core/DownloadManager.cs +++ b/src/BandcampDownloader/Core/DownloadManager.cs @@ -387,7 +387,7 @@ private async Task> GetAlbumsAsync(List urls) { if (album.Tracks.Count > 0) { albums.Add(album); } else { - LogAdded(this, new LogArgs($"No tracks found for {url}, album will not be downloaded", LogType.Info)); + LogAdded(this, new LogArgs($"No tracks found for {url}, album will not be downloaded", LogType.Warning)); } } catch { LogAdded(this, new LogArgs($"Could not retrieve album info for {url}", LogType.Error)); From 6e70cfe0174583a86e6c4ef47be323d1fe4f0fa1 Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 12 Jun 2019 20:19:46 +0200 Subject: [PATCH 05/19] fix: show version as X.Y.Z --- .../UI/Dialogs/Settings/UserControlSettingsGeneral.xaml.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml.cs b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml.cs index a008cd6b..ca12a04d 100644 --- a/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml.cs +++ b/src/BandcampDownloader/UI/Dialogs/Settings/UserControlSettingsGeneral.xaml.cs @@ -73,7 +73,7 @@ private async void ButtonCheckForUpdates_Click(object sender, RoutedEventArgs e) Button = MessageBoxButton.OK, ButtonOkText = Properties.Resources.messageBoxButtonOK, Image = MessageBoxImage.Information, - Text = String.Format(Properties.Resources.messageBoxNoUpdateAvailable, currentVersion), + Text = String.Format(Properties.Resources.messageBoxNoUpdateAvailable, currentVersion.ToString(3)), Title = "Bandcamp Downloader", }; WpfMessageBox.Show(Window.GetWindow(this), ref msgProperties); From 95da6baa78a76a2358ec993de9655396ce5c7c5e Mon Sep 17 00:00:00 2001 From: Otiel Date: Wed, 12 Jun 2019 20:41:57 +0200 Subject: [PATCH 06/19] feat: log inner exception for unhandled exceptions --- src/BandcampDownloader/App.xaml.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/BandcampDownloader/App.xaml.cs b/src/BandcampDownloader/App.xaml.cs index b92db1c6..7a20468b 100644 --- a/src/BandcampDownloader/App.xaml.cs +++ b/src/BandcampDownloader/App.xaml.cs @@ -32,8 +32,7 @@ protected override void OnStartup(StartupEventArgs e) { } private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { - LogExceptionToFile((Exception) e.ExceptionObject); - + LogExceptionAndInnerExceptionsToFile((Exception) e.ExceptionObject); var msgProperties = new WpfMessageBoxProperties() { Button = MessageBoxButton.OK, @@ -74,6 +73,18 @@ private void InitializeSettings() { } } + ///

+ /// Writes the specified Exception and all its InnerException to the application log file. + /// + /// The Exception to log. + private void LogExceptionAndInnerExceptionsToFile(Exception exception) { + LogExceptionToFile(exception); + + if (exception.InnerException != null) { + LogExceptionAndInnerExceptionsToFile(exception.InnerException); + } + } + /// /// Writes the specified Exception to the application log file. /// From 543ddb13ce662360b87a82ab69112ca92a235be4 Mon Sep 17 00:00:00 2001 From: Otiel Date: Thu, 13 Jun 2019 08:45:27 +0200 Subject: [PATCH 07/19] fix: define security protocol in App.xaml.cs Fixes #109 --- src/BandcampDownloader/App.xaml.cs | 4 ++++ src/BandcampDownloader/Core/DownloadManager.cs | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/BandcampDownloader/App.xaml.cs b/src/BandcampDownloader/App.xaml.cs index 7a20468b..47eeaca1 100644 --- a/src/BandcampDownloader/App.xaml.cs +++ b/src/BandcampDownloader/App.xaml.cs @@ -1,4 +1,5 @@ using System; +using System.Net; using System.Windows; using Config.Net; using NLog; @@ -26,6 +27,9 @@ protected override void OnStartup(StartupEventArgs e) { // Manage unhandled exceptions AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; + // Define the default security protocol to use for connection as TLS 1.2 (#109) + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; + InitializeSettings(); LanguageHelper.ApplyLanguage(UserSettings.Language); ThemeHelper.ApplySkin(UserSettings.Theme); diff --git a/src/BandcampDownloader/Core/DownloadManager.cs b/src/BandcampDownloader/Core/DownloadManager.cs index 94462bbe..e1c5ca5a 100644 --- a/src/BandcampDownloader/Core/DownloadManager.cs +++ b/src/BandcampDownloader/Core/DownloadManager.cs @@ -49,7 +49,6 @@ public DownloadManager(string urls) { // Increase the maximum of concurrent connections to be able to download more than 2 (which is the default value) files at the same time ServicePointManager.DefaultConnectionLimit = 50; - ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; } /// From 98eb0dd8c7659ec7393f58d8616e243573e6b6c9 Mon Sep 17 00:00:00 2001 From: Otiel Date: Thu, 13 Jun 2019 08:47:08 +0200 Subject: [PATCH 08/19] fix: do not restrict security protocol to TLS 1.2 --- src/BandcampDownloader/App.xaml.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BandcampDownloader/App.xaml.cs b/src/BandcampDownloader/App.xaml.cs index 47eeaca1..7743e15e 100644 --- a/src/BandcampDownloader/App.xaml.cs +++ b/src/BandcampDownloader/App.xaml.cs @@ -27,8 +27,8 @@ protected override void OnStartup(StartupEventArgs e) { // Manage unhandled exceptions AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; - // Define the default security protocol to use for connection as TLS 1.2 (#109) - ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; + // Define the default security protocol to use for connection as TLS (#109) + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; InitializeSettings(); LanguageHelper.ApplyLanguage(UserSettings.Language); From c3db221aebc8ec1b53469af48b25c39657a7963f Mon Sep 17 00:00:00 2001 From: Otiel Date: Thu, 13 Jun 2019 08:47:34 +0200 Subject: [PATCH 09/19] fix: do not restrict security protocol to existing TLS versions --- src/BandcampDownloader/App.xaml.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BandcampDownloader/App.xaml.cs b/src/BandcampDownloader/App.xaml.cs index 7743e15e..10b7d0b0 100644 --- a/src/BandcampDownloader/App.xaml.cs +++ b/src/BandcampDownloader/App.xaml.cs @@ -28,7 +28,7 @@ protected override void OnStartup(StartupEventArgs e) { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; // Define the default security protocol to use for connection as TLS (#109) - ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; + ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; InitializeSettings(); LanguageHelper.ApplyLanguage(UserSettings.Language); From 3e2e7fdf976ad9952daab96b39bd7335668dc4c0 Mon Sep 17 00:00:00 2001 From: Otiel Date: Thu, 13 Jun 2019 08:52:26 +0200 Subject: [PATCH 10/19] feat: use MessageBox to limit the potential issues --- src/BandcampDownloader/App.xaml.cs | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/BandcampDownloader/App.xaml.cs b/src/BandcampDownloader/App.xaml.cs index 10b7d0b0..54a14e5c 100644 --- a/src/BandcampDownloader/App.xaml.cs +++ b/src/BandcampDownloader/App.xaml.cs @@ -5,7 +5,6 @@ using NLog; using NLog.Config; using NLog.Targets; -using WpfMessageBoxLibrary; namespace BandcampDownloader { @@ -38,14 +37,7 @@ protected override void OnStartup(StartupEventArgs e) { private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { LogExceptionAndInnerExceptionsToFile((Exception) e.ExceptionObject); - var msgProperties = new WpfMessageBoxProperties() { - Button = MessageBoxButton.OK, - ButtonOkText = BandcampDownloader.Properties.Resources.messageBoxButtonOK, - Image = MessageBoxImage.Error, - Text = String.Format(BandcampDownloader.Properties.Resources.messageBoxUnhandledException, Constants.UrlIssues), - Title = "Bandcamp Downloader", - }; - WpfMessageBox.Show(ref msgProperties); + MessageBox.Show(String.Format(BandcampDownloader.Properties.Resources.messageBoxUnhandledException, Constants.UrlIssues), "Bandcamp Downloader", MessageBoxButton.OK, MessageBoxImage.Error); } /// From b18ddafed74b9771fd295e4839500464937d4417 Mon Sep 17 00:00:00 2001 From: Otiel Date: Thu, 13 Jun 2019 09:15:30 +0200 Subject: [PATCH 11/19] refactor: move Log() methods to Helper --- src/BandcampDownloader/App.xaml.cs | 20 +++--------------- src/BandcampDownloader/Helpers/LogHelper.cs | 23 +++++++++++++++++++++ 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/BandcampDownloader/App.xaml.cs b/src/BandcampDownloader/App.xaml.cs index 54a14e5c..6488c3bd 100644 --- a/src/BandcampDownloader/App.xaml.cs +++ b/src/BandcampDownloader/App.xaml.cs @@ -35,7 +35,7 @@ protected override void OnStartup(StartupEventArgs e) { } private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { - LogExceptionAndInnerExceptionsToFile((Exception) e.ExceptionObject); + LogUnhandledExceptionToFile((Exception) e.ExceptionObject); MessageBox.Show(String.Format(BandcampDownloader.Properties.Resources.messageBoxUnhandledException, Constants.UrlIssues), "Bandcamp Downloader", MessageBoxButton.OK, MessageBoxImage.Error); } @@ -69,26 +69,12 @@ private void InitializeSettings() { } } - /// - /// Writes the specified Exception and all its InnerException to the application log file. - /// - /// The Exception to log. - private void LogExceptionAndInnerExceptionsToFile(Exception exception) { - LogExceptionToFile(exception); - - if (exception.InnerException != null) { - LogExceptionAndInnerExceptionsToFile(exception.InnerException); - } - } - /// /// Writes the specified Exception to the application log file. /// /// The Exception to log. - private void LogExceptionToFile(Exception exception) { - Logger logger = LogManager.GetCurrentClassLogger(); - logger.Log(LogLevel.Fatal, String.Format("{0} {1}", exception.GetType().ToString(), exception.Message)); - logger.Log(LogLevel.Fatal, exception.StackTrace); + private void LogUnhandledExceptionToFile(Exception exception) { + LogHelper.LogExceptionAndInnerExceptionsToFile(exception); } } } \ No newline at end of file diff --git a/src/BandcampDownloader/Helpers/LogHelper.cs b/src/BandcampDownloader/Helpers/LogHelper.cs index 9930e177..c6c7f492 100644 --- a/src/BandcampDownloader/Helpers/LogHelper.cs +++ b/src/BandcampDownloader/Helpers/LogHelper.cs @@ -1,5 +1,6 @@ using System; using System.Windows.Media; +using NLog; namespace BandcampDownloader { @@ -37,5 +38,27 @@ public static SolidColorBrush GetColor(LogType logType) { return color; } + + /// + /// Writes the specified Exception and all its InnerException to the application log file. + /// + /// The Exception to log. + public static void LogExceptionAndInnerExceptionsToFile(Exception exception) { + LogExceptionToFile(exception); + + if (exception.InnerException != null) { + LogExceptionAndInnerExceptionsToFile(exception.InnerException); + } + } + + /// + /// Writes the specified Exception to the application log file. + /// + /// The Exception to log. + public static void LogExceptionToFile(Exception exception) { + Logger logger = LogManager.GetCurrentClassLogger(); + logger.Log(LogLevel.Fatal, String.Format("{0} {1}", exception.GetType().ToString(), exception.Message)); + logger.Log(LogLevel.Fatal, exception.StackTrace); + } } } \ No newline at end of file From e61aa013d930330e541892874d196a3851209e2c Mon Sep 17 00:00:00 2001 From: Otiel Date: Thu, 13 Jun 2019 09:15:46 +0200 Subject: [PATCH 12/19] docs: fix XML comments format --- src/BandcampDownloader/App.xaml.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BandcampDownloader/App.xaml.cs b/src/BandcampDownloader/App.xaml.cs index 6488c3bd..12752b00 100644 --- a/src/BandcampDownloader/App.xaml.cs +++ b/src/BandcampDownloader/App.xaml.cs @@ -58,8 +58,8 @@ private void InitializeLogger() { } /// - /// Initializes data context for bindings between settings values and settings controls. - /// This must be called before initializing UI forms. + /// Initializes data context for bindings between settings values and settings controls. This must be called + /// before initializing UI forms. /// private void InitializeSettings() { App.UserSettings = new ConfigurationBuilder().UseIniFile(Constants.UserSettingsFilePath).Build(); From 94a121e417a89046416ed9153723093142f4518f Mon Sep 17 00:00:00 2001 From: Otiel Date: Thu, 13 Jun 2019 09:22:06 +0200 Subject: [PATCH 13/19] feat: log .NET version on unhandled exception --- src/BandcampDownloader/App.xaml.cs | 4 +- .../BandcampDownloader.csproj | 1 + .../Helpers/SystemVersionHelper.cs | 64 +++++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 src/BandcampDownloader/Helpers/SystemVersionHelper.cs diff --git a/src/BandcampDownloader/App.xaml.cs b/src/BandcampDownloader/App.xaml.cs index 12752b00..ac08fa90 100644 --- a/src/BandcampDownloader/App.xaml.cs +++ b/src/BandcampDownloader/App.xaml.cs @@ -70,10 +70,12 @@ private void InitializeSettings() { } /// - /// Writes the specified Exception to the application log file. + /// Writes the specified Exception to the application log file, along with the .NET version. /// /// The Exception to log. private void LogUnhandledExceptionToFile(Exception exception) { + Logger logger = LogManager.GetCurrentClassLogger(); + logger.Log(LogLevel.Fatal, $".NET Framework version: {SystemVersionHelper.GetDotNetFrameworkVersion()}"); LogHelper.LogExceptionAndInnerExceptionsToFile(exception); } } diff --git a/src/BandcampDownloader/BandcampDownloader.csproj b/src/BandcampDownloader/BandcampDownloader.csproj index fcfe522a..2255079a 100644 --- a/src/BandcampDownloader/BandcampDownloader.csproj +++ b/src/BandcampDownloader/BandcampDownloader.csproj @@ -154,6 +154,7 @@ + diff --git a/src/BandcampDownloader/Helpers/SystemVersionHelper.cs b/src/BandcampDownloader/Helpers/SystemVersionHelper.cs new file mode 100644 index 00000000..fdbca2b0 --- /dev/null +++ b/src/BandcampDownloader/Helpers/SystemVersionHelper.cs @@ -0,0 +1,64 @@ +using Microsoft.Win32; + +namespace BandcampDownloader { + + internal static class SystemVersionHelper { + + /// + /// Returns the .NET Framework version installed by querying the registry. + /// + public static string GetDotNetFrameworkVersion() { + const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\"; + + using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey)) { + if (ndpKey != null && ndpKey.GetValue("Release") != null) { + return GetDotNetFrameworkVersion((int) ndpKey.GetValue("Release")); + } else { + return "Version 4.5 or later is not detected."; + } + } + } + + /// + /// Returns the .NET Framework version from the specified value of the "Release" DWORD, following the rules + /// defined on https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed + /// + /// The value of the "Release" DWORD. + private static string GetDotNetFrameworkVersion(int releaseKey) { + // Checking the version using >= enables forward compatibility. + if (releaseKey >= 528040) { + return "4.8 or later"; + } + if (releaseKey >= 461808) { + return "4.7.2"; + } + if (releaseKey >= 461308) { + return "4.7.1"; + } + if (releaseKey >= 460798) { + return "4.7"; + } + if (releaseKey >= 394802) { + return "4.6.2"; + } + if (releaseKey >= 394254) { + return "4.6.1"; + } + if (releaseKey >= 393295) { + return "4.6"; + } + if (releaseKey >= 379893) { + return "4.5.2"; + } + if (releaseKey >= 378675) { + return "4.5.1"; + } + if (releaseKey >= 378389) { + return "4.5"; + } + + // This code should never execute. A non-null release key should mean that 4.5 or later is installed. + return "No 4.5 or later version detected"; + } + } +} \ No newline at end of file From 873efb7ad6f17e132bf2c878f62aae94a84fc611 Mon Sep 17 00:00:00 2001 From: Otiel Date: Thu, 13 Jun 2019 09:38:33 +0200 Subject: [PATCH 14/19] feat: fix mnemonics --- src/BandcampDownloader/Properties/Resources.de.resx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index f398c9cc..37cf956e 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -209,7 +209,7 @@ Entspricht dem setzen von Nicht verändern bei jedem tag. Wenn nicht werden alle auf einmal heruntergeladen (Empfohlen wenn eine hohe bandbreite zur verfügung steht). - _Abrufen vorkalkulieren vor dem Herunterladen + Abrufen _vorkalkulieren vor dem Herunterladen Wenn ausgewählt, werden die Dateigrößen im vornherein abgerufen so dass eine genaue verbleibende Dauer berechnet werden kann. @@ -445,7 +445,7 @@ seine alben herunterzuladen. Einstellungen - _Ansehen + A_nsehen Erstelle _playlist für jedes Album @@ -511,7 +511,7 @@ seine alben herunterzuladen. Aktualisierung - _Aussehen + Aussehe_n _Anwendung schließen From c349620b36f41277d7a897b7ff67c5f7bd1a3e7b Mon Sep 17 00:00:00 2001 From: Otiel Date: Thu, 13 Jun 2019 09:38:51 +0200 Subject: [PATCH 15/19] refactor: regenerate resx --- src/BandcampDownloader/Properties/Resources.Designer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BandcampDownloader/Properties/Resources.Designer.cs b/src/BandcampDownloader/Properties/Resources.Designer.cs index f57b2207..1c2e312a 100644 --- a/src/BandcampDownloader/Properties/Resources.Designer.cs +++ b/src/BandcampDownloader/Properties/Resources.Designer.cs @@ -1032,7 +1032,7 @@ internal static string TagEditAction_DoNotModify { } /// - /// Looks up a localized string similar to Empty tag. + /// Looks up a localized string similar to Clear tag. /// internal static string TagEditAction_Empty { get { From fd803b6b781983f986c12b383d4ed1ab61674130 Mon Sep 17 00:00:00 2001 From: Otiel Date: Thu, 13 Jun 2019 09:39:08 +0200 Subject: [PATCH 16/19] fix: add padding to buttons --- src/BandcampDownloader/UI/Dialogs/WindowMain.xaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml b/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml index 09be98c1..6efdf0ca 100644 --- a/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml +++ b/src/BandcampDownloader/UI/Dialogs/WindowMain.xaml @@ -164,6 +164,7 @@ Grid.Column="3" Height="24" MinWidth="100" + Padding="10,0" Click="ButtonStart_Click" Content="{lex:Loc}" TabIndex="4" /> @@ -173,6 +174,7 @@ Height="24" MinWidth="100" Margin="5,0,0,0" + Padding="10,0" Click="ButtonStop_Click" Content="{lex:Loc}" IsEnabled="False" @@ -183,6 +185,7 @@ Height="24" MinWidth="100" Margin="5,0,0,0" + Padding="10,0" Click="ButtonOpenSettingsWindow_Click" Content="{lex:Loc}" TabIndex="6" From 5061e6b09f3ac7b07fec4abd7fc7876ce8c5efd0 Mon Sep 17 00:00:00 2001 From: Otiel Date: Thu, 13 Jun 2019 09:41:17 +0200 Subject: [PATCH 17/19] refactor: order resx files AZ --- .../Properties/Resources.de.resx | 186 +++++++++--------- .../Properties/Resources.es.resx | 42 ++-- .../Properties/Resources.nb-NO.resx | 50 ++--- .../Properties/Resources.pl.resx | 68 +++---- 4 files changed, 173 insertions(+), 173 deletions(-) diff --git a/src/BandcampDownloader/Properties/Resources.de.resx b/src/BandcampDownloader/Properties/Resources.de.resx index 37cf956e..7abf3b6c 100644 --- a/src/BandcampDownloader/Properties/Resources.de.resx +++ b/src/BandcampDownloader/Properties/Resources.de.resx @@ -129,6 +129,9 @@ _Jetzt suchen + + _Download der neuen Version + _Einstellungen @@ -147,6 +150,9 @@ _Abbrechen + + A_nsehen + Konnte Changelog nicht herunterladen von {0} @@ -180,6 +186,12 @@ Wenn ausgewählt, wird das Cover auf die angegebene Größe skaliert. + + Erstelle _playlist für jedes Album + + + Erstellt eine Albumtiteldatei für jedes heruntergeladene Album. + _Diskografie vom Artisten herunterladen @@ -192,6 +204,12 @@ Wenn ausgewählt, wird ein Benachrichtigungston nach erfolgreichem Download abgespielt. + + Benutze _erweitertes Format (nur für M3U) + + + M3U-Wiedergabelisten im erweiterten Format (Anweisungen, denen das Zeichen # vorangestellt ist). + _ID3 tags editieren @@ -254,6 +272,12 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. _Zurücksetzen + + Änderungsprotokoll + + + Änderungsprotokoll + Komm_entare @@ -266,6 +290,9 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Maximale Größe (p_x) + + Aktuelle Version: + _Maximale Downloadversuche @@ -287,9 +314,15 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. _Port + + Bug melden + S_prache + + Über + Erweiterte Einstellungen @@ -305,6 +338,9 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Netzwerk + + Playlist + Benennungen und Tags @@ -314,9 +350,15 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. _Dateiname format + + Playlist _format + Einige Einstellungen können nicht übernommen werden wärend ein Download stattfindet. + + Aussehe_n + Song N_ummer @@ -326,12 +368,18 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. (Die Logdatei ist immer ausführlich) + + Version + Konnte nicht auf Updates prüfen Eine neue Version ist verfügbar + + Webseite + Album _Veröffentlichungsjahr @@ -353,15 +401,30 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Während nach updates gesucht wurde ist ein Fehler aufgetreten, versuchen sie es später erneut. + + _Anwendung schließen + Zurzeit sind Downloads aktiv. Wollen sie die Anwendung wirklich schließen und diese abbrechen? + + Konnte folgenden LInk nicht öffnen: {0} + Das Programm ist auf dem neusten stand ({0}). + + _Einstellungen zurücksetzen + Alle Einstellungen zurücksetzen? + + Ein nicht behandelter Fehler ist aufgetreten. Die Anwendung wird jetzt geschlossen. + +Bitte erstelle eine neue Fehlermeldung mit dem Inhalt Ihrer Protokolldatei unter +{0} + _Manuelle Proxy-einstellungen @@ -371,6 +434,15 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. S_ystem Proxy + + Speichern als + + + Dunkel + + + Hell + Nicht ändern @@ -386,6 +458,9 @@ Das Herunterladen geht schneller wenn diese Option ausgeschaltet ist. Löschen des Tags + + Versionsgeschichte + Hilfe zur Übersetzung @@ -395,6 +470,15 @@ größer ist als die angegebene Zahl in prozent. Wenn dem so ist wird die Datei Setzen Sie diesen Wert auf 0, um Songs immer wieder neu herunterzuladen. Empfohlender Wert = 5 + + + Sie können Platzhalter verwenden, um den Dateinamen anzupassen: + +- {artist} wird durch den Albuminterpreten ersetzt + +- {album} wird durch den Albumnamen ersetzt + +- {Jahr}, {Monat} und {Tag} werden durch das Veröffentlichungsdatum des Albums ersetzt Maximale anzahl wie oft versucht werden soll den Song herunterzuladen. @@ -433,70 +517,6 @@ Empfohlender Wert = 4 - {tracknum} wird mit der Track-nummer ersetzt - {album} Wird mit dem albumnamen ersetzt - {year}, {month} und {day} werden mit dem Erscheinungsdatum ersetzt - - - Album und Diskografie URL's hier einfügen. Es ist möglich mehrere (Getrennt durch zeilenumbrüche) einzufügen. - -Eine Bandcamp URL sieht so aus: http://[artist].bandcamp.com/album/[album] / http://[artist].bandcamp.com/track/[track] -Um die Diskografie herunterzuladen dies URL verweden: http://[artist].bandcamp.com und "☑ Artist Diskografie heruntergeladen" um alle -seine alben herunterzuladen. - - - Einstellungen - - - A_nsehen - - - Erstelle _playlist für jedes Album - - - Erstellt eine Albumtiteldatei für jedes heruntergeladene Album. - - - M3U-Wiedergabelisten im erweiterten Format (Anweisungen, denen das Zeichen # vorangestellt ist). - - - Änderungsprotokoll - - - Änderungsprotokoll - - - Aktuelle Version: - - - Bug melden - - - Über - - - Playlist - - - Playlist _format - - - Version - - - Webseite - - - Speichern als - - - Versionsgeschichte - - - Sie können Platzhalter verwenden, um den Dateinamen anzupassen: - -- {artist} wird durch den Albuminterpreten ersetzt - -- {album} wird durch den Albumnamen ersetzt - -- {Jahr}, {Monat} und {Tag} werden durch das Veröffentlichungsdatum des Albums ersetzt Sie können Platzhalter verwenden, um den Dateinamen anzupassen: @@ -507,37 +527,17 @@ seine alben herunterzuladen. - {Jahr}, {Monat} und {Tag} werden durch das Veröffentlichungsdatum des Albums ersetzt - - Aktualisierung - - - Aussehe_n - - - _Anwendung schließen - - - Konnte folgenden LInk nicht öffnen: {0} - - - _Einstellungen zurücksetzen - - - Ein nicht behandelter Fehler ist aufgetreten. Die Anwendung wird jetzt geschlossen. + + Album und Diskografie URL's hier einfügen. Es ist möglich mehrere (Getrennt durch zeilenumbrüche) einzufügen. -Bitte erstelle eine neue Fehlermeldung mit dem Inhalt Ihrer Protokolldatei unter -{0} - - - Dunkel - - - Hell +Eine Bandcamp URL sieht so aus: http://[artist].bandcamp.com/album/[album] / http://[artist].bandcamp.com/track/[track] +Um die Diskografie herunterzuladen dies URL verweden: http://[artist].bandcamp.com und "☑ Artist Diskografie heruntergeladen" um alle +seine alben herunterzuladen. - - Benutze _erweitertes Format (nur für M3U) + + Einstellungen - - _Download der neuen Version + + Aktualisierung diff --git a/src/BandcampDownloader/Properties/Resources.es.resx b/src/BandcampDownloader/Properties/Resources.es.resx index f318c42f..4a3612f7 100644 --- a/src/BandcampDownloader/Properties/Resources.es.resx +++ b/src/BandcampDownloader/Properties/Resources.es.resx @@ -185,6 +185,12 @@ Si no, se guarda algo de ancho de banda y tiempo. Muestra más información en el registro. + + Seleccionar carpeta para guardar álbumes + + + Cambie estas configuraciones bajo su propia responsabilidad. + Art_ista del álbum @@ -344,6 +350,9 @@ Si no, se guarda algo de ancho de banda y tiempo. Proxy del _sistema + + Guardar como + No modificar @@ -365,27 +374,6 @@ Si no, se guarda algo de ancho de banda y tiempo. Ayudar a traducir - - Pega los enlaces de los álbumes a descargar aquí. Puedes especificar varios URLs escribiendo uno por línea. - -Un URL de Bandcamp se ve como: http://[artista].bandcamp.com/album/[álbum] o http://[artista].bandcamp.com/track/[canción] -Pegar páginas de artista: http://[artista].bandcamp.com y chequea "☑ Descargar discografía del artista" para descargar todos su(s) álbumes. - - - Configuración - - - Actualizar - - - Seleccionar carpeta para guardar álbumes - - - Cambie estas configuraciones bajo su propia responsabilidad. - - - Guardar como - Cuando se descarga una canción, si el mismo archivo (nombre) ya existe, será comparada con la canción a descargar. Si el tamaño de ambos archivos difiere por menos que este valor (en porciento), la descarga de la canción será omitida. @@ -425,4 +413,16 @@ Valor recomendado= 7 - {álbum} será reemplazado por el nombre del álbum - {año}, {mes} y {día} serán reemplazados por la fecha de publicación del álbum + + Pega los enlaces de los álbumes a descargar aquí. Puedes especificar varios URLs escribiendo uno por línea. + +Un URL de Bandcamp se ve como: http://[artista].bandcamp.com/album/[álbum] o http://[artista].bandcamp.com/track/[canción] +Pegar páginas de artista: http://[artista].bandcamp.com y chequea "☑ Descargar discografía del artista" para descargar todos su(s) álbumes. + + + Configuración + + + Actualizar + diff --git a/src/BandcampDownloader/Properties/Resources.nb-NO.resx b/src/BandcampDownloader/Properties/Resources.nb-NO.resx index ac0192bb..70ef80b1 100644 --- a/src/BandcampDownloader/Properties/Resources.nb-NO.resx +++ b/src/BandcampDownloader/Properties/Resources.nb-NO.resx @@ -296,6 +296,9 @@ Uten dette kan man spare litt båndbredde/tid. Noen innstillinger kan ikke endres under nedlasting av spor. + + _Drakt + Sporn_ummer @@ -338,15 +341,31 @@ Uten dette kan man spare litt båndbredde/tid. Feil under oppdateringssjekk. Prøv igjen senere. + + _Lukk program + Det blir lastet ned i øyeblikket, vil du lukke programmet og stoppe alle nedlastinger? + + Kunne ikke åpne denne lenken: +{0} + Du har allerede seneste versjon({0}). + + _Tilbakestill innstillinger + Tilbakestill alle verdier til forvalg? + + Uhåndtert feil. Programmet vil lukkes nå. + +Innrapporter feilen sammen med innholdet i loggfilen din på: +{0} + _Manuelt mellomtjeneroppsett @@ -359,6 +378,12 @@ Uten dette kan man spare litt båndbredde/tid. Lagre som + + Mørk + + + Lys + Ikke endre @@ -449,29 +474,4 @@ Lim inn artistsider: https://[artist].bandcamp.com og velg "☑ Last ned artistd Oppdater - - _Drakt - - - _Lukk program - - - Kunne ikke åpne denne lenken: -{0} - - - _Tilbakestill innstillinger - - - Uhåndtert feil. Programmet vil lukkes nå. - -Innrapporter feilen sammen med innholdet i loggfilen din på: -{0} - - - Mørk - - - Lys - diff --git a/src/BandcampDownloader/Properties/Resources.pl.resx b/src/BandcampDownloader/Properties/Resources.pl.resx index a5e2ff50..8320c6ec 100644 --- a/src/BandcampDownloader/Properties/Resources.pl.resx +++ b/src/BandcampDownloader/Properties/Resources.pl.resx @@ -294,6 +294,9 @@ Odznacz tę opcję, aby zaoszczędzić trochę czasu. Pewne ustawienia nie mogą zostać zmienione podczas pobierania. + + _Motyw + _Tytuł @@ -324,12 +327,37 @@ Odznacz tę opcję, aby zaoszczędzić trochę czasu. _Tak + + Przerwać pobieranie? + Wystąpił błąd podczas sprawdzania aktualizacji. Spróbuj ponownie później. + + _Zamknij aplikację + + + Aplikacja jest w trakcie pobierania. Czy na pewno chcesz ją zamknąć i je zakończyć? + + + Nie można otworzyć poniższego linku: +{0} + Już posiadasz najnowszą wersję ({0}). + + _Przywróć ustawienia domyślne + + + Przywrócić wszystkie ustawienia do domyślnych wartości? + + + Wystąpił nieznany błąd. Aplikacja zostanie zamknięta. + +Proszę otworzyć nowy problem na GitHubie z plikiem logów. +{0} + _Ręczna konfiguracja serwera proxy @@ -342,6 +370,12 @@ Odznacz tę opcję, aby zaoszczędzić trochę czasu. Zapisz jako + + Ciemny + + + Jasny + Nie zmieniaj @@ -388,38 +422,4 @@ Możesz także pobrać całą dyskografię: http://[wykonawca].bandcamp.com i za Aktualizacja - - _Motyw - - - Przerwać pobieranie? - - - _Zamknij aplikację - - - Aplikacja jest w trakcie pobierania. Czy na pewno chcesz ją zamknąć i je zakończyć? - - - Nie można otworzyć poniższego linku: -{0} - - - _Przywróć ustawienia domyślne - - - Przywrócić wszystkie ustawienia do domyślnych wartości? - - - Wystąpił nieznany błąd. Aplikacja zostanie zamknięta. - -Proszę otworzyć nowy problem na GitHubie z plikiem logów. -{0} - - - Ciemny - - - Jasny - From 71b9d61c3e05e91fdcc5716cf91b475b5b793842 Mon Sep 17 00:00:00 2001 From: Otiel Date: Thu, 13 Jun 2019 09:48:41 +0200 Subject: [PATCH 18/19] docs: add 1.1.0 to CHANGELOG --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c9956c1..4096cdff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +# 1.1.0 + +## Improvements + +* Updated the following languages thanks to contributors: German, Norwegian Bokmål, Polish, Spanish. +* More data will be logged when a crash occurs. +* Minor UI improvements. + +## Bug fixes + +* Fixed a bug causing albums with no tracks to be downloaded. Thanks **@wilbishardis**! [#106](https://github.com/Otiel/BandcampDownloader/issues/106) +* Fixed a bug preventing the app from getting updates info on Windows 7. [#109](https://github.com/Otiel/BandcampDownloader/issues/109) + # 1.0.0 ## New features From b6eda0ce3103534c51a355fb9447f3c10436c6c7 Mon Sep 17 00:00:00 2001 From: Otiel Date: Thu, 13 Jun 2019 09:48:58 +0200 Subject: [PATCH 19/19] chore: bump assembly version to 1.1.0 --- src/BandcampDownloader/Properties/AssemblyInfo.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BandcampDownloader/Properties/AssemblyInfo.cs b/src/BandcampDownloader/Properties/AssemblyInfo.cs index c12cacb2..16809b3b 100644 --- a/src/BandcampDownloader/Properties/AssemblyInfo.cs +++ b/src/BandcampDownloader/Properties/AssemblyInfo.cs @@ -47,6 +47,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0")] -[assembly: AssemblyFileVersion("1.0.0")] +[assembly: AssemblyVersion("1.1.0")] +[assembly: AssemblyFileVersion("1.1.0")] [assembly: GuidAttribute("8C171C7F-9BAC-4EC0-A287-59908B48953F")] \ No newline at end of file