diff --git a/ShareX.UploadersLib/Enums.cs b/ShareX.UploadersLib/Enums.cs index 4d970f95a..d7f43a5d6 100644 --- a/ShareX.UploadersLib/Enums.cs +++ b/ShareX.UploadersLib/Enums.cs @@ -50,6 +50,8 @@ public enum ImageDestination Vgyme, [Description("SomeImage")] SomeImage, + [Description("Imgland")] + Imgland, CustomImageUploader, // Localized FileUploader // Localized } diff --git a/ShareX.UploadersLib/ImageUploaders/ImglandUploader.cs b/ShareX.UploadersLib/ImageUploaders/ImglandUploader.cs new file mode 100644 index 000000000..60ce7ed8a --- /dev/null +++ b/ShareX.UploadersLib/ImageUploaders/ImglandUploader.cs @@ -0,0 +1,41 @@ +using System.Collections.Generic; +using System.IO; +using Newtonsoft.Json; + +namespace ShareX.UploadersLib.ImageUploaders +{ + public sealed class ImglandUploader : ImageUploader + { + public override UploadResult Upload(Stream stream, string fileName) + { + string uploadUrl = "http://www.imgland.net/process.php?subAPI=mainsite"; + Dictionary arguments = new Dictionary(); + arguments.Add("usubmit", "true"); + + UploadResult result = UploadData(stream, uploadUrl, fileName, "imagefile[]", arguments); + + if (result.IsSuccess) + { + ImglandResponse response = JsonConvert.DeserializeObject(result.Response); + + if (!string.IsNullOrEmpty(response.Url)) + { + result.URL = response.Url; + } + else + { + Errors.Add(string.IsNullOrEmpty(response.Status) ? "Unknown error." : response.Status); + } + } + + return result; + } + } + + public class ImglandResponse + { + public string Status { get; set; } + public string FileName { get; set; } + public string Url { get; set; } + } +} diff --git a/ShareX.UploadersLib/ShareX.UploadersLib.csproj b/ShareX.UploadersLib/ShareX.UploadersLib.csproj index f534ed998..ef77492d4 100644 --- a/ShareX.UploadersLib/ShareX.UploadersLib.csproj +++ b/ShareX.UploadersLib/ShareX.UploadersLib.csproj @@ -207,6 +207,7 @@ + diff --git a/ShareX/WorkerTask.cs b/ShareX/WorkerTask.cs index 51cca565a..5755ad328 100644 --- a/ShareX/WorkerTask.cs +++ b/ShareX/WorkerTask.cs @@ -837,6 +837,9 @@ public UploadResult UploadImage(Stream stream, string fileName) DirectURL = Program.UploadersConfig.SomeImageDirectURL }; break; + case ImageDestination.Imgland: + imageUploader = new ImglandUploader(); + break; case ImageDestination.CustomImageUploader: CustomUploaderItem customUploader = GetCustomUploader(Program.UploadersConfig.CustomImageUploaderSelected); if (customUploader != null)