From bf6419afcf6ffdc54165d8a7e330dc1904c439d3 Mon Sep 17 00:00:00 2001 From: Lixqa <53451629+Lixqa@users.noreply.github.com> Date: Fri, 22 May 2026 19:47:57 +0200 Subject: [PATCH] feat(upload): add voided.host uploaders with shared config and settings UI --- .../BuiltInUploaderSettingsView.axaml.cs | 3 + .../VoidedHostUploaderSettingsView.axaml | 47 ++ .../VoidedHostUploaderSettingsView.axaml.cs | 65 +++ .../Settings/Views/SettingsMainView.axaml | 13 +- SnapX.Core/Upload/Enums.cs | 6 + .../Upload/File/VoidedHostFileUploader.cs | 55 +++ SnapX.Core/Upload/Img/VoidedHostUploader.cs | 426 ++++++++++++++++++ .../Upload/Text/VoidedHostTextUploader.cs | 66 +++ SnapX.Core/Upload/UploaderCategory.cs | 2 + SnapX.Core/Upload/UploaderFactory.cs | 3 + SnapX.Core/Upload/UploadersConfig.cs | 10 + 11 files changed, 694 insertions(+), 2 deletions(-) create mode 100644 SnapX.Avalonia/Views/Settings/Views/ImageUploaders/VoidedHostUploaderSettingsView.axaml create mode 100644 SnapX.Avalonia/Views/Settings/Views/ImageUploaders/VoidedHostUploaderSettingsView.axaml.cs create mode 100644 SnapX.Core/Upload/File/VoidedHostFileUploader.cs create mode 100644 SnapX.Core/Upload/Img/VoidedHostUploader.cs create mode 100644 SnapX.Core/Upload/Text/VoidedHostTextUploader.cs diff --git a/SnapX.Avalonia/Views/Settings/Views/BuiltInUploaderSettingsView.axaml.cs b/SnapX.Avalonia/Views/Settings/Views/BuiltInUploaderSettingsView.axaml.cs index 51ff54058..014bcf1ae 100644 --- a/SnapX.Avalonia/Views/Settings/Views/BuiltInUploaderSettingsView.axaml.cs +++ b/SnapX.Avalonia/Views/Settings/Views/BuiltInUploaderSettingsView.axaml.cs @@ -83,6 +83,9 @@ private void UpdateSettingsView(object? instance) GitHubGist => new GithubGistUploaderSettingsView() { DataContext = instance }, Hastebin => new HastebinUploaderSettingsView() { DataContext = instance }, OneTimeSecret => new OneTimeSecretUploadSettingsView() { DataContext = instance }, + VoidedHostUploader => new ImageUploaders.VoidedHostUploaderSettingsView { DataContext = instance }, + VoidedHostTextUploader => new ImageUploaders.VoidedHostUploaderSettingsView { DataContext = instance }, + VoidedHostFileUploader => new ImageUploaders.VoidedHostUploaderSettingsView { DataContext = instance }, FTP or SFTP => new FTPSettingsView() { DataContext = instance }, // Add other mappings here: // AmazonS3 => new S3SettingsView { DataContext = instance }, diff --git a/SnapX.Avalonia/Views/Settings/Views/ImageUploaders/VoidedHostUploaderSettingsView.axaml b/SnapX.Avalonia/Views/Settings/Views/ImageUploaders/VoidedHostUploaderSettingsView.axaml new file mode 100644 index 000000000..dc5bb0fa9 --- /dev/null +++ b/SnapX.Avalonia/Views/Settings/Views/ImageUploaders/VoidedHostUploaderSettingsView.axaml @@ -0,0 +1,47 @@ + + + + + + +