diff options
author | anekos | 2011-04-14 21:36:21 +0900 |
---|---|---|
committer | anekos | 2011-04-14 21:37:04 +0900 |
commit | 4c46ab6a395beccf5004d2f285d9df470aad1446 (patch) | |
tree | 1d8ccb86a5140eb51d4d12e37c478ed457def851 | |
parent | f296e7dfca02e8dba554666b76670977d3b4440d (diff) | |
download | vimperator-plugins-4c46ab6a395beccf5004d2f285d9df470aad1446.tar.bz2 |
残念なAPIに対応
-rw-r--r-- | pino.js | 30 |
1 files changed, 26 insertions, 4 deletions
@@ -35,13 +35,12 @@ var PLUGIN_INFO = <name>{NAME}</name> <description>Open livedoor Reader pinned items</description> <description lang="ja">livedoor Reader でピンを立てたページを開く</description> - <minVersion>2.3</minVersion> - <maxVersion>2.4</maxVersion> + <minVersion>3.0</minVersion> <updateURL>https://github.com/vimpr/vimperator-plugins/raw/master/pino.js</updateURL> <require type="plugin">_libly.js</require> <author mail="snaka.gml@gmail.com" homepage="http://vimperator.g.hatena.ne.jp/snaka72/">snaka</author> <license>MIT style license</license> - <version>1.4.0</version> + <version>1.4.1</version> <detail><![CDATA[ == Subject == Open livedoor Reader pinned items. @@ -285,7 +284,7 @@ let self = liberator.plugins.pino = (function() { liberator.echoerr("Can't get pinned list. Maybe you should login to livedoor."); return; } - result = liberator.eval(data.responseText); + result = unentifyObjectValues(liberator.eval(data.responseText)); }); request.addEventListener("onFailure", function(data) { liberator.echoerr("Can't get pinned list!!!"); @@ -331,6 +330,29 @@ let self = liberator.plugins.pino = (function() { function isLoginPage(response) response.responseText.substr(0, 5) == '<?xml' + function unentify(s) { + const EntityTable = {amp: '&'}; + return s.replace( + /&([a-z-A-Z]+);/g, + function (whole, name) (name in EntityTable ? EntityTable[name] : whole) + ); + }; + + function unentifyObjectValues(obj) { + let result = Object.create(obj); + for (let [n, v] in Iterator(obj)) { + switch (typeof v) { + case "object": + result[n] = unentifyObjectValues(v); + break; + case "string": + result[n] = unentify(v); + break; + } + } + return result; + } + // }}} // API /////////////////////////////////////////////////////////// {{{ return { |