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

エロサイトの作り方

2013年11月から勉強しながらエロサイトを作っています。

ACR WEBとi2iのアクセスランキングを設置しているサイトで数値を含む全ランキングを見るブックマークレット

JavaScript サイト

手抜きして前の記事の題名を持ってきたので長い。

自分でよく使うのでブックマークレットにしました。ちなみに、ブックマークレットは初めて作りました。

特徴

  • PC用とスマホ用、ACR WEBとi2i併用など、複数設置してても全部探す
  • window.open版は複数見つかるとブラウザにブロックされる(どう回避するんだろうか…)

ブックマークレット(コンソールに出す版)

javascript:(function(){var list=[{xpath:'//script[contains(@src,"ziyu.net/rank.php")]',src:/rank.php\?(.+)/,dest:'html/$1.html'},{xpath:'//script[contains(@src,"i2i.jp/view/index.php")]',src:/index.php\?(.+?)&.+/,dest:'longview/$1.html'}];list.forEach(function(pattern){var result=document.evaluate(pattern.xpath,document,null,5);var script=result&&result.iterateNext();while(script){var link=script.getAttribute('src').replace(pattern.src,pattern.dest);console.log('ranking:',link);/*window.open(link);*/script=result.iterateNext();}});})()

ブックマークレット(window.openする版)

javascript:(function(){var list=[{xpath:'//script[contains(@src,"ziyu.net/rank.php")]',src:/rank.php\?(.+)/,dest:'html/$1.html'},{xpath:'//script[contains(@src,"i2i.jp/view/index.php")]',src:/index.php\?(.+?)&.+/,dest:'longview/$1.html'}];list.forEach(function(pattern){var result=document.evaluate(pattern.xpath,document,null,5);var script=result&&result.iterateNext();while(script){var link=script.getAttribute('src').replace(pattern.src,pattern.dest);console.log('ranking:',link);window.open(link);script=result.iterateNext();}});})()

整形版

javascript:(function() {
  var list = [
    {xpath:'//script[contains(@src,"ziyu.net/rank.php")]', src:/rank.php\?(.+)/, dest:'html/$1.html'},
    {xpath:'//script[contains(@src,"i2i.jp/view/index.php")]', src:/index.php\?(.+?)&.+/, dest:'longview/$1.html'}
  ];
  list.forEach(function (pattern) {
    var result = document.evaluate(pattern.xpath, document, null, 5);
    var script = result && result.iterateNext();
    while (script) {
      var link = script.getAttribute('src').replace(pattern.src, pattern.dest);
      console.log('ranking:', link);
      /*window.open(link);*/
      script = result.iterateNext();
    }
  });
})()

あと、JavaScriptXPathを使うのも初めてだったけど、なんでイテレーターにhasNextみたいなのがないの? 普通にforで回した方が楽だったわ。