Skip to content

Instantly share code, notes, and snippets.

@max-mapper
Forked from caseorganic/frob_town
Created May 10, 2010 21:18
Show Gist options
  • Save max-mapper/396560 to your computer and use it in GitHub Desktop.
Save max-mapper/396560 to your computer and use it in GitHub Desktop.
<html>
<head>
<script src='http://code.jquery.com/jquery-1.4.2.min.js'></script>
<script src='http://github.com/desandro/masonry/raw/master/js/jquery.masonry.min.js'></script>
<script src='http://plugins.jquery.com/files/jquery.md5.js.txt'></script>
<script src='http://github.com/xaviershay/jquery-enumerable/raw/master/jquery.enumerable.js'></script>
<link rel="stylesheet" type="text/css" href="http://github.com/desandro/masonry/raw/master/css/masonry-example.css" media="screen" charset="utf-8" />
<script>
var secret = 'SUCK_IT_HACKERSZ';
function sig_for(url, json_callback_name) {
querystring = url.split('?')[1];
if(json_callback_name !== "") {
querystring = querystring + '&jsoncallback=' + json_callback_name;
}
sig = secret + $.makeArray($(querystring.split('&')).map(function() {
return this.replace('=','')
}).sort()).join('');
return '&api_sig=' + $.md5(sig);
}
function show_photos(data){
$('.authorize').hide();
$.each(data.photos.photo, function(index, photo){
var views = photo.views;
var url = photo.url_s;
if (views > 0 && views <= 20) {
url = photo.url_t;
} else if (views >20 && views <= 40) {
url = photo.url_s;
} else if (views >40 && views <=100) {
url = photo.url_m;
} else if (views >100) {
url = photo.url_t;
}
$('#photos').append("<div class='box'><img src='"+url+"'/></div>");
});
$('#photos').masonry({
columnWidth: 50,
itemSelector: '.box',
animate: true
});
}
function load_photos(data) {
var token = data.auth.token._content;
var photos_url = "http://api.flickr.com/services/rest/?api_key=6b5486d64eb5b8d78e178523773eaab3&format=json&method=flickr.people.getPhotos&extras=views,url_t,url_s,url_m,url_l&user_id=28980639@N02&auth_token="+token;
var photos_callback_name = 'show_photos';
$.ajax({
url: photos_url + sig_for(photos_url, photos_callback_name),
dataType: 'jsonp',
jsonp: 'jsoncallback',
jsonpCallback: photos_callback_name
});
}
function frobtown(data) {
frob = data.frob._content;
var token_url = "http://api.flickr.com/services/auth/?api_key=6b5486d64eb5b8d78e178523773eaab3&frob="+frob+"&perms=read";
var url = token_url + sig_for(token_url, "");
$("#photos").html("<a class='authorize' href='"+url+"' target='_blank'>Visit this link to authorize this page to view your Flickr feed</a>")
.click(function(){
$(this).click(function(e){
e.preventDefault();
frob_auth(frob);
})
.find('a').text("Click here once you've accepted on Flickr");
});
}
function frob_auth(frob) {
var token_url = "http://api.flickr.com/services/rest/?api_key=6b5486d64eb5b8d78e178523773eaab3&format=json&frob="+frob+"&method=flickr.auth.getToken&perms=read";
var token_callback_name = "load_photos";
$.ajax({
url: token_url + sig_for(token_url, token_callback_name),
dataType: 'jsonp',
jsonp: 'jsoncallback',
jsonpCallback: token_callback_name
});
};
$(function(){
var frob_url = "http://api.flickr.com/services/rest/?api_key=6b5486d64eb5b8d78e178523773eaab3&format=json&method=flickr.auth.getFrob&perms=read";
var frob_callback_name = 'frobtown';
$.ajax({
url: frob_url + sig_for(frob_url, frob_callback_name),
dataType: 'jsonp',
jsonp: 'jsoncallback',
jsonpCallback: frob_callback_name
});
});
</script>
</head>
<body>
<div id="photos" class="wrap"></div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment