Index: flickr.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/flickr/flickr.inc,v
retrieving revision 1.18
diff -u -r1.18 flickr.inc
--- flickr.inc	13 Apr 2007 22:44:51 -0000	1.18
+++ flickr.inc	16 Apr 2007 02:13:43 -0000
@@ -194,8 +194,13 @@
  *   url for the flickr photo page showing photo with $id of $owner
  */
 function flickr_photo_page_url($owner, $id = NULL) {
-  $owner = is_array($owner) ? $owner['nsid']: $owner;
-  return 'http://flickr.com/photos/'. $owner . ($id ? '/'. $id : '');
+  $nsid = is_array($owner) ? $owner['nsid']: $owner;
+  if ($person = flickr_people_get_info($nsid)) {
+    return $person['photosurl']['_content'] . $id;
+  }
+  else {
+    return 'http://flickr.com/photos/'. $nsid . ($id ? '/'. $id : '');
+  }
 }
 
 /**
@@ -208,8 +213,33 @@
  *   url for the photoset page of photoset $id of owner $owner
  */
 function flickr_photoset_page_url($owner, $id = NULL) {
-  $owner = is_array($owner) ? $owner['nsid']: $owner;
-  return "http://flickr.com/photos/$owner/sets/$id";
+  $nsid = is_array($owner) ? $owner['nsid']: $owner;
+  if ($person = flickr_people_get_info($nsid)) {
+    return $person['photosurl']['_content'] . $id;
+  }
+  else {
+    return "http://flickr.com/photos/$nsid/sets/$id";
+  }
+}
+
+/**
+ * @param $nisd
+ *   The Flickr user's NSID
+ *
+ * @return
+ *   array with person's info from flickr.people.getInfo
+ *   (http://www.flickr.com/services/api/flickr.people.getInfo.html)
+ *   or FALSE on error.
+ */
+function flickr_people_get_info($nisd) {
+  $result = flickr_request(
+    'flickr.people.getInfo',
+    array('user_id' => $nisd)
+  );
+  if (!flickr_error($result)) {
+    return $result['person'];
+  }
+  return FALSE;
 }
 
 /**

