Merge pull request #1431 from Bluecodelf/master

Fixed #1370 : Added support for openload.co
This commit is contained in:
Jaex 2016-03-21 19:39:58 +02:00
commit 3adcdbd2f2
11 changed files with 699 additions and 1 deletions

View file

@ -134,6 +134,8 @@ public enum FileDestination
Sul,
[Description("Streamable")]
Streamable,
[Description("openload.co")]
Openload,
SharedFolder, // Localized
Email, // Localized
CustomFileUploader // Localized

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View file

@ -0,0 +1,170 @@
#region License Information (GPL v3)
/*
ShareX - A program that allows you to take screenshots and share any file type
Copyright (c) 2007-2016 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 <http://www.gnu.org/licenses/>.
*/
#endregion License Information (GPL v3)
using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO;
namespace ShareX.UploadersLib.FileUploaders
{
public sealed class OpenloadUploader : FileUploader
{
public string APILogin { get; set; }
public string APIKey { get; set; }
public bool UploadToFolder { get; set; }
public string FolderID { get; set; }
public bool IsStatusOK(int statusCode)
{
return (statusCode / 100 == 2);
}
public string GetUploadURL()
{
Dictionary<string, string> args = new Dictionary<string, string>();
if (!string.IsNullOrEmpty(APILogin) && !string.IsNullOrEmpty(APIKey))
{
args.Add("login", APILogin);
args.Add("key", APIKey);
if (UploadToFolder && !string.IsNullOrEmpty(FolderID))
args.Add("folder", FolderID);
}
string response = SendRequest(HttpMethod.POST, "https://api.openload.co/1/file/ul", args);
if (!string.IsNullOrEmpty(response))
{
var uploadResponse = JsonConvert.DeserializeObject<OpenloadResponse<OpenloadUploadResult>>(response);
if (IsStatusOK(uploadResponse.status))
return uploadResponse.result.url;
Errors.Add(string.Format("Can't retrieve the upload URL: {0}", uploadResponse.message));
return null;
}
Errors.Add("Can't retrieve the upload URL");
return null;
}
public OpenloadFolderNode GetFolderTree(string folderID)
{
Dictionary<string, string> args = new Dictionary<string, string>();
if (string.IsNullOrEmpty(APILogin) || string.IsNullOrEmpty(APIKey))
return null;
args.Add("login", APILogin);
args.Add("key", APIKey);
if (!string.IsNullOrEmpty(folderID))
args.Add("folder", folderID);
string response = SendRequest(HttpMethod.POST, "https://api.openload.co/1/file/listfolder", args);
if (string.IsNullOrEmpty(response))
return null;
var folderResponse = JsonConvert.DeserializeObject<OpenloadResponse<OpenloadFolderResult>>(response);
if (!IsStatusOK(folderResponse.status))
return null;
OpenloadFolderNode folderTree = new OpenloadFolderNode();
foreach (OpenloadFolder folder in folderResponse.result.folders)
{
OpenloadFolderNode folderNode = GetFolderTree(folder.id);
if (folderNode == null)
folderNode = new OpenloadFolderNode();
folderNode.folder = folder;
folderTree.subNodes.Add(folderNode);
}
return folderTree;
}
public UploadResult UploadToURL(Stream stream, string fileName, string uploadURL)
{
UploadResult result = UploadData(stream, uploadURL, fileName, "image");
if (!string.IsNullOrEmpty(result.Response))
{
var uploadResponse = JsonConvert.DeserializeObject<OpenloadResponse<OpenloadImageUploadResult>>(result.Response);
if (IsStatusOK(uploadResponse.status))
{
result.URL = uploadResponse.result.url;
return result;
}
}
Errors.Add("Upload to openload.co failed");
return null;
}
public override UploadResult Upload(Stream stream, string fileName)
{
string uploadURL = GetUploadURL();
return (string.IsNullOrEmpty(uploadURL)) ? null : UploadToURL(stream, fileName, uploadURL);
}
}
public class OpenloadFolderNode
{
public OpenloadFolderNode()
{
subNodes = new List<OpenloadFolderNode>();
}
public OpenloadFolder folder { get; set; }
public List<OpenloadFolderNode> subNodes { get; set; }
}
public class OpenloadResponse<ResultType>
{
public int status { get; set; }
public string message { get; set; }
public ResultType result { get; set; }
}
public class OpenloadUploadResult
{
public string url { get; set; }
public string valid_until { get; set; }
}
public class OpenloadImageUploadResult
{
public string name { get; set; }
public string size { get; set; }
public string sha1 { get; set; }
public string content_type { get; set; }
public string id { get; set; }
public string url { get; set; }
}
public class OpenloadFolderResult
{
public OpenloadFolder[] folders { get; set; }
}
public class OpenloadFolder
{
public string id { get; set; }
public string name { get; set; }
}
}

View file

@ -367,6 +367,17 @@ private void InitializeComponent()
this.tpSul = new System.Windows.Forms.TabPage();
this.txtSulAPIKey = new System.Windows.Forms.TextBox();
this.lblSulAPIKey = new System.Windows.Forms.Label();
this.tpOpenload = new System.Windows.Forms.TabPage();
this.gbOpenloadFolders = new System.Windows.Forms.GroupBox();
this.trvOpenloadFolders = new System.Windows.Forms.TreeView();
this.btnOpenloadRefreshFolders = new System.Windows.Forms.Button();
this.cbOpenloadUploadToFolder = new System.Windows.Forms.CheckBox();
this.gbOpenloadAuthentication = new System.Windows.Forms.GroupBox();
this.lblOpenloadApiLink = new System.Windows.Forms.LinkLabel();
this.txtOpenloadApiKey = new System.Windows.Forms.TextBox();
this.lblOpenloadApiKey = new System.Windows.Forms.Label();
this.txtOpenloadApiLogin = new System.Windows.Forms.TextBox();
this.lblOpenloadApiLogin = new System.Windows.Forms.Label();
this.btnCopyShowFiles = new System.Windows.Forms.Button();
this.tpTextUploaders = new System.Windows.Forms.TabPage();
this.tcTextUploaders = new System.Windows.Forms.TabControl();
@ -584,6 +595,9 @@ private void InitializeComponent()
((System.ComponentModel.ISupportInitialize)(this.nudEmailSmtpPort)).BeginInit();
this.tpSharedFolder.SuspendLayout();
this.tpSul.SuspendLayout();
this.tpOpenload.SuspendLayout();
this.gbOpenloadFolders.SuspendLayout();
this.gbOpenloadAuthentication.SuspendLayout();
this.tpTextUploaders.SuspendLayout();
this.tcTextUploaders.SuspendLayout();
this.tpPastebin.SuspendLayout();
@ -1503,6 +1517,7 @@ private void InitializeComponent()
this.tcFileUploaders.Controls.Add(this.tpEmail);
this.tcFileUploaders.Controls.Add(this.tpSharedFolder);
this.tcFileUploaders.Controls.Add(this.tpSul);
this.tcFileUploaders.Controls.Add(this.tpOpenload);
resources.ApplyResources(this.tcFileUploaders, "tcFileUploaders");
this.tcFileUploaders.Multiline = true;
this.tcFileUploaders.Name = "tcFileUploaders";
@ -3035,6 +3050,84 @@ private void InitializeComponent()
resources.ApplyResources(this.lblSulAPIKey, "lblSulAPIKey");
this.lblSulAPIKey.Name = "lblSulAPIKey";
//
// tpOpenload
//
this.tpOpenload.Controls.Add(this.gbOpenloadFolders);
this.tpOpenload.Controls.Add(this.gbOpenloadAuthentication);
resources.ApplyResources(this.tpOpenload, "tpOpenload");
this.tpOpenload.Name = "tpOpenload";
this.tpOpenload.UseVisualStyleBackColor = true;
//
// gbOpenloadFolders
//
this.gbOpenloadFolders.Controls.Add(this.trvOpenloadFolders);
this.gbOpenloadFolders.Controls.Add(this.btnOpenloadRefreshFolders);
this.gbOpenloadFolders.Controls.Add(this.cbOpenloadUploadToFolder);
resources.ApplyResources(this.gbOpenloadFolders, "gbOpenloadFolders");
this.gbOpenloadFolders.Name = "gbOpenloadFolders";
this.gbOpenloadFolders.TabStop = false;
//
// trvOpenloadFolders
//
this.trvOpenloadFolders.HideSelection = false;
resources.ApplyResources(this.trvOpenloadFolders, "trvOpenloadFolders");
this.trvOpenloadFolders.Name = "trvOpenloadFolders";
this.trvOpenloadFolders.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.trvOpenloadFolders_AfterSelect);
//
// btnOpenloadRefreshFolders
//
resources.ApplyResources(this.btnOpenloadRefreshFolders, "btnOpenloadRefreshFolders");
this.btnOpenloadRefreshFolders.Name = "btnOpenloadRefreshFolders";
this.btnOpenloadRefreshFolders.UseVisualStyleBackColor = true;
this.btnOpenloadRefreshFolders.Click += new System.EventHandler(this.btnOpenloadRefreshFolders_Click);
//
// cbOpenloadUploadToFolder
//
resources.ApplyResources(this.cbOpenloadUploadToFolder, "cbOpenloadUploadToFolder");
this.cbOpenloadUploadToFolder.Name = "cbOpenloadUploadToFolder";
this.cbOpenloadUploadToFolder.UseVisualStyleBackColor = true;
this.cbOpenloadUploadToFolder.CheckedChanged += new System.EventHandler(this.cbOpenloadUploadToFolder_CheckedChanged);
//
// gbOpenloadAuthentication
//
this.gbOpenloadAuthentication.Controls.Add(this.lblOpenloadApiLink);
this.gbOpenloadAuthentication.Controls.Add(this.txtOpenloadApiKey);
this.gbOpenloadAuthentication.Controls.Add(this.lblOpenloadApiKey);
this.gbOpenloadAuthentication.Controls.Add(this.txtOpenloadApiLogin);
this.gbOpenloadAuthentication.Controls.Add(this.lblOpenloadApiLogin);
resources.ApplyResources(this.gbOpenloadAuthentication, "gbOpenloadAuthentication");
this.gbOpenloadAuthentication.Name = "gbOpenloadAuthentication";
this.gbOpenloadAuthentication.TabStop = false;
//
// lblOpenloadApiLink
//
resources.ApplyResources(this.lblOpenloadApiLink, "lblOpenloadApiLink");
this.lblOpenloadApiLink.Name = "lblOpenloadApiLink";
this.lblOpenloadApiLink.TabStop = true;
this.lblOpenloadApiLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lblOpenloadApiLink_LinkClicked);
//
// txtOpenloadApiKey
//
resources.ApplyResources(this.txtOpenloadApiKey, "txtOpenloadApiKey");
this.txtOpenloadApiKey.Name = "txtOpenloadApiKey";
this.txtOpenloadApiKey.TextChanged += new System.EventHandler(this.txtOpenloadApiKey_TextChanged);
//
// lblOpenloadApiKey
//
resources.ApplyResources(this.lblOpenloadApiKey, "lblOpenloadApiKey");
this.lblOpenloadApiKey.Name = "lblOpenloadApiKey";
//
// txtOpenloadApiLogin
//
resources.ApplyResources(this.txtOpenloadApiLogin, "txtOpenloadApiLogin");
this.txtOpenloadApiLogin.Name = "txtOpenloadApiLogin";
this.txtOpenloadApiLogin.TextChanged += new System.EventHandler(this.txtOpenloadApiLogin_TextChanged);
//
// lblOpenloadApiLogin
//
resources.ApplyResources(this.lblOpenloadApiLogin, "lblOpenloadApiLogin");
this.lblOpenloadApiLogin.Name = "lblOpenloadApiLogin";
//
// btnCopyShowFiles
//
resources.ApplyResources(this.btnCopyShowFiles, "btnCopyShowFiles");
@ -4356,6 +4449,11 @@ private void InitializeComponent()
this.tpSharedFolder.PerformLayout();
this.tpSul.ResumeLayout(false);
this.tpSul.PerformLayout();
this.tpOpenload.ResumeLayout(false);
this.gbOpenloadFolders.ResumeLayout(false);
this.gbOpenloadFolders.PerformLayout();
this.gbOpenloadAuthentication.ResumeLayout(false);
this.gbOpenloadAuthentication.PerformLayout();
this.tpTextUploaders.ResumeLayout(false);
this.tcTextUploaders.ResumeLayout(false);
this.tpPastebin.ResumeLayout(false);
@ -4901,5 +4999,16 @@ private void InitializeComponent()
private System.Windows.Forms.Button btnCheveretoTestAll;
private System.Windows.Forms.CheckBox cbPastebinRaw;
private System.Windows.Forms.CheckBox cbGistUseRawURL;
private System.Windows.Forms.TabPage tpOpenload;
private System.Windows.Forms.GroupBox gbOpenloadAuthentication;
private System.Windows.Forms.Label lblOpenloadApiLogin;
private System.Windows.Forms.LinkLabel lblOpenloadApiLink;
private System.Windows.Forms.TextBox txtOpenloadApiKey;
private System.Windows.Forms.Label lblOpenloadApiKey;
private System.Windows.Forms.TextBox txtOpenloadApiLogin;
private System.Windows.Forms.GroupBox gbOpenloadFolders;
private System.Windows.Forms.TreeView trvOpenloadFolders;
private System.Windows.Forms.Button btnOpenloadRefreshFolders;
private System.Windows.Forms.CheckBox cbOpenloadUploadToFolder;
}
}

View file

@ -100,6 +100,7 @@ private void FormSettings()
AddIconToTab(tpMinus, Resources.Minus);
AddIconToTab(tpOneDrive, Resources.OneDrive);
AddIconToTab(tpOneTimeSecret, Resources.OneTimeSecret);
AddIconToTab(tpOpenload, Resources.OpenLoad);
AddIconToTab(tpOwnCloud, Resources.OwnCloud);
AddIconToTab(tpPaste_ee, Resources.page_white_text);
AddIconToTab(tpPastebin, Resources.Pastebin);
@ -576,6 +577,13 @@ public void LoadSettings()
txtStreamablePassword.Enabled = false;
}
// openload.co
txtOpenloadApiLogin.Text = Config.OpenloadAPILogin;
txtOpenloadApiKey.Text = Config.OpenloadAPIKey;
cbOpenloadUploadToFolder.Checked = Config.OpenloadUploadToSelectedFolder;
OpenloadUpdateFolderTree();
#endregion File uploaders
#region URL shorteners
@ -2450,6 +2458,98 @@ private void txtStreamablePassword_TextChanged(object sender, EventArgs e)
#endregion Streamable
#region openload.co
private void txtOpenloadApiLogin_TextChanged(object sender, EventArgs e)
{
Config.OpenloadAPILogin = txtOpenloadApiLogin.Text;
}
private void txtOpenloadApiKey_TextChanged(object sender, EventArgs e)
{
Config.OpenloadAPIKey = txtOpenloadApiKey.Text;
}
private void lblOpenloadApiLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
URLHelpers.OpenURL("https://openload.co/account");
}
private void btnOpenloadRefreshFolders_Click(object sender, EventArgs e)
{
btnOpenloadRefreshFolders.Enabled = false;
OpenloadUploader openload = new OpenloadUploader()
{
APILogin = Config.OpenloadAPILogin,
APIKey = Config.OpenloadAPIKey
};
Config.OpenloadFolderTree = openload.GetFolderTree(string.Empty);
OpenloadUpdateFolderTree();
btnOpenloadRefreshFolders.Enabled = true;
}
private void cbOpenloadUploadToFolder_CheckedChanged(object sender, EventArgs e)
{
Config.OpenloadUploadToSelectedFolder = cbOpenloadUploadToFolder.Checked;
}
private void trvOpenloadFolders_AfterSelect(object sender, TreeViewEventArgs e)
{
Config.OpenloadSelectedFolderID = ((OpenloadFolder)e.Node.Tag).id;
}
private void OpenloadUpdateFolderTree()
{
trvOpenloadFolders.Nodes.Clear();
if (Config.OpenloadFolderTree != null)
{
foreach (OpenloadFolderNode node in Config.OpenloadFolderTree.subNodes)
{
TreeNode treeNode = OpenloadToTreeNode(node);
if (treeNode != null)
{
trvOpenloadFolders.Nodes.Add(treeNode);
if (string.Compare(node.folder.id, Config.OpenloadSelectedFolderID) == 0)
trvOpenloadFolders.SelectedNode = treeNode;
}
}
}
}
private TreeNode OpenloadToTreeNode(OpenloadFolderNode node)
{
if (node != null && node.folder != null)
{
TreeNode treeNode = new TreeNode(node.folder.name);
treeNode.Tag = node.folder;
foreach (OpenloadFolderNode subNode in node.subNodes)
{
TreeNode subTreeNode = OpenloadToTreeNode(subNode);
if (subTreeNode != null)
{
treeNode.Nodes.Add(subTreeNode);
if (string.Compare(subNode.folder.id, Config.OpenloadSelectedFolderID) == 0)
{
trvOpenloadFolders.SelectedNode = subTreeNode;
TreeNode parentNode = treeNode;
while (parentNode != null)
{
parentNode.Expand();
parentNode = parentNode.Parent;
}
}
}
}
return treeNode;
}
return null;
}
#endregion openload.co
#endregion File Uploaders
#region URL Shorteners

View file

@ -12409,6 +12409,291 @@ Using an encrypted library disables sharing.</value>
<data name="&gt;&gt;cbStreamableAnonymous.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="trvOpenloadFolders.Location" type="System.Drawing.Point, System.Drawing">
<value>18, 58</value>
</data>
<data name="trvOpenloadFolders.Size" type="System.Drawing.Size, System.Drawing">
<value>330, 209</value>
</data>
<data name="trvOpenloadFolders.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;trvOpenloadFolders.Name" xml:space="preserve">
<value>trvOpenloadFolders</value>
</data>
<data name="&gt;&gt;trvOpenloadFolders.Type" xml:space="preserve">
<value>System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;trvOpenloadFolders.Parent" xml:space="preserve">
<value>gbOpenloadFolders</value>
</data>
<data name="&gt;&gt;trvOpenloadFolders.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="btnOpenloadRefreshFolders.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="btnOpenloadRefreshFolders.Location" type="System.Drawing.Point, System.Drawing">
<value>265, 23</value>
</data>
<data name="btnOpenloadRefreshFolders.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 23</value>
</data>
<data name="btnOpenloadRefreshFolders.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="btnOpenloadRefreshFolders.Text" xml:space="preserve">
<value>Refresh</value>
</data>
<data name="&gt;&gt;btnOpenloadRefreshFolders.Name" xml:space="preserve">
<value>btnOpenloadRefreshFolders</value>
</data>
<data name="&gt;&gt;btnOpenloadRefreshFolders.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnOpenloadRefreshFolders.Parent" xml:space="preserve">
<value>gbOpenloadFolders</value>
</data>
<data name="&gt;&gt;btnOpenloadRefreshFolders.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="cbOpenloadUploadToFolder.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="cbOpenloadUploadToFolder.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="cbOpenloadUploadToFolder.Location" type="System.Drawing.Point, System.Drawing">
<value>18, 27</value>
</data>
<data name="cbOpenloadUploadToFolder.Size" type="System.Drawing.Size, System.Drawing">
<value>180, 17</value>
</data>
<data name="cbOpenloadUploadToFolder.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="cbOpenloadUploadToFolder.Text" xml:space="preserve">
<value>Upload images to selected folder</value>
</data>
<data name="&gt;&gt;cbOpenloadUploadToFolder.Name" xml:space="preserve">
<value>cbOpenloadUploadToFolder</value>
</data>
<data name="&gt;&gt;cbOpenloadUploadToFolder.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbOpenloadUploadToFolder.Parent" xml:space="preserve">
<value>gbOpenloadFolders</value>
</data>
<data name="&gt;&gt;cbOpenloadUploadToFolder.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="gbOpenloadFolders.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 190</value>
</data>
<data name="gbOpenloadFolders.Size" type="System.Drawing.Size, System.Drawing">
<value>369, 285</value>
</data>
<data name="gbOpenloadFolders.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="gbOpenloadFolders.Text" xml:space="preserve">
<value>Folders</value>
</data>
<data name="&gt;&gt;gbOpenloadFolders.Name" xml:space="preserve">
<value>gbOpenloadFolders</value>
</data>
<data name="&gt;&gt;gbOpenloadFolders.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;gbOpenloadFolders.Parent" xml:space="preserve">
<value>tpOpenload</value>
</data>
<data name="&gt;&gt;gbOpenloadFolders.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="lblOpenloadApiLink.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblOpenloadApiLink.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="lblOpenloadApiLink.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 124</value>
</data>
<data name="lblOpenloadApiLink.Size" type="System.Drawing.Size, System.Drawing">
<value>315, 13</value>
</data>
<data name="lblOpenloadApiLink.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="lblOpenloadApiLink.Text" xml:space="preserve">
<value>You can get your API keys from your openload.co account panel.</value>
</data>
<data name="&gt;&gt;lblOpenloadApiLink.Name" xml:space="preserve">
<value>lblOpenloadApiLink</value>
</data>
<data name="&gt;&gt;lblOpenloadApiLink.Type" xml:space="preserve">
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblOpenloadApiLink.Parent" xml:space="preserve">
<value>gbOpenloadAuthentication</value>
</data>
<data name="&gt;&gt;lblOpenloadApiLink.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="txtOpenloadApiKey.Location" type="System.Drawing.Point, System.Drawing">
<value>19, 92</value>
</data>
<data name="txtOpenloadApiKey.Size" type="System.Drawing.Size, System.Drawing">
<value>329, 20</value>
</data>
<data name="txtOpenloadApiKey.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="&gt;&gt;txtOpenloadApiKey.Name" xml:space="preserve">
<value>txtOpenloadApiKey</value>
</data>
<data name="&gt;&gt;txtOpenloadApiKey.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtOpenloadApiKey.Parent" xml:space="preserve">
<value>gbOpenloadAuthentication</value>
</data>
<data name="&gt;&gt;txtOpenloadApiKey.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="lblOpenloadApiKey.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblOpenloadApiKey.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="lblOpenloadApiKey.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 76</value>
</data>
<data name="lblOpenloadApiKey.Size" type="System.Drawing.Size, System.Drawing">
<value>48, 13</value>
</data>
<data name="lblOpenloadApiKey.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="lblOpenloadApiKey.Text" xml:space="preserve">
<value>API Key:</value>
</data>
<data name="&gt;&gt;lblOpenloadApiKey.Name" xml:space="preserve">
<value>lblOpenloadApiKey</value>
</data>
<data name="&gt;&gt;lblOpenloadApiKey.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblOpenloadApiKey.Parent" xml:space="preserve">
<value>gbOpenloadAuthentication</value>
</data>
<data name="&gt;&gt;lblOpenloadApiKey.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="txtOpenloadApiLogin.Location" type="System.Drawing.Point, System.Drawing">
<value>19, 40</value>
</data>
<data name="txtOpenloadApiLogin.Size" type="System.Drawing.Size, System.Drawing">
<value>329, 20</value>
</data>
<data name="txtOpenloadApiLogin.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;txtOpenloadApiLogin.Name" xml:space="preserve">
<value>txtOpenloadApiLogin</value>
</data>
<data name="&gt;&gt;txtOpenloadApiLogin.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtOpenloadApiLogin.Parent" xml:space="preserve">
<value>gbOpenloadAuthentication</value>
</data>
<data name="&gt;&gt;txtOpenloadApiLogin.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="lblOpenloadApiLogin.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblOpenloadApiLogin.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="lblOpenloadApiLogin.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 24</value>
</data>
<data name="lblOpenloadApiLogin.Size" type="System.Drawing.Size, System.Drawing">
<value>56, 13</value>
</data>
<data name="lblOpenloadApiLogin.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="lblOpenloadApiLogin.Text" xml:space="preserve">
<value>API Login:</value>
</data>
<data name="&gt;&gt;lblOpenloadApiLogin.Name" xml:space="preserve">
<value>lblOpenloadApiLogin</value>
</data>
<data name="&gt;&gt;lblOpenloadApiLogin.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblOpenloadApiLogin.Parent" xml:space="preserve">
<value>gbOpenloadAuthentication</value>
</data>
<data name="&gt;&gt;lblOpenloadApiLogin.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="gbOpenloadAuthentication.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 16</value>
</data>
<data name="gbOpenloadAuthentication.Size" type="System.Drawing.Size, System.Drawing">
<value>369, 157</value>
</data>
<data name="gbOpenloadAuthentication.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="gbOpenloadAuthentication.Text" xml:space="preserve">
<value>Authentication</value>
</data>
<data name="&gt;&gt;gbOpenloadAuthentication.Name" xml:space="preserve">
<value>gbOpenloadAuthentication</value>
</data>
<data name="&gt;&gt;gbOpenloadAuthentication.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;gbOpenloadAuthentication.Parent" xml:space="preserve">
<value>tpOpenload</value>
</data>
<data name="&gt;&gt;gbOpenloadAuthentication.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tpOpenload.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
</data>
<data name="tpOpenload.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpOpenload.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
</data>
<data name="tpOpenload.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="tpOpenload.Text" xml:space="preserve">
<value>openload.co</value>
</data>
<data name="&gt;&gt;tpOpenload.Name" xml:space="preserve">
<value>tpOpenload</value>
</data>
<data name="&gt;&gt;tpOpenload.Type" xml:space="preserve">
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tpOpenload.Parent" xml:space="preserve">
<value>tcFileUploaders</value>
</data>
<data name="&gt;&gt;tpOpenload.ZOrder" xml:space="preserve">
<value>24</value>
</data>
<data name="&gt;&gt;cbEmailConfirm.Name" xml:space="preserve">
<value>cbEmailConfirm</value>
</data>

View file

@ -516,6 +516,16 @@ internal class Resources {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
internal static System.Drawing.Icon OpenLoad {
get {
object obj = ResourceManager.GetObject("OpenLoad", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>

View file

@ -494,4 +494,7 @@ Created folders:</value>
<data name="SomeImage" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\favicons\someimage.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="OpenLoad" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\favicons\openload.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View file

@ -123,6 +123,7 @@
<Compile Include="FileUploaders\AmazonS3Region.cs" />
<Compile Include="FileUploaders\AmazonS3Settings.cs" />
<Compile Include="FileUploaders\Box.cs" />
<Compile Include="FileUploaders\OpenloadUploader.cs" />
<Compile Include="FileUploaders\Sul.cs" />
<Compile Include="FileUploaders\Dropfile.cs" />
<Compile Include="FileUploaders\Lambda.cs" />
@ -885,6 +886,7 @@
<None Include="Resources\question-button.png" />
</ItemGroup>
<ItemGroup>
<Content Include="Favicons\Openload.ico" />
<Content Include="Favicons\SomeImage.ico" />
<Content Include="Favicons\Streamable.ico" />
<Content Include="Favicons\Sul.png" />
@ -909,4 +911,4 @@ if not exist APIKeysLocal.cs (
<Target Name="AfterBuild">
</Target>
-->
</Project>
</Project>

View file

@ -288,6 +288,14 @@ public class UploadersConfig : SettingsBase<UploadersConfig>
public string StreamablePassword = "";
public bool StreamableAnonymous = true;
// openload.co
public string OpenloadAPILogin = string.Empty;
public string OpenloadAPIKey = string.Empty;
public OpenloadFolderNode OpenloadFolderTree = null;
public bool OpenloadUploadToSelectedFolder = false;
public string OpenloadSelectedFolderID = string.Empty;
#endregion File uploaders
#region URL shorteners

View file

@ -1192,6 +1192,15 @@ public UploadResult UploadFile(Stream stream, string fileName)
fileUploader = new Streamable(user, password);
break;
case FileDestination.Openload:
fileUploader = new OpenloadUploader()
{
APILogin = Program.UploadersConfig.OpenloadAPILogin,
APIKey = Program.UploadersConfig.OpenloadAPIKey,
UploadToFolder = Program.UploadersConfig.OpenloadUploadToSelectedFolder,
FolderID = Program.UploadersConfig.OpenloadSelectedFolderID
};
break;
}
if (fileUploader != null)