/** * ==VimperatorPlugin== * @name Pukka * @description Add bookmark to Delicious with Pukka * @description-ja Pukkaを使用してDeliciousにブックマークする * @author otsune info@otsune.com * @namespace http://www.otsune.com/ * @minVersion 0.6pre * @version 0.4 * ==/VimperatorPlugin== * * see also http://codesorcery.net/pukka/ * * Variable: * g:pukka_normalizelink * Specifies keys that use Pathtraq URL Normalizer * usage: let g:pukka_normalizelink = true * Mappings: * '[C-z]': * Commands: * 'pukka' or 'pu': * Post bookmark to Delicious with Pukka * usage: :pu[kka] [http://example.com/] * Options: * not implemented */ (function() { var useNormalizelink = liberator.globalVariables.pukka_normalizelink || true; liberator.commands .addUserCommand(['pukka', 'pu'], 'Post to Pukka bookmark', function(args) { if (!liberator.buffer.title || !liberator.buffer.URL || liberator.buffer.URL == 'about:blank') { return false; } var scheme = 'pukka:'; var title = encodeURIComponent(liberator.buffer.title); var url = encodeURIComponent(liberator.buffer.URL); var extend = encodeURIComponent(window.content.getSelection().toString() || ''); if (args) { url = encodeURIComponent(args); } liberator.open(scheme + 'url=' + url + '&title=' + title + '&extended=' + extend); }, { completer: function(filter) { var complist = []; complist.push([liberator.buffer.URL, 'Raw URL: ' + liberator.buffer.title]); if (useNormalizelink) { complist.push([getNormalizedPermalink(liberator.buffer.URL), 'Normalized URL: ' + liberator.buffer.title]); } // detect rel="bookmark" var elem; var relb = liberator.buffer.evaluateXPath( '//*[contains(concat(" ", normalize-space(@rel), " "), " bookmark ")]', null, null, true); while ((elem = relb.iterateNext()) !== null) { complist.push([elem.toString(), '@rel="bookmark" URL: ' + elem]); } return [0, complist]; } }); liberator.mappings .addUserMap([liberator.modes.NORMAL], [''], 'Post to Pukka', function() { var urlarg = liberator.globalVariables.pukka_normalizelink ? getNormalizedPermalink(liberator.buffer.URL) : liberator.buffer.URL; liberator.commandline .open(':', 'pukka ' + urlarg, liberator.modes.EX); }, {}); // copied from Trapezoid's direct_hb.js function getNormalizedPermalink(url) { var xhr = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"] .createInstance(Components.interfaces.nsIXMLHttpRequest); xhr.open('GET', 'http://api.pathtraq.com/normalize_url2?api=json;url=' + encodeURIComponent(url), false); xhr.send(null); if (xhr.status != 200) { liberator.echoerr('Pathtraq: FAILED to normalize URL!!'); return url; } return window.eval('(' + xhr.responseText + ')'); //return xhr.responseText.substring(1, xhr.responseText.length - 1); //api=xml;return xhr.responseXML.documentElement.getElementsByTagName('url').item(0).childNodes.item(0).nodeValue; } })(); path: root/feeder.js
blob: dde8a6f279c9c20ee1a5e770b8ef71caf648b705 (plain)
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
/**
 * ==VimperatorPlugin==
 * @name           feeder.js
 * @description    This plugin allows you to give feed to some feed reader.
 * @description-ja 指定した feed reader にフィードを追加
 * @author         janus_wel <janus_wel@fb3.so-net.ne.jp>
 * @version        0.10
 * @minVersion     2.0pre
 * ==/VimperatorPlugin==
 *
 * LICENSE
 *   New BSD License
 *
 * Usage:
 *  in all case, when option 'newtab' is 'all',
 *  subscribe page is opened in new tab.
 *
 *  :feedgooglereader, :fgr
 *      -> feed Google Reader
 *         http://www.google.com/reader
 *
 *  :feedfastladder, :ffl
 *      -> feed Fastladder
 *         http://fastladder.com
 *
 *  :feedlivedoorreader, :fldr
 *      -> feed livedoor Reader
 *         http://reader.livedoor.com/
 *
 * HISTORY
 *  2008/11/10  ver 0.10    - initial written
 *
 * */

( function () {

// for Google Reader
commands.addUserCommand(
    ['feedgooglereader', 'fgr'],
    'feed current site URL to Google Reader',
    function () {
        let doc = content.document;
        let b = doc.body;
        let GR________bookmarklet_domain = 'http://www.google.com';
        if (b && ! doc.xmlVersion){
            let z = doc.createElement('script');
            z.src = 'http://www.google.com/reader/ui/subscribe-bookmarklet.js';
            z.type = 'text/javascript';
            b.appendChild(z);
        }
        else {
            liberator.open(
                'http://www.google.com/reader/view/feed/' + encodeURIComponent(liberator.modules.buffer.URL),
                (options['newtab'] && options.get('newtab').has('all'))
                    ? liberator.NEW_TAB
                    : liberator.CURRENT_TAB
            );
        }
    },
    {}
);

// for Fastladder
commands.addUserCommand(
    ['feedfastladder', 'ffl'],
    'feed current site URL to Fastladder',
    function () {
        liberator.open(
            'http://fastladder.com/subscribe/' + liberator.modules.buffer.URL,
            (options['newtab'] && options.get('newtab').has('all'))
                ? liberator.NEW_TAB
                : liberator.CURRENT_TAB
        );
    },
    {}
);

// for livedoor Reader
commands.addUserCommand(
    ['feedlivedoorreader', 'fldr'],
    'feed current site URL to livedoor Reader',
    function () {
        liberator.open(
            'http://reader.livedoor.com/subscribe/' + liberator.modules.buffer.URL,
            (options['newtab'] && options.get('newtab').has('all'))
                ? liberator.NEW_TAB
                : liberator.CURRENT_TAB
        );
    },
    {}
);
})();
// vim:sw=4 ts=4 et: