diff options
author | anekos | 2008-11-26 09:01:56 +0000 |
---|---|---|
committer | anekos | 2008-11-26 09:01:56 +0000 |
commit | fe2c862bbe03d8c39f02dac9370047b5092ac5c6 (patch) | |
tree | f0e36fd8c358a05642ee065b081256f95ee1ce83 | |
parent | 433643df1790f5f8ad310c6f860973522551f5fa (diff) | |
download | vimperator-plugins-fe2c862bbe03d8c39f02dac9370047b5092ac5c6.tar.bz2 |
Initial release
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@24953 d0d07461-0603-4401-acd4-de1884942a52
-rw-r--r-- | hd-youkai-youtube.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/hd-youkai-youtube.js b/hd-youkai-youtube.js new file mode 100644 index 0000000..526088a --- /dev/null +++ b/hd-youkai-youtube.js @@ -0,0 +1,52 @@ +// ==VimperatorPlugin== +// @name YouTube HD +// @description High-Quality Movie Monster YoUTuBe +// @description-ja $B9b2h<AME2x$h$&$D$Y(B +// @license Creative Commons 2.1 (Attribution + Share Alike) +// @version 1.0 +// @author anekos (anekos@snca.net) +// @minVersion 2.0pre +// @maxVersion 2.0pre +// ==/VimperatorPlugin== +// +// Links: +// + +(function () { + + function monsterize (url) { + if (url.match(/&fmt=22/)) + return url; + if (url.match(/^http:\/\/(?:[^.]+\.)?youtube\.com\/watch/)) + return url + '&fmt=22'; + let m = url.match(/^http:\/\/(?:[^.]+\.)?youtube\.com\/.*\?.*v=([^&]+)/); + if (m) + return 'http://www.youtube.com/watch?v=' + m[1] + '&fmt=22'; + return url; + } + + let original = liberator.plugins.hd_youkai_youtube; + if (!original) { + liberator.plugins.youtubehd = original = { + open: liberator.open, + followLink: buffer.followLink + }; + } + + liberator.open = function (urls) { + if (typeof urls === 'string') + arguments[0] = monsterize(urls); + else + arguments[0] = urls.map(monsterize); + return original.open.apply(this, arguments); + }; + + buffer.followLink = function (elem) { + if (elem.href) + elem.href = monsterize(elem.href); + original.followLink.apply(this, arguments); + }; + +})(); + +// vim:sw=2 ts=2 et si fdm=marker: |