With the cache mechanism built in the flickr API proxy, users can benefit from it when surfing photos in flickr. However, the default cache expiration is not suitable for each flickr API call.
For example,
-- "flickr.people.findByUsername" can lookup a user's nsid, but the nsid of a user will almost never be changed. So the result of this API should never be expired.
-- "flickr.photos.getRecent" is to get the recent photos of everyone, I set its expiration as 1 hour.
-- "flickr.people.getInfo" is to get info of a user, I give it a longer expiration, 5 days.
Following is a piece of code in "flickr.proxy.php".
$hour = 60*60;
$cache_expire = 3*24*$hour;
// Never expired API methods
if( eregi('flickr.people.findByUsername', $restURL) ||
eregi('flickr.people.findByEmail', $restURL) ||
eregi('flickr.urls.lookupUser', $restURL) ||
eregi('flickr.urls.lookupGroup', $restURL) ||
eregi('flickr.people.getInfo', $restURL) ) $never_expire = 1;
else $never_expire = 0;
// Setting different expiration for each API method
if( eregi('flickr.people.getInfo', $restURL) ) $cache_expire = 5*24*$hour;
if( eregi('flickr.people.getPublicPhotos', $restURL) ) $cache_expire = 6*$hour;
if( eregi('flickr.groups.pools.getPhotos', $restURL) ) $cache_expire = 3*$hour;
if( eregi('flickr.photos.getContactsPublicPhotos', $restURL) ) $cache_expire = 1*$hour;
if( eregi('flickr.photos.getInfo', $restURL) ) $cache_expire = 5*24*$hour;
if( eregi('flickr.photos.getRecent', $restURL) ) $cache_expire = 1*$hour;
if( eregi('flickr.favorites.getPublicList', $restURL) ) $cache_expire = 1*24*$hour;
if( eregi('flickr.tags.getListUserPopular', $restURL) ) $cache_expire = 5*24*$hour;
if( eregi('flickr.photos.search', $restURL) ) $cache_expire = 24*$hour;
if( eregi('flickr.people.getInfo', $restURL) ) $cache_expire = 7*24*$hour;