namespace('acme.flickr');acme.flickr.Initialize=function(appName)
{acme.flickr.appName=appName;if(appName=='Discussr')
{acme.flickr.apiKey='364bc8fdedc38d870e1523190f5a5a38';acme.flickr.cookieName='discussr';}
else
{acme.flickr.apiKey='feb753a0cad44ff8b04c214a04fc1d69';acme.flickr.cookieName='flickr';}}
acme.flickr.restUrl='http://api.flickr.com/services/rest/'
acme.flickr.xmlrpcUrl='http://api.flickr.com/services/xmlrpc/'
acme.flickr.uploadUrl='http://api.flickr.com/services/upload/'
acme.flickr.authPermIdNone=0;acme.flickr.authPermIdRead=1;acme.flickr.authPermIdWrite=2;acme.flickr.authPermIdDelete=3;acme.flickr.authPermIdUnknown=4;acme.flickr.authDiv=null;acme.flickr.authRequestedPermId=null;acme.flickr.authCallback=null;acme.flickr.authActualPermName=null;acme.flickr.authActualPermId=null;acme.flickr.authNsid=null;acme.flickr.authUsername=null;acme.flickr.authFullname=null;acme.flickr.authError='';acme.flickr.authRedirCookieName='flickrAuthRedir';acme.flickr.AuthGetNsid=function()
{return acme.flickr.authNsid;}
acme.flickr.AuthGetUsername=function()
{return acme.flickr.authUsername;}
acme.flickr.AuthGetFullname=function()
{return acme.flickr.authFullname;}
acme.flickr.AuthPermDescription=function(permId)
{switch(permId)
{case acme.flickr.authPermIdNone:return'to know who you are';case acme.flickr.authPermIdRead:return'permission to show you your private photos';case acme.flickr.authPermIdWrite:return'permission to let you add, edit and delete photo metadata, and let you upload photos';case acme.flickr.authPermIdDelete:return'permission to let you delete photos from your Flickr account';default:return'unknown permissions';}}
acme.flickr.AuthPermName=function(permId)
{switch(permId)
{case acme.flickr.authPermIdNone:return'';case acme.flickr.authPermIdRead:return'read';case acme.flickr.authPermIdWrite:return'write';case acme.flickr.authPermIdDelete:return'delete';default:return'unknown';}}
acme.flickr.AuthPermId=function(permName)
{switch(permName)
{case'':return acme.flickr.authPermIdNone
case'read':return acme.flickr.authPermIdRead;case'write':return acme.flickr.authPermIdWrite;case'delete':return acme.flickr.authPermIdDelete;default:return acme.flickr.authPermIdUnknown;}}
acme.flickr.GetVars=function(varsText)
{var nVars=varsText.split('&');var aVars=[];for(var i=0;i
Authenticate.';}
else
{if(acme.flickr.fauthTokenChecked)
{html+='You are authenticated as '+acme.flickr.authFullname+' ';if(acme.flickr.authUsername!=acme.flickr.authFullname)
html+='('+acme.flickr.authUsername+') ';html+='with '+acme.flickr.authActualPermName+' permission. ';if(acme.flickr.authRequestedPermId>acme.flickr.authActualPermId)
{html+='This application needs '+acme.flickr.AuthPermDescription(acme.flickr.authRequestedPermId)+'. ';html+='
Raise permission.';}}
else
{html+='Checking authentication token....';acme.utils.HttpGet('/flickr/proxy.cgi?method=flickr.auth.checkToken&api_key='+acme.flickr.apiKey+'&auth_token='+acme.flickr.fauthToken+'&app_name='+encodeURIComponent(acme.flickr.appName),acme.flickr.FAuthCheckTokenOk,acme.flickr.FAuthCheckTokenFail);}
html+='
Revoke authentication.';}
html+='';acme.flickr.authDiv.innerHTML=html;}
acme.flickr.FAuthUrl=function(permId)
{acme.utils.SaveCookie(acme.flickr.authRedirCookieName,window.location.href);return'/flickr/fauth_redir.cgi?api_key='+acme.flickr.apiKey+'&perms='+acme.flickr.AuthPermName(permId)+'&app_name='+encodeURIComponent(acme.flickr.appName);}
acme.flickr.FAuthCheckTokenOk=function(response)
{var tree=acme.utils.ParseXML(response.responseXML.documentElement);if(tree.stat=='ok')
{acme.flickr.authActualPermName=tree.auth.perms.TEXT;acme.flickr.authActualPermId=acme.flickr.AuthPermId(acme.flickr.authActualPermName);var user=tree.auth.user;acme.flickr.authNsid=user.nsid;acme.flickr.authUsername=user.username;acme.flickr.authFullname=user.fullname;acme.flickr.fauthTokenChecked=true;acme.flickr.fauthTokenBad=false;acme.flickr.FAuthDisplay();if(acme.flickr.authCallback)
acme.flickr.authCallback(acme.flickr.fauthToken);}
else
{var code=tree.err.code;var msg=tree.err.msg;if(code&&msg)
acme.flickr.authError=code+' - '+msg;acme.utils.ClearCookie(acme.flickr.fauthTokenCookieName);acme.flickr.fauthToken=null;acme.flickr.fauthTokenBad=true;acme.flickr.FAuthDisplay();}}
acme.flickr.FAuthCheckTokenFail=function(response)
{acme.flickr.authError=response.status+' - '+response.statusText;acme.utils.ClearCookie(acme.flickr.fauthTokenCookieName);acme.flickr.fauthToken=null;acme.flickr.fauthTokenBad=true;acme.flickr.FAuthDisplay();}
acme.flickr.oauthRequestTokenUrl='http://www.flickr.com/services/oauth/request_token';acme.flickr.oauthAuthorizeUrl='http://www.flickr.com/services/oauth/authorize';acme.flickr.oauthAccessTokenUrl='http://www.flickr.com/services/oauth/access_token';acme.flickr.oauthRequestToken=null;acme.flickr.oauthRequestSecret=null;acme.flickr.oauthAccessToken=null;acme.flickr.oauthAccessSecret=null;acme.flickr.oauthTokenChecked=false;acme.flickr.oauthTokenBad=false;acme.flickr.OAuth=function(div,requestedPermId,callback)
{acme.flickr.oauthRequestTokenCookieName=acme.flickr.cookieName+'OAuthRequestToken';acme.flickr.oauthRequestSecretCookieName=acme.flickr.cookieName+'OAuthRequestSecret';acme.flickr.oauthAccessTokenCookieName=acme.flickr.cookieName+'OAuthAccessToken';acme.flickr.oauthAccessSecretCookieName=acme.flickr.cookieName+'OAuthAccessSecret';acme.flickr.authDiv=div;acme.flickr.authRequestedPermId=requestedPermId;acme.flickr.authCallback=callback;acme.flickr.OAuthDisplay();}
acme.flickr.OAuthGetToken=function()
{if(acme.flickr.oauthTokenChecked)
return acme.flickr.oauthAccessToken;else
return null;}
acme.flickr.OAuthGetSecret=function()
{if(acme.flickr.oauthTokenChecked)
return acme.flickr.oauthAccessSecret;else
return null;}
acme.flickr.OAuthDisplay=function()
{if(acme.flickr.oauthTokenBad)
{acme.flickr.oauthRequestToken=null;acme.flickr.oauthRequestSecret=null;acme.flickr.oauthAccessToken=null;acme.flickr.oauthAccessSecret=null;acme.flickr.oauthTokenChecked=false;}
else
{acme.flickr.oauthAccessToken=acme.utils.GetCookie(acme.flickr.oauthAccessTokenCookieName);acme.flickr.oauthAccessSecret=acme.utils.GetCookie(acme.flickr.oauthAccessSecretCookieName);acme.flickr.oauthRequestToken=acme.utils.GetCookie(acme.flickr.oauthRequestTokenCookieName);acme.flickr.oauthRequestSecret=acme.utils.GetCookie(acme.flickr.oauthRequestSecretCookieName);}
var query=acme.utils.GetParameters();var queryRequestToken=query['oauth_token'];var queryVerifier=query['oauth_verifier'];var html='
| ';if(acme.flickr.authError!=''&&acme.flickr.authError!='98 - Invalid auth token')
html+='Authentication error! ('+acme.flickr.authError+') ';if(acme.flickr.oauthAccessToken&&acme.flickr.oauthAccessSecret&&acme.flickr.oauthTokenChecked) {html+='You are authenticated as '+acme.flickr.authFullname+' ';if(acme.flickr.authUsername!=acme.flickr.authFullname) html+='('+acme.flickr.authUsername+') ';html+='with '+acme.flickr.authActualPermName+' permission. ';if(acme.flickr.authRequestedPermId>acme.flickr.authActualPermId) {html+='This application needs '+acme.flickr.AuthPermDescription(acme.flickr.authRequestedPermId)+'. ';html+=' Raise permission.';} html+=' Revoke authentication.';} else if(acme.flickr.oauthAccessToken&&acme.flickr.oauthAccessSecret) {html+='Checking access token....';acme.utils.HttpGet('/flickr/proxy.cgi?method=flickr.auth.oauth.checkToken&api_key='+acme.flickr.apiKey+'&oauth_token='+acme.flickr.oauthAccessToken+'&oauth_secret='+acme.flickr.oauthAccessSecret+'&app_name='+encodeURIComponent(acme.flickr.appName),acme.flickr.OAuthCheckTokenOk,acme.flickr.OAuthHttpFail);} else if(queryRequestToken&&queryVerifier&&acme.flickr.oauthRequestToken&&acme.flickr.oauthRequestSecret) {html+='Getting access token....';acme.utils.HttpGet('/flickr/oauth_access_token.cgi?request_token='+encodeURIComponent(acme.flickr.oauthRequestToken)+'&request_secret='+encodeURIComponent(acme.flickr.oauthRequestSecret)+'&oauth_verifier='+encodeURIComponent(queryVerifier)+'&app_name='+encodeURIComponent(acme.flickr.appName),acme.flickr.OAuthAccessTokenOk,acme.flickr.OAuthHttpFail);} else if(acme.flickr.oauthRequestToken&&acme.flickr.oauthRequestSecret) {html+='You are not authenticated. ';html+='This application needs '+acme.flickr.AuthPermDescription(acme.flickr.authRequestedPermId)+'. ';if(acme.flickr.authRequestedPermId==acme.flickr.authPermIdNone) acme.flickr.authRequestedPermId=acme.flickr.authPermIdRead;html+=' Authenticate.';} else if(!acme.flickr.oauthTokenBad) {html+='Getting request token....';acme.utils.HttpGet('/flickr/oauth_request_token.cgi?oauth_callback='+encodeURIComponent(window.location.href)+'&app_name='+encodeURIComponent(acme.flickr.appName),acme.flickr.OAuthRequestTokenOk,acme.flickr.OAuthHttpFail);} else {html+='Please refresh to try anthenticating again.';} html+=' |
|---|