Skip to content

Instantly share code, notes, and snippets.

@unhammer
Created March 8, 2009 16:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save unhammer/75820 to your computer and use it in GitHub Desktop.
Save unhammer/75820 to your computer and use it in GitHub Desktop.
ubiquity: flickr original sizes
// @source: http://gist.github.com/75820
/*
@licstart The following is the entire license notice for the
Javascript code in this page.
Copyright (C) 2009 Kevin Brubeck Unhammer
The Javascript code in this page is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the Javascript code in this page.
*/
CmdUtils.CreateCommand({
name: "flickr-display-original",
icon: "http://www.flickr.com/favicon.ico",
homepage: "http://unhammer.wordpress.com/",
author: { name: "Kevin Brubeck Unhammer", email: "unhammer@gmail.com"},
license: "GPL",
description: "Just gives you the original size of a flickr image",
help: "Go to a flickr image page and try it. Of course, All Sizes must be available.",
takes: {},
preview: function( pblock ) {
pblock.innerHTML = CmdUtils.renderTemplate("Try this on a (downloadable) flickr image page to see the page with the original size.", {});
},
execute: function(input) {
url = String(Application.activeWindow.activeTab.document.location);
urlArray = url.split("/").slice(0,6);
newUrl = urlArray.join("/")+"/sizes/o/";
Utils.openUrlInBrowser(newUrl);
}
});
CmdUtils.CreateCommand({
name: "flickr-get-original",
icon: "http://www.flickr.com/favicon.ico",
homepage: "http://unhammer.wordpress.com/",
author: { name: "Kevin Brubeck Unhammer", email: "unhammer@gmail.com"},
license: "GPL",
description: "Just gives you the original size of a flickr image",
help: "Go to a flickr image page and try it. Of course, All Sizes must be available.",
_getImg: function( callback ) {
// learnt some stuff from http://www.yalazi.org/ubiquity/commands/bugmenot.js
var url = String(Application.activeWindow.activeTab.document.location);
var urlArray = url.split("/").slice(0,6);
var newUrl = urlArray.join("/")+"/sizes/o/";
jQuery.ajax({
url:newUrl,
error:function(){
if (pblock){
pblock.innerHTML += "Page not found.<br />";
}else{
displayMessage("Page not found.");
CmdUtils.setSelection("Page not found.");
}
},
success:function( page ) {
// assuming this is slightly faster than DOM parsing..
var before = page.indexOf("alt=\"Download");
var after = page.indexOf("</a>", before);
var cropped = page.substr(before, after - before);
imgsrc = cropped.match(/href="(.+)"/)[1];
callback(imgsrc);
}
});
},
_render: function(imgsrc){ // todo: doesn't work yet..
var template = "<img src=\"${imgsrc}\" />";
pblock.innerHTML = CmdUtils.renderTemplate(template, {"imgsrc": imgsrc});
},
takes: {},
preview: function( pblock ) {
pblock.innerHTML = CmdUtils.renderTemplate("Try this on a (downloadable) flickr image page to download the original size image.", {"imgsrc": ""});
this._getImg(this._render);
},
execute: function(input) {
this._getImg(Utils.openUrlInBrowser);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment