/// <summary> /// Create an album and return the ID for the album. /// </summary> /// <param name="aep">The album entry xml to post</param> /// <param name="access_token">The user accss token</param> /// <returns></returns> public string CreateAlbum(Picasa.AlbumEntryPost aep, string access_token) { GoogleTCPRequestor tcpr = new GoogleTCPRequestor(Requestor.Operation.POST , Requestor.HTTPFormat.FORMAT_1_1 , Requestor.ContentType.ATOM_XML , GoogleUtilityConstants.GOOGLE_PICASA_HOST , GoogleUtilityConstants.PICASA_FEED_BASE_URI_NO_HTTPS , aep.toXmlPostString() , access_token , true); string response = tcpr.SubmitRequest(true, Requestor.ResponseTerminatorAction.READ_TO_END); string match1 = "<gphoto:id>"; string match2 = "</gphoto:id>"; string albumID = response.Substring(response.IndexOf(match1), response.IndexOf(match2) - response.IndexOf(match1)); albumID = albumID.Replace(match1, ""); albumID = albumID.Replace("<", ""); albumID = albumID.Replace("/", ""); return albumID; }
/// <summary> /// Add a comment to a photo /// </summary> /// <param name="photoID"></param> /// <param name="albumID"></param> /// <param name="access_token"></param> /// <param name="cep"></param> /// <returns></returns> public bool AddCommentToPhoto(string photoID, string albumID, string access_token, Picasa.CommentEntryPost cep) { //POST https://picasaweb.google.com/data/feed/api/user/default/albumid/albumID/photoid/photoID string insertURI = string.Format("{0}{1}{2}" , GoogleUtilityConstants.PICASA_FEED_BASE_URI_NO_HTTPS , GetAlbumURI(albumID) , GetPhotoURI(photoID)); GoogleTCPRequestor tcpr = new GoogleTCPRequestor(Requestor.Operation.POST , Requestor.HTTPFormat.FORMAT_1_1 , Requestor.ContentType.ATOM_XML , GoogleUtilityConstants.GOOGLE_PICASA_HOST , insertURI , cep.toXmlPostString() , access_token , true); //submit the request: return tcpr.SubmitRequest(true, false, Requestor.ResponseTerminatorAction.CONTAINS_HTTP_1_1_201_CREATED); }
public UploadResult UploadImage(Stream stream, string fileName) { ImageUploader imageUploader = null; switch (Info.TaskSettings.ImageDestination) { case ImageDestination.ImageShack: Program.UploadersConfig.ImageShackSettings.ThumbnailWidth = Info.TaskSettings.AdvancedSettings.ThumbnailPreferredWidth; Program.UploadersConfig.ImageShackSettings.ThumbnailHeight = Info.TaskSettings.AdvancedSettings.ThumbnailPreferredHeight; imageUploader = new ImageShackUploader(APIKeys.ImageShackKey, Program.UploadersConfig.ImageShackSettings); break; case ImageDestination.TinyPic: imageUploader = new TinyPicUploader(APIKeys.TinyPicID, APIKeys.TinyPicKey, Program.UploadersConfig.TinyPicAccountType, Program.UploadersConfig.TinyPicRegistrationCode); break; case ImageDestination.Imgur: if (Program.UploadersConfig.ImgurOAuth2Info == null) { Program.UploadersConfig.ImgurOAuth2Info = new OAuth2Info(APIKeys.ImgurClientID, APIKeys.ImgurClientSecret); } imageUploader = new Imgur_v3(Program.UploadersConfig.ImgurOAuth2Info) { UploadMethod = Program.UploadersConfig.ImgurAccountType, ThumbnailType = Program.UploadersConfig.ImgurThumbnailType, UploadAlbumID = Program.UploadersConfig.ImgurAlbumID }; break; case ImageDestination.Flickr: imageUploader = new FlickrUploader(APIKeys.FlickrKey, APIKeys.FlickrSecret, Program.UploadersConfig.FlickrAuthInfo, Program.UploadersConfig.FlickrSettings); break; case ImageDestination.Photobucket: imageUploader = new Photobucket(Program.UploadersConfig.PhotobucketOAuthInfo, Program.UploadersConfig.PhotobucketAccountInfo); break; case ImageDestination.Picasa: imageUploader = new Picasa(Program.UploadersConfig.PicasaOAuth2Info) { AlbumID = Program.UploadersConfig.PicasaAlbumID }; break; case ImageDestination.Twitpic: int indexTwitpic = Program.UploadersConfig.TwitterSelectedAccount; if (Program.UploadersConfig.TwitterOAuthInfoList != null && Program.UploadersConfig.TwitterOAuthInfoList.IsValidIndex(indexTwitpic)) { imageUploader = new TwitPicUploader(APIKeys.TwitPicKey, Program.UploadersConfig.TwitterOAuthInfoList[indexTwitpic]) { TwitPicThumbnailMode = Program.UploadersConfig.TwitPicThumbnailMode, ShowFull = Program.UploadersConfig.TwitPicShowFull }; } break; case ImageDestination.Twitsnaps: int indexTwitsnaps = Program.UploadersConfig.TwitterSelectedAccount; if (Program.UploadersConfig.TwitterOAuthInfoList.IsValidIndex(indexTwitsnaps)) { imageUploader = new TwitSnapsUploader(APIKeys.TwitsnapsKey, Program.UploadersConfig.TwitterOAuthInfoList[indexTwitsnaps]); } break; case ImageDestination.yFrog: YfrogOptions yFrogOptions = new YfrogOptions(APIKeys.ImageShackKey); yFrogOptions.Username = Program.UploadersConfig.YFrogUsername; yFrogOptions.Password = Program.UploadersConfig.YFrogPassword; yFrogOptions.Source = Application.ProductName; imageUploader = new YfrogUploader(yFrogOptions); break; case ImageDestination.MediaCrush: imageUploader = new MediaCrushUploader(); break; case ImageDestination.CustomImageUploader: if (Program.UploadersConfig.CustomUploadersList.IsValidIndex(Program.UploadersConfig.CustomImageUploaderSelected)) { imageUploader = new CustomImageUploader(Program.UploadersConfig.CustomUploadersList[Program.UploadersConfig.CustomImageUploaderSelected]); } break; } if (imageUploader != null) { PrepareUploader(imageUploader); return(imageUploader.Upload(stream, fileName)); } return(null); }
public Picasa.Photo PostPhotoWithTitleSummaryAndTags(Picasa.PhotoEntryPost p, string tags, string albumID, string access_token) { //post the photo string feedURL = PostPhoto(p, albumID, access_token); //get the new photo id string photoID = GetPhotoIDFromFeedURL(feedURL); //update the metadata through other methods bool success = UpdatePhotoTitleAndOrSummary(albumID, photoID, p.title, p.summary, access_token); if (!success) throw new Exception("Error updating title and summary!"); if (tags.Length > 0 && !tags.Contains(",")) { tags += ","; } success = UpdatePhotoTags(albumID, photoID, tags, access_token); if (!success) throw new Exception("Error updating tags!"); //get the photo SyndicationItem photoEntry = GetPhotoEntryByAlbumIDByPhotoID(albumID, photoID, access_token); return GetUtilityPicasaPhotoFromPhotoEntry(photoEntry); }
/// <summary> /// Post a photo /// </summary> /// <param name="p">The Photo Entry information to post</param> /// <param name="albumID">The album to post to</param> /// <param name="access_token">The user access token</param> /// <returns></returns> public string PostPhoto(Picasa.PhotoEntryPost p, string albumID, string access_token) { FileInfo fi = new FileInfo(p.fileName); Requestor.ContentType contentType = Requestor.ContentType.IMAGE_JPG; switch (fi.Extension) { case ".jpg": contentType = Requestor.ContentType.IMAGE_JPG; break; case ".bmp": contentType = Requestor.ContentType.IMAGE_BMP; break; case ".png": contentType = Requestor.ContentType.IMAGE_PNG; break; case ".gif": contentType = Requestor.ContentType.IMAGE_GIF; break; } GoogleTCPRequestor tcpr = new GoogleTCPRequestor(Requestor.Operation.POST , Requestor.HTTPFormat.FORMAT_1_1 , contentType , GoogleUtilityConstants.GOOGLE_PICASA_HOST , string.Format("{0}{1}" , GoogleUtilityConstants.PICASA_FEED_BASE_URI_NO_HTTPS , string.Format(GoogleUtilityConstants.PICASA_ALBUMID_URI, albumID)) , p.toXmlPostString() , access_token , true); string response = tcpr.SubmitAltRequest(true, Requestor.ResponseTerminatorAction.ENTRY_TERMINATOR, p.payload, contentType); SyndicationItem si = getItemFromResponse(response); string retString = ""; if (si != null) { foreach (var link in si.Links) { Picasa.Link l = new Picasa.Link(); l.Type = link.MediaType; l.Rel = link.RelationshipType; l.HREF = link.Uri.AbsoluteUri; if (l.Rel.ToLower().Contains("feed")) { retString = l.HREF; } System.Diagnostics.Debug.WriteLine(l.HREF); } } return retString; }
/// <summary> /// Post the photo tag /// </summary> /// <param name="albumID"></param> /// <param name="photoID"></param> /// <param name="tep"></param> /// <param name="access_token"></param> /// <returns></returns> private bool PostTagToPhoto(string albumID, string photoID, Picasa.TagEntryPost tep, string access_token) { string updateURI = string.Format("{0}{1}{2}" , GoogleUtilityConstants.PICASA_FEED_BASE_URI_NO_HTTPS , GetAlbumURI(albumID) , GetPhotoURI(photoID)); GoogleTCPRequestor tcpr = new GoogleTCPRequestor(Requestor.Operation.POST , Requestor.HTTPFormat.FORMAT_1_1 , Requestor.ContentType.ATOM_XML , GoogleUtilityConstants.GOOGLE_PICASA_HOST , updateURI , tep.toXmlPostString() , access_token , true); //submit the request: return tcpr.SubmitRequest(true, false, Requestor.ResponseTerminatorAction.CONTAINS_HTTP_1_1_201_CREATED); }
private UploadResult UploadImage(string ssPath) { ImageUploader imageUploader = null; if (!string.IsNullOrEmpty(Program.Settings.PtpImgCode)) { imageUploader = new PtpImageUploader(Crypt.Decrypt(Program.Settings.PtpImgCode)); } else { switch ((ImageDestination)Program.Settings.ImageUploaderType) { case ImageDestination.TinyPic: imageUploader = new TinyPicUploader(ZKeys.TinyPicID, ZKeys.TinyPicKey, Program.UploadersConfig.TinyPicAccountType, Program.UploadersConfig.TinyPicRegistrationCode); break; case ImageDestination.Imgur: if (Program.UploadersConfig.ImgurOAuth2Info == null) { Program.UploadersConfig.ImgurOAuth2Info = new OAuth2Info(APIKeys.ImgurClientID, APIKeys.ImgurClientSecret); } string albumID = null; if (Program.UploadersConfig.ImgurUploadSelectedAlbum && Program.UploadersConfig.ImgurSelectedAlbum != null) { albumID = Program.UploadersConfig.ImgurSelectedAlbum.id; } imageUploader = new Imgur_v3(Program.UploadersConfig.ImgurOAuth2Info) { UploadMethod = Program.UploadersConfig.ImgurAccountType, DirectLink = Program.UploadersConfig.ImgurDirectLink, ThumbnailType = Program.UploadersConfig.ImgurThumbnailType, UploadAlbumID = albumID }; break; case ImageDestination.Flickr: imageUploader = new FlickrUploader(APIKeys.FlickrKey, APIKeys.FlickrSecret, Program.UploadersConfig.FlickrAuthInfo, Program.UploadersConfig.FlickrSettings); break; case ImageDestination.Photobucket: imageUploader = new Photobucket(Program.UploadersConfig.PhotobucketOAuthInfo, Program.UploadersConfig.PhotobucketAccountInfo); break; case ImageDestination.Picasa: imageUploader = new Picasa(Program.UploadersConfig.PicasaOAuth2Info) { AlbumID = Program.UploadersConfig.PicasaAlbumID }; break; case ImageDestination.Twitter: OAuthInfo twitterOAuth = Program.UploadersConfig.TwitterOAuthInfoList.ReturnIfValidIndex(Program.UploadersConfig.TwitterSelectedAccount); imageUploader = new Twitter(twitterOAuth); break; case ImageDestination.Chevereto: imageUploader = new Chevereto(Program.UploadersConfig.CheveretoWebsite, Program.UploadersConfig.CheveretoAPIKey) { DirectURL = Program.UploadersConfig.CheveretoDirectURL }; break; case ImageDestination.HizliResim: imageUploader = new HizliResim() { DirectURL = true }; break; case ImageDestination.CustomImageUploader: if (Program.UploadersConfig.CustomUploadersList.IsValidIndex(Program.UploadersConfig.CustomImageUploaderSelected)) { imageUploader = new CustomImageUploader(Program.UploadersConfig.CustomUploadersList[Program.UploadersConfig.CustomImageUploaderSelected]); } break; case ImageDestination.FileUploader: return(UploadFile(ssPath)); } } if (imageUploader != null) { ReportProgress(ProgressType.UPDATE_STATUSBAR_DEBUG, string.Format("Uploading {0}.", Path.GetFileName(ssPath))); return(imageUploader.Upload(ssPath)); } return(null); }
private UploadResult UploadImage(string ssPath) { ImageUploader imageUploader = null; if (!string.IsNullOrEmpty(App.Settings.PtpImgCode)) { imageUploader = new PtpImageUploader(Crypt.Decrypt(App.Settings.PtpImgCode)); } else { switch (App.Settings.ProfileActive.ImageUploaderType) { case ImageDestination.Imgur: if (App.UploadersConfig.ImgurOAuth2Info == null) { App.UploadersConfig.ImgurOAuth2Info = new OAuth2Info(APIKeys.ImgurClientID, APIKeys.ImgurClientSecret); } string albumID = null; if (App.UploadersConfig.ImgurUploadSelectedAlbum && App.UploadersConfig.ImgurSelectedAlbum != null) { albumID = App.UploadersConfig.ImgurSelectedAlbum.id; } imageUploader = new Imgur(App.UploadersConfig.ImgurOAuth2Info) { UploadMethod = App.UploadersConfig.ImgurAccountType, DirectLink = App.UploadersConfig.ImgurDirectLink, ThumbnailType = App.UploadersConfig.ImgurThumbnailType, UploadAlbumID = albumID }; break; case ImageDestination.TinyPic: imageUploader = new TinyPicUploader(APIKeys.TinyPicID, APIKeys.TinyPicKey, App.UploadersConfig.TinyPicAccountType, App.UploadersConfig.TinyPicRegistrationCode); break; case ImageDestination.Flickr: imageUploader = new FlickrUploader(APIKeys.FlickrKey, APIKeys.FlickrSecret, App.UploadersConfig.FlickrAuthInfo, App.UploadersConfig.FlickrSettings); break; case ImageDestination.Photobucket: imageUploader = new Photobucket(App.UploadersConfig.PhotobucketOAuthInfo, App.UploadersConfig.PhotobucketAccountInfo); break; case ImageDestination.Picasa: imageUploader = new Picasa(App.UploadersConfig.PicasaOAuth2Info) { AlbumID = App.UploadersConfig.PicasaAlbumID }; break; case ImageDestination.Twitter: OAuthInfo twitterOAuth = App.UploadersConfig.TwitterOAuthInfoList.ReturnIfValidIndex(App.UploadersConfig.TwitterSelectedAccount); imageUploader = new Twitter(twitterOAuth); break; case ImageDestination.Chevereto: imageUploader = new Chevereto(App.UploadersConfig.CheveretoWebsite, App.UploadersConfig.CheveretoAPIKey) { DirectURL = App.UploadersConfig.CheveretoDirectURL }; break; case ImageDestination.HizliResim: imageUploader = new HizliResim() { DirectURL = true }; break; case ImageDestination.CustomImageUploader: if (App.UploadersConfig.CustomUploadersList.IsValidIndex(App.UploadersConfig.CustomImageUploaderSelected)) { imageUploader = new CustomImageUploader(App.UploadersConfig.CustomUploadersList[App.UploadersConfig.CustomImageUploaderSelected]); } break; case ImageDestination.FileUploader: return UploadFile(ssPath); } } if (imageUploader != null) { PrepareUploader(imageUploader); return imageUploader.Upload(ssPath); } return null; }
public UploadResult UploadImage(Stream stream, string fileName) { ImageUploader imageUploader = null; switch (Info.TaskSettings.ImageDestination) { case ImageDestination.Imgur: if (Program.UploadersConfig.ImgurOAuth2Info == null) { Program.UploadersConfig.ImgurOAuth2Info = new OAuth2Info(APIKeys.ImgurClientID, APIKeys.ImgurClientSecret); } imageUploader = new Imgur_v3(Program.UploadersConfig.ImgurOAuth2Info) { UploadMethod = Program.UploadersConfig.ImgurAccountType, DirectLink = Program.UploadersConfig.ImgurDirectLink, ThumbnailType = Program.UploadersConfig.ImgurThumbnailType, UploadAlbumID = Program.UploadersConfig.ImgurAlbumID }; break; case ImageDestination.ImageShack: Program.UploadersConfig.ImageShackSettings.ThumbnailWidth = Info.TaskSettings.AdvancedSettings.ThumbnailPreferredWidth; Program.UploadersConfig.ImageShackSettings.ThumbnailHeight = Info.TaskSettings.AdvancedSettings.ThumbnailPreferredHeight; imageUploader = new ImageShackUploader(APIKeys.ImageShackKey, Program.UploadersConfig.ImageShackSettings); break; case ImageDestination.TinyPic: imageUploader = new TinyPicUploader(APIKeys.TinyPicID, APIKeys.TinyPicKey, Program.UploadersConfig.TinyPicAccountType, Program.UploadersConfig.TinyPicRegistrationCode); break; case ImageDestination.Flickr: imageUploader = new FlickrUploader(APIKeys.FlickrKey, APIKeys.FlickrSecret, Program.UploadersConfig.FlickrAuthInfo, Program.UploadersConfig.FlickrSettings); break; case ImageDestination.Photobucket: imageUploader = new Photobucket(Program.UploadersConfig.PhotobucketOAuthInfo, Program.UploadersConfig.PhotobucketAccountInfo); break; case ImageDestination.Picasa: imageUploader = new Picasa(Program.UploadersConfig.PicasaOAuth2Info) { AlbumID = Program.UploadersConfig.PicasaAlbumID }; break; case ImageDestination.Twitter: OAuthInfo twitterOAuth = Program.UploadersConfig.TwitterOAuthInfoList.ReturnIfValidIndex(Program.UploadersConfig.TwitterSelectedAccount); imageUploader = new Twitter(twitterOAuth); break; case ImageDestination.CustomImageUploader: if (Program.UploadersConfig.CustomUploadersList.IsValidIndex(Program.UploadersConfig.CustomImageUploaderSelected)) { imageUploader = new CustomImageUploader(Program.UploadersConfig.CustomUploadersList[Program.UploadersConfig.CustomImageUploaderSelected]); } break; } if (imageUploader != null) { PrepareUploader(imageUploader); return(imageUploader.Upload(stream, fileName)); } return(null); }