メガカイロスは強い

いろいろ趣味について書く ツイッター→@ptrst102

ブラウザを自動操作して、シティリーグに自動でエントリーする裏技

依頼を受けたので作りました。

Tampermonkeyの導入など基本的な部分は以下の記事を参照
ptrst102.hatenadiary.jp

今回は「東京か埼玉の会場ならどこでもいいからエントリーしたい」という人のためのスクリプトです。

// ==UserScript==
// @name         シティリーグエントリー自動化
// @namespace    http://ptrst102.hatenadiary.jp/
// @version      0.1
// @description  シティリーグエントリー自動化
// @author       @ptrst102
// @match        https://event.pokemon-card.com/prior-reception-gym-events/*
// @grant        none
// @require      http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js
// ==/UserScript==
(function () {
  $.wait = function (msec) {
    var d = new $.Deferred();
    setTimeout(function () {
      d.resolve(msec);
    }, msec);
    return d.promise();
  };

  //ボタンを探す
  $(".eventDetailContents__leagueListBoxColumns").each(function (i, elem) {
    if (
      $(elem)
        .text()
        .match(/(東京都|埼玉県)/)
    ) {
      console.log($(elem).text());
      //ボタンが「締め切り」の場合、何もしない
      //そうでなければ、参加申請処理を行う
      if ($(elem).text().match(/締め切り/)) {
      } else {
        $(elem)
          .find(".eventDetailContents__leagueListBoxButtonTemporaryEntry")
          .click();
        $.wait(500).done(function () {
          $(".popup__formCheckBoxText--small").click();
          $.wait(500).done(function () {
            $(".js-privacyCheckNeeded__button").click();
            $.wait(1000).done(function () {
              if (
                $("body")
                  .text()
                  .match(
                    /定員に達したため、エントリーすることが出来ませんでした。/
                  )
              ) {
                window.location.reload(true);
              } else {
                window.location.href = "http://bit.ly/2KsphU4";
              }
            });
          });
        });
      }
    }
  });

  //リロード
  $.wait(1000).done(function () {
    window.location.reload(true);
  });
})();

スクリプトを導入した状態でシティリーグのページを開くとうまくいきます。

参加申請ボタンを押す速度が手動より上がるようブラウザの操作を自動化しているだけ(サーバへの負荷を抑えるため、ブラウザを更新する頻度は手動より低い)なので、当たり前ですがサーバが落ちているときに使っても意味ないです。

うまく使ってください。