BMS, Movie, Illustrations, Programming

[JavaScript] MakeGirls.moe で延々と画像を生成するブックマークレット

タイトルの通りです。WebGANというのを使うとローカルで画像を生成できるらしいので、サーバー負荷が高くなりすぎてサーバーに怒られることはないと思います、多分。

ところで今までsetIntervalには文字列を渡すものだと思っていたのですが、setIntervalにはfunctionを渡せるそうです。知りませんでした・・・。

javascript:void((function() {
  setInterval(function() {
    var gen_button =
    Array.from(document.getElementsByTagName('button'))
    .filter(x => x.innerHTML.indexOf('Genera') >= 0)[0];
    /* Generate or Generating */

    if(gen_button.getAttribute('disabled') == null) {
      /* save image */
      var imgs = document.getElementsByTagName('img');
      var result_img = imgs[0];
      var img_index = Array.from(imgs).length - 2 + 1;
      if(result_img) {
        var dataurl = result_img.src;

        var image = new Image();
        image.src = dataurl;
        document.body.appendChild(image);

        var link = document.createElement('a');
        link.href = dataurl;
        link.download = 'makegirls_generated_' + img_index + '.png';
        document.body.appendChild(link);
        link.click();
      }

      /* next */
      gen_button.click();
    }
  }, 1000);
})())

これをアドレスバーに貼り付けると、

こんな感じになります。(Chromeでの動作を確認しております。)また、複数ファイルのダウンロードの許可を求めてくる場合があるので、許可しておいてください。

あと、先程気付いたのですが、

なんで今まで気付かなかったんですかね(弱い)。