読者です 読者をやめる 読者になる 読者になる

素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

AutoPagerize for SeaHorseをwedata互換形式に変換する

javascript

こんな感じにすればいい。
あとは、jQueryか、か、404 · GitHubあたりを@requireで取り込めば、Greasemonkey版のAutoPagerizeSeaHorse版のSITEINFOの橋渡しができそう。

const SITEINFO_URLS = [
  'http://wikiwiki.jp/958/?cmd=source&page=AutoPagerize%2FSITEINFO',
  'http://wikiwiki.jp/958/?cmd=source&page=AutoPagerize%2FSITEINFO2'
];

var result = [], done = 0;

SITEINFO_URLS.forEach(function (url) {
  GM_xmlhttpRequest({
    url: url,
    method: "get",
    onload: function (res) {
      var source = new DOMParser().parseFromString(res.responseText, "text/xml") // overrideMimeType->responseXML can't use
            .getElementById("source").textContent.split("\n"),
          o;
      source.forEach(function (str) {
        var m;
        if (m = /^\s*\*\*\s*([^\[]*)/.exec(str))
          result.push({name: m[1], data: o = {}});
        else if (m = /\s*(\w+):\s*'(.*)',/.exec(str))
          o[m[1]] = m[2];
      });
      if (++done == SITEINFO_URLS.length)
        unsafeWindow.x = (JSON.stringify(result));
    }
  });
});