ShareX/ShareX.UploadersLib/UploadersConfig.cs
osfancy f9f2e6b2a8 Updating Uplea Configuration (#1906)
* 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.

* Updating Uplea config to not store the username/password entered on the Uplea configuration tab. Removed associated event handlers. Renamed Login button to Get API Key to be more representative of the action. Made the API key textbox editable so users can blank out the key if they wish to turn off Uplea integration.
2016-09-14 09:04:02 +03:00

351 lines
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 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
}
}