Jaex 2018-04-01 23:34:48 +03:00
parent 21332baf8a
commit e369ee2863
8 changed files with 2074 additions and 8526 deletions

View file

@ -1142,12 +1142,6 @@ public static T ByteArrayToStructure<T>(byte[] bytes) where T : struct
}
}
// http://goessner.net/articles/JsonPath/
public static string ParseJSON(string text, string jsonPath)
{
return (string)JToken.Parse(text).SelectToken("$." + jsonPath);
}
public static T[] GetInstances<T>() where T : class
{
IEnumerable<T> instances = from t in Assembly.GetCallingAssembly().GetTypes()

View file

@ -531,7 +531,6 @@ private void InitializeComponent()
this.cbGistUseRawURL = new System.Windows.Forms.CheckBox();
this.cbGistPublishPublic = new System.Windows.Forms.CheckBox();
this.oAuth2Gist = new ShareX.UploadersLib.OAuthControl();
this.atcGistAccountType = new ShareX.UploadersLib.AccountTypeControl();
this.tpUpaste = new System.Windows.Forms.TabPage();
this.cbUpasteIsPublic = new System.Windows.Forms.CheckBox();
this.lblUpasteUserKey = new System.Windows.Forms.Label();
@ -4375,7 +4374,6 @@ private void InitializeComponent()
this.tpGist.Controls.Add(this.cbGistUseRawURL);
this.tpGist.Controls.Add(this.cbGistPublishPublic);
this.tpGist.Controls.Add(this.oAuth2Gist);
this.tpGist.Controls.Add(this.atcGistAccountType);
resources.ApplyResources(this.tpGist, "tpGist");
this.tpGist.Name = "tpGist";
//
@ -4416,20 +4414,13 @@ private void InitializeComponent()
//
// oAuth2Gist
//
resources.ApplyResources(this.oAuth2Gist, "oAuth2Gist");
this.oAuth2Gist.IsRefreshable = false;
resources.ApplyResources(this.oAuth2Gist, "oAuth2Gist");
this.oAuth2Gist.Name = "oAuth2Gist";
this.oAuth2Gist.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oAuth2Gist_OpenButtonClicked);
this.oAuth2Gist.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oAuth2Gist_CompleteButtonClicked);
this.oAuth2Gist.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oAuth2Gist_ClearButtonClicked);
//
// atcGistAccountType
//
resources.ApplyResources(this.atcGistAccountType, "atcGistAccountType");
this.atcGistAccountType.Name = "atcGistAccountType";
this.atcGistAccountType.SelectedAccountType = ShareX.UploadersLib.AccountType.Anonymous;
this.atcGistAccountType.AccountTypeChanged += new ShareX.UploadersLib.AccountTypeControl.AccountTypeChangedEventHandler(this.atcGistAccountType_AccountTypeChanged);
//
// tpUpaste
//
this.tpUpaste.BackColor = System.Drawing.SystemColors.Window;
@ -5486,7 +5477,6 @@ private void InitializeComponent()
private System.Windows.Forms.TextBox txtPaste_eeUserAPIKey;
private System.Windows.Forms.CheckBox cbGistPublishPublic;
private OAuthControl oAuth2Gist;
private AccountTypeControl atcGistAccountType;
private System.Windows.Forms.CheckBox cbUpasteIsPublic;
private System.Windows.Forms.Label lblUpasteUserKey;
private System.Windows.Forms.TextBox txtUpasteUserKey;

View file

@ -312,8 +312,6 @@ public void LoadSettings()
#region Gist
atcGistAccountType.SelectedAccountType = Config.GistAnonymousLogin ? AccountType.Anonymous : AccountType.User;
if (OAuth2Info.CheckOAuth(Config.GistOAuth2Info))
{
oAuth2Gist.Status = OAuthLoginStatus.LoginSuccessful;
@ -1255,12 +1253,6 @@ private void txtPaste_eeUserAPIKey_TextChanged(object sender, EventArgs e)
#region Gist
private void atcGistAccountType_AccountTypeChanged(AccountType accountType)
{
Config.GistAnonymousLogin = accountType == AccountType.Anonymous;
oAuth2Gist.Enabled = !Config.GistAnonymousLogin;
}
private void oAuth2Gist_OpenButtonClicked()
{
GistAuthOpen();

File diff suppressed because it is too large Load diff

View file

@ -2008,7 +2008,6 @@ public void GistAuthComplete(string code)
{
oAuth2Gist.Status = OAuthLoginStatus.LoginFailed;
MessageBox.Show(Resources.UploadersConfigForm_Login_failed, "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Error);
atcGistAccountType.SelectedAccountType = AccountType.Anonymous;
}
}
}

View file

@ -23,6 +23,7 @@ You should have received a copy of the GNU General Public License
#endregion License Information (GPL v3)
using Newtonsoft.Json.Linq;
using ShareX.HelpersLib;
using ShareX.UploadersLib.Properties;
using System;
@ -390,7 +391,7 @@ private string ParseRegexSyntax(string syntax)
// http://goessner.net/articles/JsonPath/
private string ParseJsonSyntax(string syntaxJsonPath)
{
return Helpers.ParseJSON(response, syntaxJsonPath);
return (string)JToken.Parse(response).SelectToken("$." + syntaxJsonPath);
}
// http://www.w3schools.com/xsl/xpath_syntax.asp

View file

@ -30,6 +30,7 @@ You should have received a copy of the GNU General Public License
using ShareX.UploadersLib.Properties;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Windows.Forms;
@ -41,18 +42,14 @@ public class GitHubGistTextUploaderService : TextUploaderService
public override Icon ServiceIcon => Resources.GitHub;
public override bool CheckConfig(UploadersConfig config) => true;
public override bool CheckConfig(UploadersConfig config)
{
return OAuth2Info.CheckOAuth(config.GistOAuth2Info);
}
public override GenericUploader CreateUploader(UploadersConfig config, TaskReferenceHelper taskInfo)
{
OAuth2Info oauth = null;
if (!config.GistAnonymousLogin)
{
oauth = config.GistOAuth2Info;
}
return new GitHubGist(oauth)
return new GitHubGist(config.GistOAuth2Info)
{
PublicUpload = config.GistPublishPublic,
RawURL = config.GistRawURL,
@ -73,10 +70,6 @@ public sealed class GitHubGist : TextUploader, IOAuth2Basic
public bool RawURL { get; set; }
public string CustomURLAPI { get; set; }
public GitHubGist()
{
}
public GitHubGist(OAuth2Info oAuthInfos)
{
AuthInfo = oAuthInfos;
@ -133,8 +126,6 @@ public override UploadResult UploadText(string text, string fileName)
}
};
string json = JsonConvert.SerializeObject(gistUploadObject);
string url;
if (!string.IsNullOrEmpty(CustomURLAPI))
@ -148,27 +139,41 @@ public override UploadResult UploadText(string text, string fileName)
url = URLHelpers.CombineURL(url, "gists");
if (AuthInfo != null)
{
url += "?access_token=" + AuthInfo.Token.access_token;
}
string json = JsonConvert.SerializeObject(gistUploadObject);
string response = SendRequest(HttpMethod.POST, url, json, ContentTypeJSON);
Dictionary<string, string> args = new Dictionary<string, string>();
args.Add("access_token", AuthInfo.Token.access_token);
string response = SendRequest(HttpMethod.POST, url, json, ContentTypeJSON, args);
GistResponse gistResponse = JsonConvert.DeserializeObject<GistResponse>(response);
if (response != null)
{
if (RawURL)
{
ur.URL = Helpers.ParseJSON(response, "files.*.raw_url");
ur.URL = gistResponse.files.First().Value.raw_url;
}
else
{
ur.URL = Helpers.ParseJSON(response, "html_url");
ur.URL = gistResponse.html_url;
}
}
}
return ur;
}
private class GistResponse
{
public string html_url { get; set; }
public Dictionary<string, GistFileInfo> files { get; set; }
}
private class GistFileInfo
{
public string filename { get; set; }
public string raw_url { get; set; }
}
}
}

View file

@ -116,7 +116,6 @@ public class UploadersConfig : SettingsBase<UploadersConfig>
#region Gist
public bool GistAnonymousLogin = true;
public OAuth2Info GistOAuth2Info = null;
public bool GistPublishPublic = false;
public bool GistRawURL = false;