diff --git a/src/Markdowser/Models/Settings.cs b/src/Markdowser/Models/Settings.cs
index 4179104..1188d85 100644
--- a/src/Markdowser/Models/Settings.cs
+++ b/src/Markdowser/Models/Settings.cs
@@ -1,6 +1,7 @@
using Markdowser.Utilities;
using System.IO;
+using System.Reflection;
using System.Text.Json;
namespace Markdowser.Models;
@@ -15,6 +16,8 @@ public class Settings
public string? HomeUrl { get; set; }
+ public string UserAgent { get; set; } = $"{Assembly.GetExecutingAssembly().GetName().Name}/{Assembly.GetExecutingAssembly().GetName().Version?.ToString()}";
+
public static void SaveSettings()
{
if (!Directory.Exists(Configuration.ApplicationDataPath))
diff --git a/src/Markdowser/ViewModels/MainWindowViewModel.cs b/src/Markdowser/ViewModels/MainWindowViewModel.cs
index 44fcc0c..78dbad7 100644
--- a/src/Markdowser/ViewModels/MainWindowViewModel.cs
+++ b/src/Markdowser/ViewModels/MainWindowViewModel.cs
@@ -161,7 +161,6 @@ public partial class MainWindowViewModel : ViewModelBase
public MainWindowViewModel()
{
- httpClient.DefaultRequestHeaders.UserAgent.ParseAdd($"{nameof(Markdowser)}/{Assembly.GetExecutingAssembly().GetName().Version?.ToString()}");
httpClient.Timeout = TimeSpan.FromSeconds(10);
content = DefaultContent;
@@ -232,6 +231,13 @@ public partial class MainWindowViewModel : ViewModelBase
}
}
+ httpClient.DefaultRequestHeaders.UserAgent.Clear();
+ if (!httpClient.DefaultRequestHeaders.UserAgent.TryParseAdd(Settings.Current.UserAgent))
+ {
+ WindowNotificationManager.Show(new Notification("Invalid User Agent", "Failed to set user agent.", NotificationType.Error));
+ return;
+ }
+
IsBusy = true;
Progress = 0;
diff --git a/src/Markdowser/ViewModels/SettingsViewModel.cs b/src/Markdowser/ViewModels/SettingsViewModel.cs
index 7d80466..b4d9d9c 100644
--- a/src/Markdowser/ViewModels/SettingsViewModel.cs
+++ b/src/Markdowser/ViewModels/SettingsViewModel.cs
@@ -16,6 +16,12 @@ public class SettingsViewModel : ViewModelBase
set => Settings.Current.SearchEngineUrl = value;
}
+ public string UserAgent
+ {
+ get => Settings.Current.UserAgent;
+ set => Settings.Current.UserAgent = value;
+ }
+
public bool DarkMode
{
get => Settings.Current.DarkMode;
diff --git a/src/Markdowser/Views/SettingsView.axaml b/src/Markdowser/Views/SettingsView.axaml
index 53a8ff8..4135a5e 100644
--- a/src/Markdowser/Views/SettingsView.axaml
+++ b/src/Markdowser/Views/SettingsView.axaml
@@ -28,5 +28,8 @@
+
+
+
\ No newline at end of file