unhammer (owner)

Revisions

gist: 75820 Download_button fork
public
Description:
ubiquity: flickr original sizes
Public Clone URL: git://gist.github.com/75820.git
Embed All Files: show embed
x #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
// @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);
  }
});