Make Link で跳.jpを使えるようにするパッチ

Twitter 眺めてたら跳.jpなるURL短縮が出たようなので、昨日弄った勢いで、Make Link (Firefox のアドオン)で跳.jpを使えるようにするパッチを書いてみた。

設定に %cho.jp% とすると、跳.jp で短縮されたURLに置換されます。たとえば「%text% %cho.jp%」をフォーマットにしておくと「..たれろぐ.. http://沒.跳.jp」みたいになります。


たぶん昨日のパッチあてとかないとダメ。あと、jsファイルの文字コードUTF-8で。

diff -urN makelink.orig/content/makelink/link_maker.js makelink/content/makelink/link_maker.js
--- makelink.orig/content/makelink/link_maker.js	Fri Dec 17 22:27:42 2010
+++ makelink/content/makelink/link_maker.js	Sun Dec 19 22:54:07 2010
@@ -144,6 +144,14 @@
           }
           copyText += shortenedUrl;
           break;
+        case 'cho.jp':
+          var shortenedUrl = this.urlShortener_.getChojpShortenedUrl(info['url']);
+          if (!shortenedUrl) { 
+            this.logger_.warning('Failed to fetch shortened URL');
+            return false;
+          }
+          copyText += shortenedUrl;
+          break;
         case 'input':
           copyText += prompt(format +
               '\n\nPlease enter the %input% text for\n--\n' +
diff -urN makelink.orig/content/makelink/url_shortener.js makelink/content/makelink/url_shortener.js
--- makelink.orig/content/makelink/url_shortener.js	Fri Dec 17 22:15:18 2010
+++ makelink/content/makelink/url_shortener.js	Sun Dec 19 22:53:59 2010
@@ -167,3 +167,17 @@
     return null;
   }
 };
+
+net.soylentred.makelink.UrlShortener.prototype.getChojpShortenedUrl =
+    function(url) {
+  this.logger_.logCall('getChojpShortenedUrl', arguments);
+  request = new XMLHttpRequest();
+  request.open('GET', 'http://跳.jp/api?url=' + escape(url), false);
+  request.send(null);
+  if (request.status != 200 || !request.responseText) {
+    this.logger_.warning('Failed to fetch 跳.jp shortened URL.' +
+        ' Response code ' + request.status);
+    return null;
+  }
+  return request.responseText;
+};