diff --git a/ShareX.UploadersLib/APIKeys/APIKeys.cs b/ShareX.UploadersLib/APIKeys/APIKeys.cs index c7335bed5..5165b62d9 100644 --- a/ShareX.UploadersLib/APIKeys/APIKeys.cs +++ b/ShareX.UploadersLib/APIKeys/APIKeys.cs @@ -39,6 +39,7 @@ public static partial class APIKeys public static string PhotobucketConsumerSecret = ""; public static string TwitsnapsKey = ""; public static string TwitPicKey = ""; + public static string SomeImageKey = ""; // File Uploaders public static string DropboxConsumerKey = ""; diff --git a/ShareX.UploadersLib/Enums.cs b/ShareX.UploadersLib/Enums.cs index ef423d5dc..03473a349 100644 --- a/ShareX.UploadersLib/Enums.cs +++ b/ShareX.UploadersLib/Enums.cs @@ -50,6 +50,8 @@ public enum ImageDestination HizliResim, [Description("vgy.me")] Vgyme, + [Description("SomeImage")] + SomeImage, CustomImageUploader, // Localized FileUploader // Localized } diff --git a/ShareX.UploadersLib/ImageUploaders/SomeImage.cs b/ShareX.UploadersLib/ImageUploaders/SomeImage.cs new file mode 100644 index 000000000..a6068bec5 --- /dev/null +++ b/ShareX.UploadersLib/ImageUploaders/SomeImage.cs @@ -0,0 +1,78 @@ +#region License Information (GPL v3) + +/* + ShareX - A program that allows you to take screenshots and share any file type + Copyright © 2007-2015 ShareX Developers + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + Optionally you can also view the license at . +*/ + +#endregion License Information (GPL v3) + +using Newtonsoft.Json; +using System.Collections.Generic; +using System.IO; +using System.Text.RegularExpressions; + +namespace ShareX.UploadersLib.ImageUploaders +{ + public sealed class SomeImage : ImageUploader + { + private const string API_ENDPOINT = "https://someimage.com/api/2/image/upload"; + + private string API_KEY = ""; + + public SomeImage(string apiKey) + { + API_KEY = apiKey; + } + + public override UploadResult Upload(Stream stream, string fileName) + { + Dictionary arguments = new Dictionary(); + arguments.Add("apikey", API_KEY); + arguments.Add("familysafe", "0"); // Set to 0 as images could possibly not be family safe. + + UploadResult result = UploadData(stream, API_ENDPOINT, fileName, "file", arguments); + + if (result.IsSuccess) + { + if (!string.IsNullOrEmpty(result.Response)) + { + SomeImageResponse jsonResponse = JsonConvert.DeserializeObject(result.Response); + + if (jsonResponse != null) + { + result.URL = jsonResponse.imagelink; + } + } + } + + return result; + } + } +} + +public class SomeImageResponse +{ + public string success { get; set; } + public string imageid { get; set; } + public string imagelink { get; set; } + public string thumblink { get; set; } + public string embedhtml { get; set; } + public string embedbb { get; set; } +} \ No newline at end of file diff --git a/ShareX.UploadersLib/ShareX.UploadersLib.csproj b/ShareX.UploadersLib/ShareX.UploadersLib.csproj index 3f2cd8eca..9c9ebb29d 100644 --- a/ShareX.UploadersLib/ShareX.UploadersLib.csproj +++ b/ShareX.UploadersLib/ShareX.UploadersLib.csproj @@ -191,6 +191,7 @@ + diff --git a/ShareX/UploadTask.cs b/ShareX/UploadTask.cs index 07a462178..51398e944 100644 --- a/ShareX/UploadTask.cs +++ b/ShareX/UploadTask.cs @@ -751,6 +751,9 @@ public UploadResult UploadImage(Stream stream, string fileName) case ImageDestination.Vgyme: imageUploader = new VgymeUploader(); break; + case ImageDestination.SomeImage: + imageUploader = new SomeImage(APIKeys.SomeImageKey); + break; case ImageDestination.CustomImageUploader: CustomUploaderItem customUploader = GetCustomUploader(Program.UploadersConfig.CustomImageUploaderSelected); if (customUploader != null)