/// <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);
        }
Example #3
0
        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);
        }
Example #7
0
        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);
        }
Example #8
0
        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;
        }
Example #9
0
        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);
        }