レート戦ロビー用スクリプト

前期をやっていてレート戦をする時に相手のレートがロビーで確認出来れば便利なのに。
という事を感じた・他の人も言っていたのでスクリプトを作り公開ました。

自分が公開しなくても次期に実装リニューアルされるかもしれないと思っていましたが、
まだ今期では実装されていないので少しの需要を見込んで公開しておきます。
        
  - なぜデフォルトでロビーにレートを載せてないのか?
    載せない理由がいくつか考えられるので、公開後このスクリプトが動作しないようになる可能性もあると思います。
    動作しなくなった時点で私のサポートは終了だと思ってください。
    単純に実装の優先度が低かっただけならその内のちょうさんが正式にやってくれる思うので、その時はスクリプトを停止させてください。
    サイトデザインが変わっても動作するような柔軟な作りではないのでその場合もスクリプトを停止させてください。

使うとこんな感じになります。

http://i.imgur.com/FzK7t52.png

ロビーで各プレイヤーの現在のレート、そのルームの対戦結果、コメント数()、

が確認出来ます。?????の相手を確認するような機能はありません。


使用方法
このスクリプトはPCのFirefoxとChromeのみで動作確認をしています。他は知りません。
アドオンを使います。各アドオンのインストール・使用方法については紹介しません。私がここで説明するより自分で検索した方が、理解しやすいと思います。
対戦前にレート制限で弾かれるかどうかだけを確認したい場合は軽量版を使うと良いと思います。


【Firefox】
    Greasemonkey https://addons.mozilla.org/ja/firefox/addon/greasemonkey/
    インストール後 アドオンマネージャー > ユーザースクリプト > ユーザースクリプト新規作成
    名前・名前空間に何でも良いので入力しOKを押す。
    書かれているテンプレートを一度全て削除する。スクリプトを丸々コピペ。保存。
   
【Chrome】
    Tampermonkey https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo
    インストール後Tampermonkeyをクリック(デフォルトはロケーションバーの横?) > 新規スクリプトを追加
    書かれているテンプレートを一度全て削除する。スクリプトを丸々コピペ。保存。

【Opera、他ブラウザ】
    ユーザースクリプトが使用出来るようになるソフトを入れれば使えると思います。が完璧に動作するかはわかりません。
    FirefoxかChromeを入れる方が結果的に簡単で早かったということになると思うので、普段どちらも使っていない人は
    スマメイトの為だけにどちらかのブラウザを使ってください。


-----以下コピペするスクリプト-------------------------------------
// ==UserScript==
// @name        materate
// @namespace   sumamate
// @include     http://sumamate.com/lobby.php*
// @version     1
// @grant       none
// ==/UserScript==
$(function () {
  var ths = $('table.table-condensed.table-hover tr th');
  ths.eq(0).css('width', '5%');
  ths.eq(1).css('width', '5%');
  ths.eq(2).css({
    width: '30%',
    padding: '0px 0px 0px 20px'
  });
  ths.eq(3).css('width', '30%');
  ths.eq(4).css('width', '10%');
  var roomlabels = $('table.table.table-condensed.table-hover tr span');
  var vsrooms = $('table.table.table-condensed.table-hover tr td:nth-child(5n+2)');
  var player1s = $('table.table.table-condensed.table-hover tr td:nth-child(3n)');
  var player2s = $('table.table.table-condensed.table-hover tr td:nth-child(4n)');
  player1s.append('<div class=\'read-rate1\' style=\'float:left; margin-right:5px; padding:0px 0px 0px 14px;\'></div><div class=\'read-result1\' style=\'float:left; margin-right:10px;\'></div>');
  player2s.append('<div class=\'read-rate2\' style=\'float:left; margin-right:5px;\'></div><div class=\'read-result2\' style=\'float:left; margin-right:10px;\'></div>');
  vsrooms.append('<div class=\'read-comments\' style=\'float:right; margin-left:-10px;\'></div>');
  var rabelArray = roomlabels;
  $(rabelArray).each(function (i, val) {
    var selp1 = $('.read-rate1').eq(i);
    var selp1r = $('.read-result1').eq(i);
    var selp2 = $('.read-rate2').eq(i);
    var selp2r = $('.read-result2').eq(i);
    var selcom = $('.read-comments').eq(i);
    var roomlabel = roomlabels.eq(i);
    if (roomlabel.hasClass('label-default')) {
      var vsroom = vsrooms.eq(i);
      var link = vsroom.find('a').attr('href');
      $.ajax({
        url: link,
        type: 'GET',
        dataType: 'html',
      }).done(function (data) {
        var come = $(data).find('div.comment.well');
        selcom.html('(' + come.length + ')');
        selp1.html($('table.table tr td:eq(5)', $(data)).html());
        selp1r.html($('table.table tr td:eq(7)', $(data)).html());
        selp2.html($('table.table tr td:eq(13)', $(data)).html());
        selp2r.html($('table.table tr td:eq(15)', $(data)).html());
        if (selp1r.text() === '勝ち') {
          selp1r.css('color', 'red');
        } else if (selp1r.text() === '負け') {
          selp1r.css('color', 'blue');
        }
        if (selp2r.text() === '勝ち') {
          selp2r.css('color', 'red');
        } else if (selp2r.text() === '負け') {
          selp2r.css('color', 'blue');
        }
      }).fail(function (data) {
      });
    } else {
      var player1 = player1s.eq(i);
      var p1link = player1.find('a');
      var player2 = player2s.eq(i);
      var p2link = player2.find('a');
      if (p1link.length > 0) {
        var selrate = '';
        selrate += ' table.table.pf_table tr td:eq(3)';
        var playerI1 = $('.read-rate1').eq(i);
        var playerI2 = $('.read-rate2').eq(i);
        playerI1.load(p1link.attr('href') + selrate);
        playerI2.load(p2link.attr('href') + selrate);
      }
    }
  });
});
-----ここまで--------------------------------------------------


軽量版(上から5番目まで)
-----以下コピペするスクリプト-------------------------------------
// ==UserScript==
// @name        materate
// @namespace   sumamate
// @include     http://sumamate.com/lobby.php
// @version     1
// @grant       none
// ==/UserScript==
$(function () {
  var player1s = $('table.table.table-condensed.table-hover tr td:nth-child(3n)');
  for (var i = 0; i < player1s.length; i++)
  {
    var player1 = player1s.eq(i);
    var link = player1.find('a');
    player1.append('<div class=\'read-rate\' style=\'float:left; margin-right:10px;\'></div>');
    if (link.length > 0)
    {
      var selrate = '';
      selrate += ' table.table.pf_table tr td:eq(3)';
      var playerI = $('.read-rate').eq(i);
      playerI.load(link.attr('href') + selrate);
    } else {
      continue;
    }
  }
});
-----ここまで--------------------------------------------------


動作しない・調べても使い方が分からない等あったらコメントしておいてください。

他にももっとこういう機能があれば等もコメントしておけば誰かに届くかも?


2016年4月28日 23時11分に投稿

お気に入りしたユーザー

コメント

コメントはありません。