-
-
Save unhammer/75820 to your computer and use it in GitHub Desktop.
ubiquity: flickr original sizes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// @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