示例#1
0
 public CompletedAuth(FlickrNet.Flickr flickrProxy, object frob)
 {
     InitializeComponent();
     _proxy = flickrProxy;
     Frob = frob;
     Load += CompletedAuth_Load;
 }
 public static string GetLicenseTemplate(FlickrNet.LicenseType licenseType)
 {
     switch (licenseType)
     {
         case FlickrNet.LicenseType.AttributionCC:
             {
                 return "{{cc-by-2.0}}";
             }
         case FlickrNet.LicenseType.AttributionShareAlikeCC:
             {
                 return "{{cc-by-sa-2.0}}";
             }
         case FlickrNet.LicenseType.UnitedStatesGovernmentWork:
             {
                 return "{{PD-USGov}}";
             }
         case FlickrNet.LicenseType.NoKnownCopyrightRestrictions:
             {
                 return "{{Flickr-no known copyright restrictions}}";
             }
         default:
             {
                 logger.Error("GetLicenseTemplate - Unknown copyright: " + licenseType);
                 return "Unknown copyright";
             }
     }
 }
示例#3
0
        private async Task <bool> CheckLogin()
        {
            if (FlickrNet == null || FlickrNet.OAuthAccessToken == null || FlickrNet.OAuthAccessTokenSecret == null)
            {
                IsAuthenticated = false;
                return(IsAuthenticated);
            }
            try
            {
                var user = await FlickrNet.RetryOnFailureAsync(f => f.TestLoginAsync());

                if (user != null)
                {
                    UserName = user.UserName;
                    var info = await FlickrNet.RetryOnFailureAsync(f => f.PeopleGetInfoAsync(user.UserId));

                    IconUri = new Uri(int.TryParse(info.IconServer, out int iconServer) && iconServer > 0
                        ? $"http://farm{info.IconFarm}.staticflickr.com/{iconServer}/buddyicons/{user.UserId}.jpg"
                        : "https://www.flickr.com/images/buddyicon.gif");
                    IsAuthenticated = true;
                }
                else
                {
                    IsAuthenticated = false;
                }
            }
            catch (Exception)
            {
                IsAuthenticated = false;
            }
            return(IsAuthenticated);
        }
        public void LoadPicture(FlickrNet.PhotoInfo photoInfo)
        {
            this.DataContext = photoInfo;

            _isShowingComments = false;
            _isShowingNotes = false;
            _isShowingViews = false;

            if (photoInfo.Title == string.Empty || photoInfo.Title.Length == 0) grdTitle.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            else grdTitle.Visibility = Visibility.Visible;

            String resultDescription = Regex.Replace(photoInfo.Description, @"<[^>]*>", String.Empty);
            tbDescription.Text = resultDescription;

            string resultDisplayName = "by ";
            if (photoInfo.OwnerRealName != string.Empty) resultDisplayName += photoInfo.OwnerRealName;
            if (photoInfo.OwnerUserName != string.Empty) resultDisplayName += " (" + photoInfo.OwnerUserName + ")";
            tbOwnerDisplayName.Text = resultDisplayName;

            tbLicense.Text = "License : " + photoInfo.License;
            butViews.Content = "Views : " + photoInfo.ViewCount;
            butComments.Content = "Comments : " + photoInfo.CommentsCount;
            if(photoInfo.Notes!=null) butNotes.Content = "Notes : " +  photoInfo.Notes.Count ;

            if (ChangeViewState != null) ChangeViewState("Normal", null);

            //try to load photostream
            
            
            
        }
示例#5
0
 public CompletedAuth(FlickrNet.Flickr flickrProxy, string frob)
 {
     InitializeComponent();
     _proxy = flickrProxy;
     this.Frob = frob;
     Load += new EventHandler(CompletedAuth_Load);
 }
示例#6
0
        public async void LoadPicture(FlickrNet.Photo photo)
        {
            //imgMain.Source = new Uri(photo.OwnerName);

            try
            {
                var folder = await Windows.Storage.KnownFolders.PicturesLibrary.GetFolderAsync("ModernCSApp");
                var file = await folder.GetFileAsync(photo.PhotoId + "_" + photo.Secret + ".jpg");

                using (var stream = await file.OpenReadAsync())
                {
                    BitmapImage bi = new BitmapImage();
                    bi.SetSource(stream);
                    imgMain.Source = bi;


                    //if (RenderingService.MagicRenderer != null && RenderingService.MagicRenderer is ISpriteRenderer)
                    //{
                    //    var gt = Window.Current.Content.TransformToVisual(imgMain);
                    //    var p = gt.TransformPoint(new Point(0, 0));
                    //    ((ISpriteRenderer)RenderingService.MagicRenderer).AddSprite(p.X, p.Y, 0, 1);
                    //}
                }


                //imgMain.Source = bi;
                if (ChangeViewState != null) ChangeViewState("Normal", null);
            }
            catch { 
            
            }
        }
示例#7
0
 public Photo( FlickrNet.Photo photo, string urlFormat )
 {
     OwnerName = photo.OwnerName;
     DateTaken = photo.DateTaken;
     Latitude = photo.Latitude;
     Longitude = photo.Longitude;
     Title = photo.Title;
     ThumbnailUrl = string.Format( urlFormat, Uri.EscapeUriString( photo.ThumbnailUrl ) );
 }
 public async void LoadInfo(FlickrNet.Photo photo, FlickrNet.ExifTagCollection exifInfo)
 {
     
     try
     {
         lbInfo.ItemsSource = exifInfo;
        
         if (ChangeViewState != null) ChangeViewState("Normal", null);
     }
     catch { 
     
     }
 }
示例#9
0
        public async Task <bool> AuthenticateAsync(string validation)
        {
            var accessToken = await FlickrNet.RetryOnFailureAsync(f => f.OAuthAccessTokenAsync(requestToken.Token, requestToken.TokenSecret, validation));

            FlickrNet.OAuthAccessToken       = accessToken.Token;
            FlickrNet.OAuthAccessTokenSecret = accessToken.TokenSecret;
            if (await CheckLogin())
            {
                var localSettings = ApplicationData.Current.LocalSettings;
                localSettings.Values["accessToken"] = accessToken.Token;
                localSettings.Values["tokenSecret"] = accessToken.TokenSecret;
                RequestToken = null;
            }
            return(IsAuthenticated);
        }
示例#10
0
        internal static string GenerateFlickrHtml(FlickrNet.Photo selectedPhoto, string imageUrl, string cssClass, string border, string vSpace, string hSpace, string alignment, bool hyperLink, string userId)
        {
            StringBuilder imageTag = new StringBuilder();
            string imageHtml = string.Empty;

            imageTag.Append("<img "); // begin tag
            imageTag.Append(string.Format("src=\"{0}\" ", HtmlServices.HtmlEncode(imageUrl)));
            imageTag.Append(string.Format("alt=\"{0}\" ", HtmlServices.HtmlEncode(selectedPhoto.Title))); // alt required for XHTML
            imageTag.Append(string.Format("border=\"{0}\" ", HtmlServices.HtmlEncode(border)));

            if (cssClass.Trim().Length > 0)
            {
                imageTag.Append(string.Format("class=\"{0}\" ", cssClass));
            }

            if (hSpace.Trim().Length > 0 && hSpace != "0")
            {
                imageTag.Append(string.Format("hspace=\"{0}\" ", hSpace));
            }

            if (vSpace.Trim().Length > 0 && vSpace != "0")
            {
                imageTag.Append(string.Format("vspace=\"{0}\" ", vSpace));
            }

            if (alignment.Trim().Length > 0 && alignment.ToLower() != "none")
            {
                imageTag.Append(string.Format("alignment=\"{0}\" ", alignment.ToLower()));
            }

            imageTag.Append("/>"); // end tag XHTML

            imageHtml = imageTag.ToString();

            if (hyperLink)
            {
                imageHtml = string.Format("<a href=\"{0}\" title=\"{2}\">{1}</a>", HtmlServices.HtmlEncode(selectedPhoto.WebUrl), imageHtml, HtmlServices.HtmlEncode(selectedPhoto.Title));
                // TODO: Fix this temp hack in FlicrkNet library -- photoset photos array in FlickrAPI does not include owner attribute
                // thus the serialization lacks the Userid attribute to properly input the WebUrl
                // THIS IS A TEMP HACK TO FIX PHOTOSET ONLY
                imageHtml = FixPhotosetWebUrl(imageHtml, userId);

            }

            return imageHtml;
        }
示例#11
0
        internal static FlickrNet.FoundUser FindUserByEmailOrName(FlickrNet.Flickr flickrProxy, string criteria)
        {
            FlickrNet.FoundUser user;

            Regex rxp = new Regex("(?<user>[^@]+)@(?<host>.+)");

            if (rxp.IsMatch(criteria))
            {
                user = flickrProxy.PeopleFindByEmail(criteria);
            }
            else
            {
                user = flickrProxy.PeopleFindByUsername(criteria);
            }

            return user;
        }
示例#12
0
        private static string SelectImageUrl(FlickrNet.Photo photo)
        {
            if (! string.IsNullOrEmpty(photo.Medium800Url))
                return photo.Medium800Url;

            if (! string.IsNullOrEmpty(photo.LargeUrl))
                return photo.Medium800Url;

            if (! string.IsNullOrEmpty(photo.Medium640Url))
                return photo.Medium800Url;

            if (! string.IsNullOrEmpty(photo.MediumUrl))
                return photo.Medium800Url;

            if (! string.IsNullOrEmpty(photo.OriginalUrl))
                return photo.Medium800Url;

            return photo.ThumbnailUrl;
        }
示例#13
0
        void SearchCompleted(FlickrNet.PhotoCollection photos)
        {
            flowLayoutPanel1.Controls.Clear();

            foreach (FlickrNet.Photo photo in photos)
            {
                WebClient client = new WebClient();
                client.DownloadDataCompleted += new DownloadDataCompletedEventHandler(client_DownloadDataCompleted);
                client.DownloadDataAsync(new Uri(photo.SmallUrl), photo);
            }
        }
示例#14
0
 public Favourite ConvertPhotoToFavourite(FlickrNet.Photo photo, PhotoInfo photoInfo, string userAvatarUri)
 {
     return new Favourite()
             {
                 MediaLicense = getLicenseTypeName(photo.License),
                 AggregateId = Guid.NewGuid().ToString(),
                 MediaDescription = photo.Description == null ? string.Empty : photo.Description,
                 MediaTitle = photo.Title == null ? string.Empty : photo.Title,
                 MediaUrlSmall = photo.SmallUrl == null ? string.Empty : photo.SmallUrl,
                 MediaUrlMedium = photo.MediumUrl == null ? string.Empty : photo.MediumUrl,
                 MediaUserAvatar = photoInfo.OwnerBuddyIcon,
                 MediaUserName = photoInfo.OwnerUserName,
                 UserAvatar = userAvatarUri,
                 UserName = FlickrPerson.UserName,
                 UserRealName = FlickrPerson.RealName,
                 TimeStamp = DateTime.Now.ToUniversalTime(),
                 EntityId = photo.PhotoId
             };
 }
示例#15
0
        public async Task <string> GetAuthPageUrlAsync(string callbackUrl = DefaultCallbackUrl)
        {
            RequestToken = await FlickrNet.RetryOnFailureAsync(f => f.OAuthRequestTokenAsync(callbackUrl));

            return(FlickrNet.OAuthCalculateAuthorizationUrl(RequestToken.Token, AuthLevel.Write));
        }
示例#16
0
 private void PopulateGallery(string path, FlickrNet.Photo photo)
 {
     try
     {
         FileInfo file = new FileInfo(path);
         if (file.IsImage())
         {
             Gallery.ImageListViewItem ilvi = new Gallery.ImageListViewItem();
             ilvi.FileName = file.FullName;
             ilvi.Tag = new ImageInfo
             {
                 PhotoID = photo.PhotoId
             };
             if (ilvGallery.InvokeRequired)
             {
                 PopulateGalleryCallback d = new PopulateGalleryCallback(PopulateGallery);
                 this.Invoke(d, new object[] { ilvi });
             }
             else
             {
                 ilvGallery.Items.Add(ilvi);
             }
         }
     }
     catch (UnauthorizedAccessException)
     {
         // so what ... go go go!!! :P
     }
 }
 public void LoadPictures(FlickrNet.PhotoCollection col, string title)
 {
     tbTitle.Text = title;
     gvMain.ItemsSource = col;
     if (ChangeViewState != null) ChangeViewState("Normal", null);
 }
示例#18
0
 private void PrintException(FlickrNet.FlickrApiException e)
 {
     Console.WriteLine(e.Code + " : " + e.Verbose);
 }
示例#19
0
 public void LoadPictures(FlickrNet.PhotoCollection col, string title)
 {
     tbTitle.Text = title;
     gvMain.ItemsSource = col;
 }
示例#20
0
 private static bool OffThreadOnUploadProgress(object sender, FlickrNet.UploadProgressEventArgs e)
 {
     if (_abandonJob)
     {
         return false;
     }
     else
     {
         uint progress = ((uint)e.Bytes * 100) / ((uint)e.TotalBytes);
         MainWindow.Main.Dispatcher.BeginInvoke(new OnUploadProgressDelegate(_currentJob.OnThreadOnUploadProgress), progress);
         return true;
     }
 }
示例#21
0
    private void UpdatePhotos(FlickrNet.PhotoCollection photos, 
		                          ref ArrayList serverphotoids)
    {
        foreach (FlickrNet.Photo p in photos) {
        DelegateIncrementProgressBar();
            if (!PersistentInformation.GetInstance().HasLatestPhoto(
                    p.PhotoId, p.lastupdate_raw)) {
              Photo photo = RetrievePhoto(p.PhotoId);
              if (photo == null) continue;
              PersistentInformation.GetInstance().UpdatePhoto(photo);
            }
            serverphotoids.Add(p.PhotoId);
          }
    }
 void Flickr_OnUploadProgress(object sender, FlickrNet.UploadProgressEventArgs e)
 {
     backgroundWorker1.ReportProgress(e.ProcessPercentage);
 }
示例#23
0
        public string GetImageUrl(FlickrNet.Photo p, ImageSize imgsize)
        {
            string url = null;

            switch (imgsize)
            {
                case ImageSize.Thumbnail:
                    url = p.ThumbnailUrl;
                    break;

                case ImageSize.Small:
                    url = p.SmallUrl;
                    break;

                case ImageSize.Medium:
                    url = p.MediumUrl;
                    break;

                case ImageSize.Large:
                    url = p.LargeUrl;
                    break;
            }

            return url;
        }
示例#24
0
        private static GeoLocation GetLocation(FlickrNet.Photo photo)
        {
            if ((photo.Accuracy == GeoAccuracy.None) || 
                (double.IsNaN(photo.Latitude) && double.IsNaN(photo.Longitude) && photo.DateTaken == DateTime.MinValue))
                return default(GeoLocation);

            return new GeoLocation
            {
                Timestamp = photo.DateTaken,
                Latitude = photo.Latitude,
                Longtitude = photo.Longitude
            };
        }
示例#25
0
        private static Photo Map(FlickrNet.Photo photo)
        {
            return new Photo
                {
                    Id = photo.PhotoId,

                    OriginalUrl = photo.OriginalUrl,
                    OriginalWidth = photo.OriginalWidth,
                    OriginalHeigth = photo.OriginalHeight,

                    LargeUrl = photo.LargeUrl,
                    LargeWidth = photo.LargeWidth,
                    LargeHeight = photo.LargeHeight,

                    MediumUrl = photo.MediumUrl,
                    MediumWidth = photo.MediumWidth,
                    MediumHeight = photo.MediumHeight,

                    SmallUrl = photo.SmallUrl,
                    SmallWidth = photo.SmallWidth,
                    SmallHeight = photo.SmallHeight,

                    WebUrl = photo.WebUrl,

                    Description = photo.Description,
                    Title = photo.Title,
                };
        }
示例#26
0
 static bool HasFileNameTag(FlickrNet.Photo photo)
 {
     return photo.Tags.Count(t => t.StartsWith("filename")) > 0;
 }
示例#27
0
 public AuthForm(FlickrNet.Flickr flickrProxy)
 {
     InitializeComponent();
     _proxy = flickrProxy;
 }