diff --git a/ShareX.UploadersLib/APIKeys/APIKeys.cs b/ShareX.UploadersLib/APIKeys/APIKeys.cs
index 3a93a95cc..789ce258c 100644
--- a/ShareX.UploadersLib/APIKeys/APIKeys.cs
+++ b/ShareX.UploadersLib/APIKeys/APIKeys.cs
@@ -53,8 +53,6 @@ internal static partial class APIKeys
public static readonly string MediaFireApiKey = "";
public static readonly string OneDriveClientID = "";
public static readonly string OneDriveClientSecret = "";
- public static readonly string GfycatClientID = "";
- public static readonly string GfycatClientSecret = "";
// URL shorteners
public static readonly string BitlyClientID = "";
diff --git a/ShareX.UploadersLib/Enums.cs b/ShareX.UploadersLib/Enums.cs
index 71d8b16ab..240da62b8 100644
--- a/ShareX.UploadersLib/Enums.cs
+++ b/ShareX.UploadersLib/Enums.cs
@@ -101,8 +101,6 @@ public enum FileDestination
AzureStorage,
[Description("Backblaze B2")]
BackblazeB2,
- [Description("Gfycat")]
- Gfycat,
[Description("ownCloud / Nextcloud")]
OwnCloud,
[Description("MediaFire")]
diff --git a/ShareX.UploadersLib/Favicons/Gfycat.png b/ShareX.UploadersLib/Favicons/Gfycat.png
deleted file mode 100644
index 2dabc7acf..000000000
Binary files a/ShareX.UploadersLib/Favicons/Gfycat.png and /dev/null differ
diff --git a/ShareX.UploadersLib/FileUploaders/GfycatUploader.cs b/ShareX.UploadersLib/FileUploaders/GfycatUploader.cs
deleted file mode 100644
index 173e5f7d6..000000000
--- a/ShareX.UploadersLib/FileUploaders/GfycatUploader.cs
+++ /dev/null
@@ -1,341 +0,0 @@
-#region License Information (GPL v3)
-
-/*
- ShareX - A program that allows you to take screenshots and share any file type
- Copyright (c) 2007-2023 ShareX Team
-
- 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 ShareX.HelpersLib;
-using ShareX.UploadersLib.Properties;
-using System;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Drawing;
-using System.IO;
-using System.Threading;
-using System.Windows.Forms;
-
-namespace ShareX.UploadersLib.FileUploaders
-{
- public class GfycatFileUploaderService : FileUploaderService
- {
- public override FileDestination EnumValue { get; } = FileDestination.Gfycat;
-
- public override Image ServiceImage => Resources.Gfycat;
-
- public override bool CheckConfig(UploadersConfig config)
- {
- return config.GfycatAccountType == AccountType.Anonymous || OAuth2Info.CheckOAuth(config.GfycatOAuth2Info);
- }
-
- public override GenericUploader CreateUploader(UploadersConfig config, TaskReferenceHelper taskInfo)
- {
- if (config.GfycatOAuth2Info == null)
- {
- config.GfycatOAuth2Info = new OAuth2Info(APIKeys.GfycatClientID, APIKeys.GfycatClientSecret);
- }
-
- return new GfycatUploader(config.GfycatOAuth2Info)
- {
- UploadMethod = config.GfycatAccountType,
- Private = !config.GfycatIsPublic,
- KeepAudio = config.GfycatKeepAudio,
- Title = config.GfycatTitle
- };
- }
-
- public override TabPage GetUploadersConfigTabPage(UploadersConfigForm form) => form.tpGfycat;
- }
-
- public class GfycatUploader : FileUploader, IOAuth2
- {
- public OAuth2Info AuthInfo { get; set; }
- public AccountType UploadMethod { get; set; }
- public OAuth2Token AnonymousToken { get; set; }
- public bool NoResize { get; set; } = true;
- public bool IgnoreExisting { get; set; } = true;
- public bool Private { get; set; } = true;
- public bool KeepAudio { get; set; } = true;
- public string Title { get; set; }
-
- private const string URL_AUTHORIZE = "https://gfycat.com/oauth/authorize";
- private const string URL_UPLOAD = "https://filedrop.gfycat.com";
- private const string URL_API = "https://api.gfycat.com/v1";
- private const string URL_API_TOKEN = URL_API + "/oauth/token";
- private const string URL_API_CREATE_GFY = URL_API + "/gfycats";
- private const string URL_API_STATUS = URL_API + "/gfycats/fetch/status/";
-
- public GfycatUploader(OAuth2Info oauth)
- {
- AuthInfo = oauth;
- }
-
- public string GetAuthorizationURL()
- {
- Dictionary args = new Dictionary();
- args.Add("client_id", AuthInfo.Client_ID);
- args.Add("scope", "all");
- args.Add("state", "ShareX");
- args.Add("response_type", "code");
- args.Add("redirect_uri", Links.Callback);
-
- return URLHelpers.CreateQueryString(URL_AUTHORIZE, args);
- }
-
- public bool GetAccessToken(string code)
- {
- string request = JsonConvert.SerializeObject(new
- {
- client_id = AuthInfo.Client_ID,
- client_secret = AuthInfo.Client_Secret,
- grant_type = "authorization_code",
- redirect_uri = Links.Callback,
- code = code
- });
-
- string response = SendRequest(HttpMethod.POST, URL_API_TOKEN, request, RequestHelpers.ContentTypeJSON);
-
- if (!string.IsNullOrEmpty(response))
- {
- OAuth2Token token = JsonConvert.DeserializeObject(response);
-
- if (token != null && !string.IsNullOrEmpty(token.access_token))
- {
- token.UpdateExpireDate();
- AuthInfo.Token = token;
- return true;
- }
- }
-
- return false;
- }
-
- public bool RefreshAccessToken()
- {
- if (OAuth2Info.CheckOAuth(AuthInfo) && !string.IsNullOrEmpty(AuthInfo.Token.refresh_token))
- {
- string request = JsonConvert.SerializeObject(new
- {
- refresh_token = AuthInfo.Token.refresh_token,
- client_id = AuthInfo.Client_ID,
- client_secret = AuthInfo.Client_Secret,
- grant_type = "refresh"
- });
-
- string response = SendRequest(HttpMethod.POST, URL_API_TOKEN, request, RequestHelpers.ContentTypeJSON);
-
- if (!string.IsNullOrEmpty(response))
- {
- OAuth2Token token = JsonConvert.DeserializeObject(response);
-
- if (token != null && !string.IsNullOrEmpty(token.access_token))
- {
- token.UpdateExpireDate();
- AuthInfo.Token = token;
- return true;
- }
- }
- }
-
- return false;
- }
-
- public bool CheckAuthorization()
- {
- if (OAuth2Info.CheckOAuth(AuthInfo))
- {
- if (AuthInfo.Token.IsExpired && !RefreshAccessToken())
- {
- Errors.Add("Refresh access token failed.");
- return false;
- }
- }
- else
- {
- Errors.Add("Gfycat login is required.");
- return false;
- }
-
- return true;
- }
-
- public override UploadResult Upload(Stream stream, string fileName)
- {
- AllowReportProgress = false;
-
- OAuth2Token token = GetOrCreateToken();
- if (token == null)
- {
- return null;
- }
-
- NameValueCollection headers = new NameValueCollection();
- headers.Add("Authorization", "Bearer " + token.access_token);
-
- GfycatCreateResponse gfy = CreateGfycat(headers);
- if (gfy == null)
- {
- return null;
- }
-
- Dictionary args = new Dictionary();
- args.Add("key", gfy.GfyName);
-
- AllowReportProgress = true;
-
- UploadResult result = SendRequestFile(URL_UPLOAD, stream, fileName, "file", args);
- if (!result.IsError)
- {
- WaitForTranscode(gfy.GfyName, result);
- }
-
- return result;
- }
-
- private void WaitForTranscode(string name, UploadResult result)
- {
- ProgressManager progress = new ProgressManager(10000);
- progress.CustomProgressText = "Gfycat encoding...";
- OnProgressChanged(progress);
-
- int iterations = 0;
-
- while (!StopUploadRequested)
- {
- string statusJson = SendRequest(HttpMethod.GET, URL_API_STATUS + name);
- GfycatStatusResponse response = JsonConvert.DeserializeObject(statusJson);
-
- if (response.Error != null)
- {
- Errors.Add(response.Error);
- result.IsSuccess = false;
- break;
- }
- else if (response.Task.Equals("error", StringComparison.OrdinalIgnoreCase))
- {
- Errors.Add(response.Description);
- result.IsSuccess = false;
- break;
- }
- else if (response.GfyName != null)
- {
- result.IsSuccess = true;
- result.URL = "https://gfycat.com/" + response.GfyName;
- break;
- }
- else if ((response.Task.Equals("NotFoundo", StringComparison.OrdinalIgnoreCase) ||
- response.Task.Equals("NotFound", StringComparison.OrdinalIgnoreCase)) && iterations > 5)
- {
- Errors.Add("Gfy not found");
- result.IsSuccess = false;
- break;
- }
-
- if (progress.UpdateProgress((progress.Length - progress.Position) / response.Time))
- {
- OnProgressChanged(progress);
- }
-
- iterations++;
- Thread.Sleep(500);
- }
-
- progress.CustomProgressText = "";
- OnProgressChanged(progress);
- }
-
- private GfycatCreateResponse CreateGfycat(NameValueCollection headers)
- {
- Dictionary args = new Dictionary();
- args.Add("private", Private);
- args.Add("noResize", NoResize);
- args.Add("noMd5", IgnoreExisting);
- args.Add("keepAudio", KeepAudio);
- if (!string.IsNullOrEmpty(Title)) args.Add("title", Title);
-
- string json = JsonConvert.SerializeObject(args);
-
- string response = SendRequest(HttpMethod.POST, URL_API_CREATE_GFY, json, RequestHelpers.ContentTypeJSON, null, headers);
-
- if (!string.IsNullOrEmpty(response))
- {
- return JsonConvert.DeserializeObject(response);
- }
-
- return null;
- }
-
- private OAuth2Token GetOrCreateToken()
- {
- if (UploadMethod == AccountType.User)
- {
- if (!CheckAuthorization())
- {
- return null;
- }
-
- return AuthInfo.Token;
- }
- else
- {
- if (AnonymousToken == null || AnonymousToken.IsExpired)
- {
- string request = JsonConvert.SerializeObject(new
- {
- client_id = AuthInfo.Client_ID,
- client_secret = AuthInfo.Client_Secret,
- grant_type = "client_credentials",
- });
-
- string response = SendRequest(HttpMethod.POST, URL_API_TOKEN, request, RequestHelpers.ContentTypeJSON);
-
- if (!string.IsNullOrEmpty(response))
- {
- AnonymousToken = JsonConvert.DeserializeObject(response);
-
- if (AnonymousToken != null && !string.IsNullOrEmpty(AnonymousToken.access_token))
- {
- AnonymousToken.UpdateExpireDate();
- }
- }
- }
-
- return AnonymousToken;
- }
- }
- }
-
- public class GfycatCreateResponse
- {
- public string GfyName { get; set; }
- public string Secret { get; set; }
- }
-
- public class GfycatStatusResponse
- {
- public string Task { get; set; }
- public int Time { get; set; }
- public string GfyName { get; set; }
- public string Error { get; set; }
- public string Description { get; set; }
- }
-}
\ No newline at end of file
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.Designer.cs b/ShareX.UploadersLib/Forms/UploadersConfigForm.Designer.cs
index ed0eef404..216670e27 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.Designer.cs
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.Designer.cs
@@ -299,13 +299,6 @@ private void InitializeComponent()
this.lblB2UploadPath = new System.Windows.Forms.Label();
this.lblB2ApplicationKey = new System.Windows.Forms.Label();
this.lblB2ApplicationKeyId = new System.Windows.Forms.Label();
- this.tpGfycat = new System.Windows.Forms.TabPage();
- this.txtGfycatTitle = new System.Windows.Forms.TextBox();
- this.lblGfycatTitle = new System.Windows.Forms.Label();
- this.cbGfycatKeepAudio = new System.Windows.Forms.CheckBox();
- this.cbGfycatIsPublic = new System.Windows.Forms.CheckBox();
- this.atcGfycatAccountType = new ShareX.UploadersLib.AccountTypeControl();
- this.oauth2Gfycat = new ShareX.UploadersLib.OAuthControl();
this.tpMega = new System.Windows.Forms.TabPage();
this.btnMegaRefreshFolders = new System.Windows.Forms.Button();
this.lblMegaStatus = new System.Windows.Forms.Label();
@@ -650,7 +643,6 @@ private void InitializeComponent()
this.gbGoogleCloudStorageAdvanced.SuspendLayout();
this.tpAzureStorage.SuspendLayout();
this.tpBackblazeB2.SuspendLayout();
- this.tpGfycat.SuspendLayout();
this.tpMega.SuspendLayout();
this.tpOwnCloud.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.txtOwnCloudExpiryTime)).BeginInit();
@@ -1232,7 +1224,6 @@ private void InitializeComponent()
this.tcFileUploaders.Controls.Add(this.tpGoogleCloudStorage);
this.tcFileUploaders.Controls.Add(this.tpAzureStorage);
this.tcFileUploaders.Controls.Add(this.tpBackblazeB2);
- this.tcFileUploaders.Controls.Add(this.tpGfycat);
this.tcFileUploaders.Controls.Add(this.tpMega);
this.tcFileUploaders.Controls.Add(this.tpOwnCloud);
this.tcFileUploaders.Controls.Add(this.tpMediaFire);
@@ -2496,60 +2487,6 @@ private void InitializeComponent()
resources.ApplyResources(this.lblB2ApplicationKeyId, "lblB2ApplicationKeyId");
this.lblB2ApplicationKeyId.Name = "lblB2ApplicationKeyId";
//
- // tpGfycat
- //
- this.tpGfycat.BackColor = System.Drawing.SystemColors.Window;
- this.tpGfycat.Controls.Add(this.txtGfycatTitle);
- this.tpGfycat.Controls.Add(this.lblGfycatTitle);
- this.tpGfycat.Controls.Add(this.cbGfycatKeepAudio);
- this.tpGfycat.Controls.Add(this.cbGfycatIsPublic);
- this.tpGfycat.Controls.Add(this.atcGfycatAccountType);
- this.tpGfycat.Controls.Add(this.oauth2Gfycat);
- resources.ApplyResources(this.tpGfycat, "tpGfycat");
- this.tpGfycat.Name = "tpGfycat";
- //
- // txtGfycatTitle
- //
- resources.ApplyResources(this.txtGfycatTitle, "txtGfycatTitle");
- this.txtGfycatTitle.Name = "txtGfycatTitle";
- this.txtGfycatTitle.TextChanged += new System.EventHandler(this.txtGfycatTitle_TextChanged);
- //
- // lblGfycatTitle
- //
- resources.ApplyResources(this.lblGfycatTitle, "lblGfycatTitle");
- this.lblGfycatTitle.Name = "lblGfycatTitle";
- //
- // cbGfycatKeepAudio
- //
- resources.ApplyResources(this.cbGfycatKeepAudio, "cbGfycatKeepAudio");
- this.cbGfycatKeepAudio.Name = "cbGfycatKeepAudio";
- this.cbGfycatKeepAudio.UseVisualStyleBackColor = true;
- this.cbGfycatKeepAudio.CheckedChanged += new System.EventHandler(this.cbGfycatKeepAudio_CheckedChanged);
- //
- // cbGfycatIsPublic
- //
- resources.ApplyResources(this.cbGfycatIsPublic, "cbGfycatIsPublic");
- this.cbGfycatIsPublic.Name = "cbGfycatIsPublic";
- this.cbGfycatIsPublic.UseVisualStyleBackColor = true;
- this.cbGfycatIsPublic.CheckedChanged += new System.EventHandler(this.cbGfycatIsPublic_CheckedChanged);
- //
- // atcGfycatAccountType
- //
- resources.ApplyResources(this.atcGfycatAccountType, "atcGfycatAccountType");
- this.atcGfycatAccountType.Name = "atcGfycatAccountType";
- this.atcGfycatAccountType.SelectedAccountType = ShareX.UploadersLib.AccountType.Anonymous;
- this.atcGfycatAccountType.AccountTypeChanged += new ShareX.UploadersLib.AccountTypeControl.AccountTypeChangedEventHandler(this.atcGfycatAccountType_AccountTypeChanged);
- //
- // oauth2Gfycat
- //
- resources.ApplyResources(this.oauth2Gfycat, "oauth2Gfycat");
- this.oauth2Gfycat.Name = "oauth2Gfycat";
- this.oauth2Gfycat.UserInfo = null;
- this.oauth2Gfycat.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2Gfycat_OpenButtonClicked);
- this.oauth2Gfycat.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2Gfycat_CompleteButtonClicked);
- this.oauth2Gfycat.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2Gfycat_ClearButtonClicked);
- this.oauth2Gfycat.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oauth2Gfycat_RefreshButtonClicked);
- //
// tpMega
//
this.tpMega.BackColor = System.Drawing.SystemColors.Window;
@@ -4899,8 +4836,6 @@ private void InitializeComponent()
this.tpAzureStorage.PerformLayout();
this.tpBackblazeB2.ResumeLayout(false);
this.tpBackblazeB2.PerformLayout();
- this.tpGfycat.ResumeLayout(false);
- this.tpGfycat.PerformLayout();
this.tpMega.ResumeLayout(false);
this.tpMega.PerformLayout();
this.tpOwnCloud.ResumeLayout(false);
@@ -5400,10 +5335,6 @@ private void InitializeComponent()
private System.Windows.Forms.Label lblAmazonS3Endpoint;
private System.Windows.Forms.CheckBox cbDropboxUseDirectLink;
private System.Windows.Forms.CheckBox cbAmazonS3UsePathStyle;
- private OAuthControl oauth2Gfycat;
- private AccountTypeControl atcGfycatAccountType;
- private System.Windows.Forms.CheckBox cbGfycatIsPublic;
- internal System.Windows.Forms.TabPage tpGfycat;
private System.Windows.Forms.Panel pFTPTransferMode;
private System.Windows.Forms.RadioButton rbFTPTransferModeActive;
private System.Windows.Forms.RadioButton rbFTPTransferModePassive;
@@ -5528,7 +5459,6 @@ private void InitializeComponent()
private System.Windows.Forms.Label lblGooglePhotosCreateAlbumName;
private System.Windows.Forms.TextBox txtGooglePhotosCreateAlbumName;
private System.Windows.Forms.Button btnGooglePhotosCreateAlbum;
- private System.Windows.Forms.CheckBox cbGfycatKeepAudio;
private System.Windows.Forms.GroupBox gbGoogleCloudStorageAdvanced;
private System.Windows.Forms.Label lblGoogleCloudStorageStripExtension;
private System.Windows.Forms.CheckBox cbGoogleCloudStorageStripExtensionText;
@@ -5540,8 +5470,6 @@ private void InitializeComponent()
private System.Windows.Forms.ComboBox cbGoogleDriveSharedDrive;
private System.Windows.Forms.TextBox txtKuttDomain;
private System.Windows.Forms.Label lblKuttDomain;
- private System.Windows.Forms.TextBox txtGfycatTitle;
- private System.Windows.Forms.Label lblGfycatTitle;
internal System.Windows.Forms.TabPage tpZeroWidthShortener;
private System.Windows.Forms.TextBox txtZWSToken;
private System.Windows.Forms.TextBox txtZWSURL;
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.cs b/ShareX.UploadersLib/Forms/UploadersConfigForm.cs
index e7637444d..4d261109c 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.cs
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.cs
@@ -688,23 +688,6 @@ private void LoadFileUploaderSettings()
#endregion Plik
- #region Gfycat
-
- atcGfycatAccountType.SelectedAccountType = Config.GfycatAccountType;
-
- oauth2Gfycat.Enabled = Config.GfycatAccountType == AccountType.User;
-
- if (OAuth2Info.CheckOAuth(Config.GfycatOAuth2Info))
- {
- oauth2Gfycat.Status = OAuthLoginStatus.LoginSuccessful;
- }
-
- cbGfycatIsPublic.Checked = Config.GfycatIsPublic;
- cbGfycatKeepAudio.Checked = Config.GfycatKeepAudio;
- txtGfycatTitle.Text = Config.GfycatTitle;
-
- #endregion Gfycat
-
#region YouTube
oauth2YouTube.UpdateStatus(Config.YouTubeOAuth2Info, Config.YouTubeUserInfo);
@@ -2892,52 +2875,6 @@ private void nudPlikTTL_ValueChanged(object sender, EventArgs e)
#endregion Plik
- #region Gfycat
-
- private void atcGfycatAccountType_AccountTypeChanged(AccountType accountType)
- {
- Config.GfycatAccountType = accountType;
- oauth2Gfycat.Enabled = Config.GfycatAccountType == AccountType.User;
- }
-
- private void oauth2Gfycat_OpenButtonClicked()
- {
- OAuth2Info oauth = new OAuth2Info(APIKeys.GfycatClientID, APIKeys.GfycatClientSecret);
- Config.GfycatOAuth2Info = OAuth2Open(new GfycatUploader(oauth));
- }
-
- private void oauth2Gfycat_CompleteButtonClicked(string code)
- {
- OAuth2Complete(new GfycatUploader(Config.GfycatOAuth2Info), code, oauth2Gfycat);
- }
-
- private void oauth2Gfycat_ClearButtonClicked()
- {
- Config.GfycatOAuth2Info = null;
- }
-
- private void oauth2Gfycat_RefreshButtonClicked()
- {
- OAuth2Refresh(new GfycatUploader(Config.GfycatOAuth2Info), oauth2Gfycat);
- }
-
- private void cbGfycatIsPublic_CheckedChanged(object sender, EventArgs e)
- {
- Config.GfycatIsPublic = cbGfycatIsPublic.Checked;
- }
-
- private void cbGfycatKeepAudio_CheckedChanged(object sender, EventArgs e)
- {
- Config.GfycatKeepAudio = cbGfycatKeepAudio.Checked;
- }
-
- private void txtGfycatTitle_TextChanged(object sender, EventArgs e)
- {
- Config.GfycatTitle = txtGfycatTitle.Text;
- }
-
- #endregion Gfycat
-
#region YouTube
private void oauth2YouTube_ConnectButtonClicked()
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.es-MX.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.es-MX.resx
index 0172947fc..6225fcf6d 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.es-MX.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.es-MX.resx
@@ -279,9 +279,6 @@
¿Es enlace público?
-
- Subida pública
-
¿Es enlace público?
@@ -1034,9 +1031,6 @@ Por ejemplo, si el bucket se llama bucket.example.com, la URL será http://bucke
FTP / FTPS / SFTP
-
- Gfycat
-
GitHub Gist
@@ -1188,9 +1182,6 @@ Por ejemplo, si el bucket se llama bucket.example.com, la URL será http://bucke
Usar enlace personalizado (se permiten patrones de formato):
-
- Conservar audio
-
Definir permiso de lectura pública al archivo
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.fr.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.fr.resx
index 6e3cc5645..bf9a33eb0 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.fr.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.fr.resx
@@ -804,9 +804,6 @@ Utiliser une bibliothèque chiffrée désactive le partage.
Région :
-
- Mise en ligne publique
-
Exemple : https://api.github.com
@@ -1101,9 +1098,6 @@ Utiliser une bibliothèque chiffrée désactive le partage.
Obtenir la clé utilisateur...
-
- Gfycat
-
GitHub Gist
@@ -1128,9 +1122,6 @@ Utiliser une bibliothèque chiffrée désactive le partage.
Si une URL avec la cible spécifiée existe, la retourner
-
- Conserver l'audio
-
Lambda
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.he-IL.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.he-IL.resx
index c4fbe00bb..2d09945b2 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.he-IL.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.he-IL.resx
@@ -126,9 +126,6 @@
ימים
-
- כותרת:
-
הוסף את שם הקובץ לקישור
@@ -399,9 +396,6 @@
נדרשת התחברות.
-
- שמור על שמע
-
צור
@@ -628,9 +622,6 @@
העלאה ציבורית
-
- העלאה ציבורית
-
מצב העברה:
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.id-ID.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.id-ID.resx
index c85da544b..b95a4ba42 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.id-ID.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.id-ID.resx
@@ -459,9 +459,6 @@
Flickr
-
- Gfycat
-
GitHub Gist
@@ -906,9 +903,6 @@
Apakah unggah publik?
-
- Apakah unggah publik?
-
Apakah unggah publik?
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.it-IT.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.it-IT.resx
index ecc00a740..e1322b4c9 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.it-IT.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.it-IT.resx
@@ -309,9 +309,6 @@
Immagine:
-
- Caricamento Pubblico?
-
Caricamento Pubblico?
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.ja-JP.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.ja-JP.resx
index 8db54bfa2..dd0373a99 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.ja-JP.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.ja-JP.resx
@@ -395,9 +395,6 @@
独自のドメイン:
-
- 公開する
-
更新
@@ -1017,12 +1014,6 @@
アプリケーション キー ID:
-
- 音声を維持
-
-
- 題:
-
URLにファイル名を付与
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.ko-KR.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.ko-KR.resx
index 1155233a9..b282da6f8 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.ko-KR.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.ko-KR.resx
@@ -791,12 +791,6 @@
Azure Storage
-
- 공개 업로드
-
-
- Gfycat
-
Mega
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.pl.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.pl.resx
index 58c9b2d44..b447970df 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.pl.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.pl.resx
@@ -279,9 +279,6 @@
Tryb transferu:
-
- Tytuł:
-
Podgląd
@@ -411,12 +408,6 @@
Utwórz publiczny Gist
-
- Zachowaj dźwięk
-
-
- Publiczne przesyłanie
-
Przesyłanie publiczne?
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.pt-BR.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.pt-BR.resx
index 0d3436290..07cf049ee 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.pt-BR.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.pt-BR.resx
@@ -1080,15 +1080,6 @@ Usar uma biblioteca encriptada desabilita o compartilhamento.
ID da chave do aplicativo:
-
- Título:
-
-
- Manter áudio
-
-
- Upload público
-
Links compartilhados com expiração automática
@@ -1272,9 +1263,6 @@ Usar uma biblioteca encriptada desabilita o compartilhamento.
Teknik
-
- Gfycat
-
Kutt
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.pt-PT.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.pt-PT.resx
index 82ef678e7..c2cb0141d 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.pt-PT.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.pt-PT.resx
@@ -500,12 +500,6 @@ Por exemplo, se o teu nome for 'bucket.example.com' a hiperligação será http:
ID da chave secreta:
-
- Manter o aúdio
-
-
- Upload público
-
Actualizar
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.resx
index 3adb27d17..97a99c94b 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.resx
@@ -6473,186 +6473,6 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
9
-
- 16, 368
-
-
- 320, 20
-
-
- 9
-
-
- txtGfycatTitle
-
-
- System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tpGfycat
-
-
- 0
-
-
- True
-
-
- NoControl
-
-
- 13, 352
-
-
- 30, 13
-
-
- 8
-
-
- Title:
-
-
- lblGfycatTitle
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tpGfycat
-
-
- 1
-
-
- True
-
-
- NoControl
-
-
- 16, 328
-
-
- 80, 17
-
-
- 7
-
-
- Keep audio
-
-
- cbGfycatKeepAudio
-
-
- System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tpGfycat
-
-
- 2
-
-
- True
-
-
- NoControl
-
-
- 16, 304
-
-
- 90, 17
-
-
- 6
-
-
- Public upload
-
-
- cbGfycatIsPublic
-
-
- System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tpGfycat
-
-
- 3
-
-
- 16, 16
-
-
- 208, 40
-
-
- 3
-
-
- atcGfycatAccountType
-
-
- ShareX.UploadersLib.AccountTypeControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null
-
-
- tpGfycat
-
-
- 4
-
-
- 16, 64
-
-
- 328, 240
-
-
- 2
-
-
- oauth2Gfycat
-
-
- ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null
-
-
- tpGfycat
-
-
- 5
-
-
- 4, 220
-
-
- 3, 3, 3, 3
-
-
- 178, 0
-
-
- 30
-
-
- Gfycat
-
-
- tpGfycat
-
-
- System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- tcFileUploaders
-
-
- 10
-
NoControl
@@ -6969,7 +6789,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
tcFileUploaders
- 11
+ 10
True
@@ -7461,7 +7281,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
tcFileUploaders
- 12
+ 11
True
@@ -7671,7 +7491,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
tcFileUploaders
- 13
+ 12
True
@@ -7833,7 +7653,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
tcFileUploaders
- 14
+ 13
NoControl
@@ -8010,7 +7830,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
tcFileUploaders
- 15
+ 14
True
@@ -8169,7 +7989,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
tcFileUploaders
- 16
+ 15
472, 277
@@ -8376,7 +8196,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
tcFileUploaders
- 17
+ 16
True
@@ -8535,7 +8355,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
tcFileUploaders
- 18
+ 17
16, 80
@@ -8664,7 +8484,7 @@ For example, if your bucket is called "bucket.example.com" then URL will be "htt
tcFileUploaders
- 19
+ 18
https://seacloud.cc/api2/
@@ -9655,7 +9475,7 @@ Using an encrypted library disables sharing.
tcFileUploaders
- 20
+ 19
True
@@ -9823,7 +9643,7 @@ Using an encrypted library disables sharing.
tcFileUploaders
- 21
+ 20
NoControl
@@ -9928,7 +9748,7 @@ Using an encrypted library disables sharing.
tcFileUploaders
- 22
+ 21
NoControl
@@ -10162,7 +9982,7 @@ Using an encrypted library disables sharing.
tcFileUploaders
- 23
+ 22
True
@@ -10669,7 +10489,7 @@ Using an encrypted library disables sharing.
tcFileUploaders
- 24
+ 23
8, 8
@@ -10885,7 +10705,7 @@ Using an encrypted library disables sharing.
tcFileUploaders
- 25
+ 24
False
@@ -11191,7 +11011,7 @@ Using an encrypted library disables sharing.
tcFileUploaders
- 26
+ 25
16, 408
@@ -11611,7 +11431,7 @@ Using an encrypted library disables sharing.
tcFileUploaders
- 27
+ 26
Fill
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.ru.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.ru.resx
index 77c85eba7..f23c0d587 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.ru.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.ru.resx
@@ -717,9 +717,6 @@
Пользовательский домен:
-
- Публичная загрузка
-
Имя пользователя:
@@ -1020,9 +1017,6 @@
Имя альбома:
-
- Оставлять звук
-
Публичная загрузка
@@ -1068,9 +1062,6 @@
никогда
-
- Заголовок:
-
Токен:
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.tr.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.tr.resx
index 123d56706..87cd71875 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.tr.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.tr.resx
@@ -654,9 +654,6 @@ Mesela klasör ismi "bucket.example.com" ise o zaman adres "http://bucket.exampl
Yükleme halka açık mı?
-
- Halka açık karşıya yükle
-
Yorum (Markdown)
@@ -840,9 +837,6 @@ Mesela klasör ismi "bucket.example.com" ise o zaman adres "http://bucket.exampl
API adresini yapıştır:
-
- Başlık:
-
Yükleme API adresi:
@@ -951,9 +945,6 @@ Mesela klasör ismi "bucket.example.com" ise o zaman adres "http://bucket.exampl
Kısa bağlantı
-
- Sesi koru
-
Silinebilir
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.uk.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.uk.resx
index aa669c4d6..b92494f4d 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.uk.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.uk.resx
@@ -435,9 +435,6 @@
Шлях вивантаження:
-
- Публічне вивантаження
-
Оновити
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.vi-VN.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.vi-VN.resx
index 6bfe1f368..1e70f0a9e 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.vi-VN.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.vi-VN.resx
@@ -863,9 +863,6 @@ Ví dụ: nếu tên bucket là bucket.example.com thì URL sẽ là http://buck
Lấy key user...
-
- Gfycat
-
GitHub Gist
@@ -1082,9 +1079,6 @@ Ví dụ: nếu tên bucket là bucket.example.com thì URL sẽ là http://buck
Tải lên công khai?
-
- Tải lên công khai?
-
Là URL bí mật
@@ -1221,9 +1215,6 @@ Sử dụng thư viện được mã hóa sẽ vô hiệu hóa chia sẻ.
Ảnh
-
- Giữ lại âm thanh
-
Đặt quyền công khai cho tệp (public-read ACL)
@@ -1281,9 +1272,6 @@ Sử dụng thư viện được mã hóa sẽ vô hiệu hóa chia sẻ.
Cấp truy cập liên kết được chia sẻ:
-
- Tiêu đề:
-
Tên miền:
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.zh-CN.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.zh-CN.resx
index 41b566ba6..47bc08f15 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.zh-CN.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.zh-CN.resx
@@ -747,9 +747,6 @@
账户名称:
-
- 公共上传
-
ownCloud 8.1+ 兼容性
@@ -1032,9 +1029,6 @@
图片
-
- 保持声音
-
密码:
@@ -1149,9 +1143,6 @@
Flickr
-
- Gfycat
-
Hastebin
@@ -1278,9 +1269,6 @@
显示视频选项对话框
-
- 标题:
-
您随时可通过该链接撤销您的访问权限:
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.zh-TW.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.zh-TW.resx
index 2acb2da73..77e15b29f 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.zh-TW.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.zh-TW.resx
@@ -791,12 +791,6 @@
從網址路徑移除檔案副檔名
-
- 公開上傳
-
-
- 保留音訊
-
在檔案中設定公開 ACL
diff --git a/ShareX.UploadersLib/Helpers/ProgressManager.cs b/ShareX.UploadersLib/Helpers/ProgressManager.cs
index 1bcf31a69..2721aed63 100644
--- a/ShareX.UploadersLib/Helpers/ProgressManager.cs
+++ b/ShareX.UploadersLib/Helpers/ProgressManager.cs
@@ -54,8 +54,6 @@ public TimeSpan Remaining
}
}
- public string CustomProgressText { get; set; }
-
private Stopwatch startTimer = new Stopwatch();
private Stopwatch smoothTimer = new Stopwatch();
private int smoothTime = 250;
diff --git a/ShareX.UploadersLib/Properties/Resources.Designer.cs b/ShareX.UploadersLib/Properties/Resources.Designer.cs
index 5fbcd4851..b814ad2e5 100644
--- a/ShareX.UploadersLib/Properties/Resources.Designer.cs
+++ b/ShareX.UploadersLib/Properties/Resources.Designer.cs
@@ -289,16 +289,6 @@ internal class Resources {
}
}
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- internal static System.Drawing.Bitmap Gfycat {
- get {
- object obj = ResourceManager.GetObject("Gfycat", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
///
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
///
diff --git a/ShareX.UploadersLib/Properties/Resources.resx b/ShareX.UploadersLib/Properties/Resources.resx
index 6d754950c..cdef86de1 100644
--- a/ShareX.UploadersLib/Properties/Resources.resx
+++ b/ShareX.UploadersLib/Properties/Resources.resx
@@ -329,9 +329,6 @@ Created folders:
..\Favicons\Plik.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Favicons\Gfycat.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
Paste verification code here
diff --git a/ShareX.UploadersLib/ShareX.UploadersLib.csproj b/ShareX.UploadersLib/ShareX.UploadersLib.csproj
index 5593911ce..fbd8b4f38 100644
--- a/ShareX.UploadersLib/ShareX.UploadersLib.csproj
+++ b/ShareX.UploadersLib/ShareX.UploadersLib.csproj
@@ -248,7 +248,6 @@
UploadersConfigForm.cs
-
Form
@@ -1248,7 +1247,6 @@
-
diff --git a/ShareX.UploadersLib/UploadersConfig.cs b/ShareX.UploadersLib/UploadersConfig.cs
index 2e14cdf4a..2b16d6a8b 100644
--- a/ShareX.UploadersLib/UploadersConfig.cs
+++ b/ShareX.UploadersLib/UploadersConfig.cs
@@ -179,16 +179,6 @@ public class UploadersConfig : SettingsBase
#endregion OneDrive
- #region Gfycat
-
- public OAuth2Info GfycatOAuth2Info { get; set; } = null;
- public AccountType GfycatAccountType { get; set; } = AccountType.Anonymous;
- public bool GfycatIsPublic { get; set; } = false;
- public bool GfycatKeepAudio { get; set; } = true;
- public string GfycatTitle { get; set; } = "ShareX";
-
- #endregion Gfycat
-
#region Google Drive
public OAuth2Info GoogleDriveOAuth2Info { get; set; } = null;
diff --git a/ShareX/TaskManager.cs b/ShareX/TaskManager.cs
index 47eac4dc0..758019a0e 100644
--- a/ShareX/TaskManager.cs
+++ b/ShareX/TaskManager.cs
@@ -200,20 +200,12 @@ private static void Task_UploadProgressChanged(WorkerTask task)
if (lvi != null)
{
lvi.SubItems[1].Text = string.Format("{0:0.0}%", info.Progress.Percentage);
+ lvi.SubItems[2].Text = string.Format("{0} / {1}", info.Progress.Position.ToSizeString(Program.Settings.BinaryUnits),
+ info.Progress.Length.ToSizeString(Program.Settings.BinaryUnits));
- if (info.Progress.CustomProgressText != null)
+ if (info.Progress.Speed > 0)
{
- lvi.SubItems[2].Text = info.Progress.CustomProgressText;
- lvi.SubItems[3].Text = "";
- }
- else
- {
- lvi.SubItems[2].Text = string.Format("{0} / {1}", info.Progress.Position.ToSizeString(Program.Settings.BinaryUnits), info.Progress.Length.ToSizeString(Program.Settings.BinaryUnits));
-
- if (info.Progress.Speed > 0)
- {
- lvi.SubItems[3].Text = ((long)info.Progress.Speed).ToSizeString(Program.Settings.BinaryUnits) + "/s";
- }
+ lvi.SubItems[3].Text = ((long)info.Progress.Speed).ToSizeString(Program.Settings.BinaryUnits) + "/s";
}
lvi.SubItems[4].Text = Helpers.ProperTimeSpan(info.Progress.Elapsed);