mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
64cc6f39ec
* Initial check-in to address feature enhancement request #1466. * Checking in missing constructor parameter so fork is stable. * Wrapping up Uplea integration support for #1466. * Reverted Uploader.cs to earlier version as those changes weren't actually needed. * Removed use of DataContractJsonSerializer, using JSON .NET instead. Updated the Uplea class to not store the configuration object internally, but to only pull out the API key when the config is passed through its constructor. * Incorporating recent round of refactoring changes suggested by Jaex. * Addressing issue with user workflow on the Uplea destination configuration tab. * Attempt to reconcile UploadersConfigForm.resx. * Fixing the name for an unnamed label. Updating resx formatting for base64 encoded pbDropboxLogo.Image value; since the diff on GitHub was showing a material change although VS diff ignores the formatting difference. Removed unneeded string.Format from Upload() in Uplea along with the set for IsURLExpected (since it is already true by default). * Removed extra whitespace next to the end of the value tag since GitHub diff was still showing a difference. * Removing references to label4 from resx which weren't removed by VS automatically when the control was renamed. The new entries for the renamed control lblUpleaEmailAddress already exist in the file.
353 lines
No EOL
11 KiB
C#
353 lines
No EOL
11 KiB
C#
#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 CG.Web.MegaApiClient;
|
|
using ShareX.HelpersLib;
|
|
using ShareX.UploadersLib.FileUploaders;
|
|
using ShareX.UploadersLib.ImageUploaders;
|
|
using ShareX.UploadersLib.TextUploaders;
|
|
using System.Collections.Generic;
|
|
|
|
namespace ShareX.UploadersLib
|
|
{
|
|
public class UploadersConfig : SettingsBase<UploadersConfig>
|
|
{
|
|
#region Image uploaders
|
|
|
|
// Imgur
|
|
|
|
public AccountType ImgurAccountType = AccountType.Anonymous;
|
|
public bool ImgurDirectLink = true;
|
|
public ImgurThumbnailType ImgurThumbnailType = ImgurThumbnailType.Large_Thumbnail;
|
|
public bool ImgurUseGIFV = true;
|
|
public OAuth2Info ImgurOAuth2Info = null;
|
|
public bool ImgurUploadSelectedAlbum = false;
|
|
public ImgurAlbumData ImgurSelectedAlbum = null;
|
|
public List<ImgurAlbumData> ImgurAlbumList = null;
|
|
|
|
// ImageShack
|
|
|
|
public ImageShackOptions ImageShackSettings = new ImageShackOptions();
|
|
|
|
// TinyPic
|
|
|
|
public AccountType TinyPicAccountType = AccountType.Anonymous;
|
|
public string TinyPicRegistrationCode = "";
|
|
public string TinyPicUsername = "";
|
|
public string TinyPicPassword = "";
|
|
public bool TinyPicRememberUserPass = false;
|
|
|
|
// Flickr
|
|
|
|
public FlickrAuthInfo FlickrAuthInfo = new FlickrAuthInfo();
|
|
public FlickrSettings FlickrSettings = new FlickrSettings();
|
|
|
|
// Photobucket
|
|
|
|
public OAuthInfo PhotobucketOAuthInfo = null;
|
|
public PhotobucketAccountInfo PhotobucketAccountInfo = null;
|
|
|
|
// Picasa
|
|
|
|
public OAuth2Info PicasaOAuth2Info = null;
|
|
public string PicasaAlbumID = "";
|
|
|
|
// Chevereto
|
|
|
|
public CheveretoUploader CheveretoUploader = new CheveretoUploader("http://ultraimg.com/api/1/upload", "3374fa58c672fcaad8dab979f7687397");
|
|
public bool CheveretoDirectURL = true;
|
|
|
|
// SomeImage
|
|
|
|
public string SomeImageAPIKey = "";
|
|
public bool SomeImageDirectURL = true;
|
|
|
|
// vgy.me
|
|
|
|
public string VgymeUserKey = "";
|
|
|
|
#endregion Image uploaders
|
|
|
|
#region Text uploaders
|
|
|
|
// Pastebin
|
|
|
|
public PastebinSettings PastebinSettings = new PastebinSettings();
|
|
|
|
// Paste.ee
|
|
|
|
public string Paste_eeUserAPIKey = "public";
|
|
|
|
// Gist
|
|
|
|
public bool GistAnonymousLogin = true;
|
|
public OAuth2Info GistOAuth2Info = null;
|
|
public bool GistPublishPublic = false;
|
|
public bool GistRawURL = false;
|
|
|
|
// uPaste
|
|
|
|
public string UpasteUserKey = "";
|
|
public bool UpasteIsPublic = false;
|
|
|
|
// Hastebin
|
|
|
|
public string HastebinCustomDomain = "http://hastebin.com";
|
|
public string HastebinSyntaxHighlighting = "hs";
|
|
public bool HastebinUseFileExtension = true;
|
|
|
|
// OneTimeSecret
|
|
|
|
public string OneTimeSecretAPIKey = "";
|
|
public string OneTimeSecretAPIUsername = "";
|
|
|
|
#endregion Text uploaders
|
|
|
|
#region File uploaders
|
|
|
|
// Dropbox
|
|
|
|
public OAuth2Info DropboxOAuth2Info = null;
|
|
//public DropboxAccount DropboxAccount = null;
|
|
public string DropboxUploadPath = "Public/ShareX/%y/%mo";
|
|
public bool DropboxAutoCreateShareableLink = false;
|
|
public DropboxURLType DropboxURLType = DropboxURLType.Default;
|
|
public DropboxAccountInfo DropboxAccountInfo = null; // API v1
|
|
|
|
// FTP Server
|
|
|
|
public List<FTPAccount> FTPAccountList = new List<FTPAccount>();
|
|
public int FTPSelectedImage = 0;
|
|
public int FTPSelectedText = 0;
|
|
public int FTPSelectedFile = 0;
|
|
|
|
// OneDrive
|
|
|
|
public OAuth2Info OneDriveOAuth2Info = null;
|
|
public OneDriveFileInfo OneDriveSelectedFolder = OneDrive.RootFolder;
|
|
public bool OneDriveAutoCreateShareableLink = true;
|
|
|
|
// Google Drive
|
|
|
|
public OAuth2Info GoogleDriveOAuth2Info = null;
|
|
public bool GoogleDriveIsPublic = true;
|
|
public bool GoogleDriveDirectLink = false;
|
|
public bool GoogleDriveUseFolder = false;
|
|
public string GoogleDriveFolderID = "";
|
|
|
|
// puush
|
|
|
|
public string PuushAPIKey = "";
|
|
|
|
// SendSpace
|
|
|
|
public AccountType SendSpaceAccountType = AccountType.Anonymous;
|
|
public string SendSpaceUsername = "";
|
|
public string SendSpacePassword = "";
|
|
|
|
// Minus
|
|
|
|
public OAuth2Info MinusOAuth2Info = null;
|
|
public MinusOptions MinusConfig = new MinusOptions();
|
|
|
|
// Box
|
|
|
|
public OAuth2Info BoxOAuth2Info = null;
|
|
public BoxFileEntry BoxSelectedFolder = Box.RootFolder;
|
|
public bool BoxShare = true;
|
|
|
|
// Ge.tt
|
|
|
|
public Ge_ttLogin Ge_ttLogin = null;
|
|
|
|
// Localhostr
|
|
|
|
public string LocalhostrEmail = "";
|
|
public string LocalhostrPassword = "";
|
|
public bool LocalhostrDirectURL = true;
|
|
|
|
// Shared Folder
|
|
|
|
public List<LocalhostAccount> LocalhostAccountList = new List<LocalhostAccount>();
|
|
public int LocalhostSelectedImages = 0;
|
|
public int LocalhostSelectedText = 0;
|
|
public int LocalhostSelectedFiles = 0;
|
|
|
|
// Email
|
|
|
|
public string EmailSmtpServer = "smtp.gmail.com";
|
|
public int EmailSmtpPort = 587;
|
|
public string EmailFrom = "...@gmail.com";
|
|
public string EmailPassword = "";
|
|
public bool EmailRememberLastTo = true;
|
|
public string EmailLastTo = "";
|
|
public string EmailDefaultSubject = "Sending email from ShareX";
|
|
public string EmailDefaultBody = "Screenshot is attached.";
|
|
public bool EmailAutomaticSend = false;
|
|
public string EmailAutomaticSendTo = "";
|
|
|
|
// Jira
|
|
|
|
public string JiraHost = "http://";
|
|
public string JiraIssuePrefix = "PROJECT-";
|
|
public OAuthInfo JiraOAuthInfo = null;
|
|
|
|
// Mega
|
|
|
|
public MegaApiClient.AuthInfos MegaAuthInfos = null;
|
|
public string MegaParentNodeId = null;
|
|
|
|
// Amazon S3
|
|
|
|
public AmazonS3Settings AmazonS3Settings = new AmazonS3Settings()
|
|
{
|
|
ObjectPrefix = "ShareX/%y/%mo",
|
|
UseReducedRedundancyStorage = true
|
|
};
|
|
|
|
// ownCloud
|
|
|
|
public string OwnCloudHost = "";
|
|
public string OwnCloudUsername = "";
|
|
public string OwnCloudPassword = "";
|
|
public string OwnCloudPath = "/";
|
|
public bool OwnCloudCreateShare = true;
|
|
public bool OwnCloudDirectLink = false;
|
|
public bool OwnCloud81Compatibility = false;
|
|
|
|
// MediaFire
|
|
|
|
public string MediaFireUsername = "";
|
|
public string MediaFirePassword = "";
|
|
public string MediaFirePath = "";
|
|
public bool MediaFireUseLongLink = false;
|
|
|
|
// Pushbullet
|
|
|
|
public PushbulletSettings PushbulletSettings = new PushbulletSettings();
|
|
|
|
// Lambda
|
|
|
|
public LambdaSettings LambdaSettings = new LambdaSettings();
|
|
|
|
// Lithiio
|
|
|
|
public LithiioSettings LithiioSettings = new LithiioSettings();
|
|
|
|
// Pomf
|
|
|
|
public PomfUploader PomfUploader = new PomfUploader("https://mixtape.moe/upload.php");
|
|
|
|
// s-ul
|
|
|
|
public string SulAPIKey = "";
|
|
|
|
// Seafile
|
|
|
|
public string SeafileAPIURL = "";
|
|
public string SeafileAuthToken = "";
|
|
public string SeafileRepoID = "";
|
|
public string SeafilePath = "/";
|
|
public bool SeafileIsLibraryEncrypted = false;
|
|
public string SeafileEncryptedLibraryPassword = "";
|
|
public bool SeafileCreateShareableURL = true;
|
|
public bool SeafileIgnoreInvalidCert = false;
|
|
public int SeafileShareDaysToExpire = 0;
|
|
public string SeafileSharePassword = "";
|
|
public string SeafileAccInfoEmail = "";
|
|
public string SeafileAccInfoUsage = "";
|
|
|
|
// Streamable
|
|
|
|
public bool StreamableAnonymous = true;
|
|
public string StreamableUsername = "";
|
|
public string StreamablePassword = "";
|
|
public bool StreamableUseDirectURL = false;
|
|
|
|
// Uplea
|
|
|
|
public string UpleaApiKey = string.Empty;
|
|
public string UpleaUsername = string.Empty;
|
|
public string UpleaPassword = string.Empty;
|
|
public string UpleaEmailAddress = string.Empty;
|
|
public bool UpleaIsPremiumMember = false;
|
|
public bool UpleaInstantDownloadEnabled = false;
|
|
|
|
#endregion File uploaders
|
|
|
|
#region URL shorteners
|
|
|
|
// bit.ly
|
|
|
|
public OAuth2Info BitlyOAuth2Info = null;
|
|
public string BitlyDomain = "";
|
|
|
|
// Google URL Shortener
|
|
|
|
public AccountType GoogleURLShortenerAccountType = AccountType.Anonymous;
|
|
public OAuth2Info GoogleURLShortenerOAuth2Info = null;
|
|
|
|
// yourls.org
|
|
|
|
public string YourlsAPIURL = "http://yoursite.com/yourls-api.php";
|
|
public string YourlsSignature = "";
|
|
public string YourlsUsername = "";
|
|
public string YourlsPassword = "";
|
|
|
|
// adf.ly
|
|
public string AdFlyAPIKEY = "";
|
|
public string AdFlyAPIUID = "";
|
|
|
|
// coinurl.com
|
|
public string CoinURLUUID = "";
|
|
|
|
// polr
|
|
public string PolrAPIHostname = "";
|
|
public string PolrAPIKey = "";
|
|
|
|
#endregion URL shorteners
|
|
|
|
#region URL sharing services
|
|
|
|
// Twitter
|
|
|
|
public List<OAuthInfo> TwitterOAuthInfoList = new List<OAuthInfo>();
|
|
public int TwitterSelectedAccount = 0;
|
|
public bool TwitterSkipMessageBox = false;
|
|
public string TwitterDefaultMessage = "";
|
|
|
|
#endregion URL sharing services
|
|
|
|
#region Custom Uploaders
|
|
|
|
public List<CustomUploaderItem> CustomUploadersList = new List<CustomUploaderItem>();
|
|
public int CustomImageUploaderSelected = 0;
|
|
public int CustomTextUploaderSelected = 0;
|
|
public int CustomFileUploaderSelected = 0;
|
|
public int CustomURLShortenerSelected = 0;
|
|
|
|
#endregion Custom Uploaders
|
|
}
|
|
} |