diff --git a/ShareX.UploadersLib/Enums.cs b/ShareX.UploadersLib/Enums.cs index 05bc16c84..ef423d5dc 100644 --- a/ShareX.UploadersLib/Enums.cs +++ b/ShareX.UploadersLib/Enums.cs @@ -162,6 +162,8 @@ public enum UrlShortenerType QRnet, [Description("vurl.com")] VURL, + [Description("2.gp")] + TwoGP, CustomURLShortener // Localized } diff --git a/ShareX.UploadersLib/ShareX.UploadersLib.csproj b/ShareX.UploadersLib/ShareX.UploadersLib.csproj index 52563e49b..e2313deee 100644 --- a/ShareX.UploadersLib/ShareX.UploadersLib.csproj +++ b/ShareX.UploadersLib/ShareX.UploadersLib.csproj @@ -284,6 +284,7 @@ + diff --git a/ShareX.UploadersLib/URLShorteners/TwoGPURLShortener.cs b/ShareX.UploadersLib/URLShorteners/TwoGPURLShortener.cs new file mode 100644 index 000000000..724138dff --- /dev/null +++ b/ShareX.UploadersLib/URLShorteners/TwoGPURLShortener.cs @@ -0,0 +1,67 @@ +#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; + +namespace ShareX.UploadersLib.URLShorteners +{ + public sealed class TwoGPURLShortener : URLShortener + { + private const string API_ENDPOINT = "http://2.gp/api/short"; + + public override UploadResult ShortenURL(string url) + { + UploadResult result = new UploadResult { URL = url }; + + Dictionary args = new Dictionary(); + args.Add("longurl", url); + + string response = SendRequest(HttpMethod.GET, API_ENDPOINT, args); + + if (!string.IsNullOrEmpty(response)) + { + TwoGPURLShortenerResponse jsonResponse = JsonConvert.DeserializeObject(response); + + if (jsonResponse != null) + { + result.ShortenedURL = jsonResponse.url; + } + } + + return result; + } + } + + public class TwoGPURLShortenerResponse + { + public string facebook_url { get; set; } + public string stat_url { get; set; } + public string twitter_url { get; set; } + public string url { get; set; } + public string target_host { get; set; } + public string host { get; set; } + } +} \ No newline at end of file diff --git a/ShareX/UploadTask.cs b/ShareX/UploadTask.cs index 6ffeb9fa0..dcdfb5200 100644 --- a/ShareX/UploadTask.cs +++ b/ShareX/UploadTask.cs @@ -1093,6 +1093,9 @@ public UploadResult ShortenURL(string url) case UrlShortenerType.VURL: urlShortener = new VURLShortener(); break; + case UrlShortenerType.TwoGP: + urlShortener = new TwoGPURLShortener(); + break; case UrlShortenerType.CustomURLShortener: CustomUploaderItem customUploader = GetCustomUploader(Program.UploadersConfig.CustomURLShortenerSelected); if (customUploader != null)