集計厨特製ランキング集計ツール


月間ランキング集計ツール(version 3)

●説明

アップロードされた天鳳のログファイルから1ヶ月単位で個室戦のランキングを集計するツールです
(ログファイル自体はHP管理者自身が自分でダウンロードして自分でアップロードする必要があります)


●手順

無料のものでも構わないのでHP(ホームページ)サービスに登録してください
その際の注意点ですが
ログファイルをそのままアップロードした場合、1か月分は20MB前後になると予想されますので30MB以上の容量があるサービスを利用するとよいでしょう
アップロードにはFTPアップロードが便利ですのでFTPアップロードのサービスがあるところをオススメします
またファイルのアップロードに際し、jsファイルやcssファイル、logファイルなどのアップロードが禁止されていないHPサービスを選んでください

いずれかのファイルをダウンロードしてください
shukei_ss.zip (スタイルシート有り。通常ver)
shukei_ns.zip (スタイルシート無し。通常ver)
shukei_ss_js.zip (スタイルシート有り。JS別ver)
shukei_ns_js.zip (スタイルシート無し。JS別ver)

※通常verとJS別verの主な違いはJavascriptのコードがshukei.htmの中か外の違いです

上記4つのzipファイルをshukei_v3.zipにまとめてあります
shukei_v3.zip

ダウンロードしたzipファイルを解凍(展開)すると以下のファイルが出力されます
[通常ver JS別ver 共通]
説明.txt (このファイルです。このファイルはアップロードする必要はありません)
shukei.htm (ランキングを表示するページ。必須です)
style.css (スタイルシート有りの場合は必須です。スタイルシート無しの場合は要りません)
[JS別verのみ]
xmlhttp.js (JS別verでは必須です。通常verでは必要ありません)
cookie.js (JS別verでは必須です。通常verでは必要ありません)
getset.js (JS別verでは必須です。通常verでは必要ありません)
setsyv.js (JS別verでは必須です。通常verでは必要ありません)
shukei.js (JS別verでは必須です。通常verでは必要ありません)
commu.js (JS別verでは必須です。通常verでは必要ありません)
formpart.js (JS別verでは必須です。通常verでは必要ありません)

以上の
通常verなら2つ(または1つ)のファイルを
JS別verなら9つ(または8つ)のファイルを
HPの掲載したいディレクトリ(フォルダ)にアップロードしてください

これで集計ツールの設置は完了です


続いてログファイルを用意します

ログファイルは http://tenhou.net/sc/raw/ に掲載されている
ダウンロードするのは個室戦のもので ファイル名が sca から始まり .log.gz で終わるファイルをダウンロードします
http://tenhou.net/sc/raw/ に掲載されているものより過去のものは
http://tenhou.net/sc/raw/ の下のほうにダウンロードの仕方が書いてあります
http://www36.atwiki.jp/moitameibo/pages/557.html にある 個室戦ログ取得用リンク一覧.htm を使うというのも一つの手です

ダウンロードしたファイルは gzファイルで圧縮されていますので解凍(展開・伸張とも言う)する必要があります
解凍に使うソフトウェアは Vector(http://www.vector.co.jp/)や 窓の杜 (http://www.forest.impress.co.jp/)などで見つけて使ってください
LhaplusやLhazや解凍レンジやLhacaデラックス版など色々あります(ちなみに筆者はLhaplusというソフトウェアを使っています)


さてダウンロードしたログファイルを解凍ソフトで解凍すると logファイルが出力されたと思います
その logファイルを先ほど集計ツールをアップロードした場所と同じディレクトリにアップロードしてください

なお集計のためには、その月の1日(ついたち)の分から順番に揃っている必要があります
(日付の途中が抜けているとその日付前までしか集計されません)


ツールとログファイルがアップロード完了しましたら
さっそくサイトを開いてちゃんと集計されるか確認しましょう
(ダメだったらスレで訴えるか諦めてくださいな)


以降は集計したい日のログファイルをダウンロード&解凍してはアップロードするという毎日です
頑張ってください

留意すべき点としてはHPサービスのサイズ制限を気にしてください
見る必要の無くなった月のログファイルをすべて削除するなどで対応してください



●FTPアップロードについて
Vectorや窓の杜などのサイトでFFFTP等のソフトウェアを利用するのも一つの手です
また、WindowsXPなら「マイ ネットワーク」の「ネットワークプレースの追加」にFTPの登録をするとドラッグ&ドロップで簡単にアップロードできます



●手間かけるかい?

ログファイルを集計したい個室以外のログを削除するとファイルサイズを減らせます
(手作業だとかなり手間です。便利なソフトウェアを見つけましょう。編集する際、文字コードはUTF-8に必ずしてください)

また上記のように編集したファイルをさらに
ひと月分のログを1日(ついたち)のログにまとめてしまい2日(ふつか)以降のログを削除すると
ファイル数が減りディレクトリ内がすっきりするかもしれません(気分です)

同様に特定の人物の対戦だけや特定のルールの対戦だけ抽出編集する

1日のログにに1月のログ全部、2日のログに2月のログ全部・・・とやって
どこか適当な月の集計で年間ログを表示するなんてことも

などなど他にも使い方があるかもしれませんが
まぁ面倒でしょうね


●パラメータについて
version3ではURLにパラメータを付与することによって色々設定できます
リンクを貼る場合などに表示したいところをこれにより指定できるようになります
パラメータを設定しない場合はデフォルトの設定になります
(別途おまけとしてパラメータ指定URL作成ファイルも同封してあります。そちらを使えば簡単です)

パラメータとは?
http://xxx.yyy.zzz/shukei.htm?y=2011&m=3&lby=l2260
                              ~~~~~~~~~~~~~~~~~~~~~
                              ↑この部分を私はパラメータと勝手に呼んでいます

▼設定できるパラメータ
パラメータ    意味                             指定例
y             集計する年                        y=2010      2010年
m             集計する月                        m=12        12月
lby           個室ロビー名                      lby=l2260   個室ロビー L2260
calc          ページ表示すぐに集計する          calc        
noname        除外リストにNoNameを加える        noname
sengetsu      集計する年月を先月に設定する      sengetsu
              (但し y や m を指定していると
                 そこから数えて先月になる)
log           ログの表示するかの設定             log=1      全てのログを表示
              (0-しない 1-全て 2-指定ルールのみ)
sanma         3人麻雀を指定する                  sanma
lng           集計する対戦の長さの指定           lng=2      半荘戦の対戦を集計
              (0-両方 1-東風戦のみ 2-半荘戦のみ)
rule          喰いや赤のルールの指定             rule=1     喰い有り 赤有りの対戦を集計
              (0-全て 1-喰有赤有 2-喰有赤無
                                 3-喰無赤無 )
min           規定対戦数の最低対戦数の設定       min=5      5戦以上の人を集計
last          規定対戦数で「最後の」を設定       last
cnt           規定対戦数の設定                   cnt=10     10戦まで

具体例
http://xxx.yyy.zzz/shukei.htm?sengetsu&min=5&calc&lng=1&rule=3
先月の4人麻雀(東風戦喰無赤無)の5戦以上の人を集計する設定にし、ページ表示後すぐに集計する

http://xxx.yyy.zzz/shukei.htm?y=2010&m=5&sanma&min=5&cnt=20&noname
2010年5月の3人麻雀の5戦以上のNoName以外の人を最初の20戦まで集計する設定にする
 
shukei.htm?lby=c1234&log=2&calc&noname&min=10&last&cnt=10&lng=2&rule=2
今月の大会ロビーC1234の4人麻雀(半荘戦喰有赤無)の
10戦以上のNoName以外の人の最後の10戦までを集計する設定にし、
ページ表示後すぐに集計する。また4人麻雀(半荘戦喰有赤無)のログだけ表示する


●その他

  • jsファイルがをひとつのフォルダにまとめたい場合 [JS別ver]
(この作業にはHTMLの編集の知識が必要かもしれません)

shukei.htmにある<script>タグのjsファイルへのリンク先を全て修正してください

修正例:jsフォルダにjsファイルを保存している場合

<script type="text/javascript" src="xxxxx.js"></script>
<script type="text/javascript" src="js/xxxxx.js"></script>



  • ログファイルをひとつのフォルダにまとめたい場合 [通常ver JS別ver 共通]
(この作業にはJavascriptの知識が必要です)

通常verの場合shukei.htm、JS別verの場合commu.js の各ファイルの
Javascriptの記述部の中の makeLogURL ファンクションの中にある
logplaceという変数の内容を変えることで実現できます

修正例:logフォルダにログファイルを保存している場合

var logplace = "";
var logplace = "log/";



  • ログファイルを年月別のフォルダにまとめたい場合 [通常ver JS別ver 共通]
(この作業にはJavascriptの知識が必要です)

通常verの場合shukei.htm、JS別verの場合commu.js の各ファイルの
Javascriptの記述部の中の makeLogURL ファンクションの中にある
logplaceという変数の内容を変えることで実現できます

修正例:2010年5月のログをlog201005フォルダに保存している場合

var logplace = "";
var logplace = "log" + y + (m<10?"0":"") + m + "/";



  • ログファイル名を任意のファイル名にしたい [通常ver JS別ver 共通] ※非推奨
(この作業にはJavascriptの知識が必要です)

非推奨です
通常verの場合shukei.htm、JS別verの場合commu.js の各ファイルの
Javascriptの記述部の中の makeFileName ファンクションを編集することで実現できます
このツールは存在しないログへアクセスしたときにログ取得処理を終了し集計を開始します
makeFileName ファンクションの引数 d (日付)のみ変化します(1から1ずつ増加していきます)
任意のファイル名にする場合 引数 d の値によって存在しないログファイル名を返すようにしてください

修正例:ログファイル名をyyyy-m-d.txtにする場合

function makeFileName(y, m, d) {
 return "sca" + y + "" + (m<10?"0":"") + m + "" + (d<10?"0":"") + d + ".log";
}
function makeFileName(y, m, d) {
 return y + "-" + m + "-" + d + ".txt";
}




  • もっと色々といじりたい場合 [通常ver JS別ver 共通]

好きなようにいじって構いませんが
その結果どうなろうとも私は一切知りません
全て自己責任において行ってください



●ツールの作成に際して

外観、集計につきましては天鳳の集計ツールをほとんどそのまま使いました(ほとんど転用です)

オンライン対戦麻雀 天鳳 / 集計ツール http://tenhou.net/ranking_tool.html


また、ログデータの読み込み処理には下記のサイトを参考にさせていただきました(こちらもほとんど転用です)



クッキーに関する処理は下記のサイトを参考にさせていただきました(こちらもほぼ転用です)

とほほのCookie入門 http://www.tohoho-web.com/wwwcook.htm



9割以上が上記らの転用なので私自身は特にすごいことはやってないのでした


●免責事項

当ツールを利用することにより発生するいかなるトラブルにおいても私は一切責任を負いません。
全て利用者の自己責任において使用してください。


履歴



● v2 から v3 への変更点・改良点・修正点

[通常ver]
jsファイルを無くしJavascriptを全て shukei.htm に記載しファイル数を減らした

[JS別ver]
getset.js のファンクション名をより分かりやすいよう改名
shukei.js の通信部処理とフォーム部処理をそれぞれ commu.js formpart.js に分離
また shukei.htm の月一覧をJavascriptで生成する意味は無いので setsmv.js を削除

[通常ver JS別ver 共通]
汎用性を高めてより多くの人が使えるように喪雀専用化を廃止(『喪雀』の文字を消し、個室ロビーを入力可能に戻した)
集計のルールを細かく設定できるように変更
集計対象のログだけを表示できるように変更
URLにパラメータを付与することにより固定の設定で shukei.htm を開けるようにした(クッキー保存でないためリンクにより他者と共通で使える)
除外者リストをクッキーに保存できるようにした
設定のクリアボタンを設置した(HTMLでのデフォルトに再設定される。年月は2007年1月になってしまう)


● v1 から v2 への変更点・改良点・修正点

ブラウザを閉じてもキャッシュを消さない設定の場合
ダウンロードされた古いログがそのまま利用される問題に対処(対症療法的)

Javascriptのコードを見やすくなるよう整理した
(共通処理のファンクション化、コメントの追加、必要ないコメント(祝儀の表示など)の削除 等)

Javascriptを shukei.htm からjsファイルに分離した JS別ver を作成

喪雀専用化し タイトル等に『喪雀』の文字を入れ、個室ロビーをL2260固定に



● v0 から v1 への変更点・改良点・修正点

存在しないファイルへアクセスした場合
XMLHttpRequest で返されるステータスコードが
アップロードされたサイトによって違うことにより
集計が開始されない問題に対処(対症療法的)

スタイルシートの有り無しにファイルを分ける


● v0 誕生

有用だったランキング集計サイトが無くなり
手動でランキング集計し転載する人の手間が少しでも軽くなればと思い作り始める

天鳳サイトの集計ツールをそのまま転用し
集計元となるログデータを同一サーバー上にアップロードして
XMLHttpRequest で読み込んで集計するよう作成
祝儀の集計はコメントアウトし非表示にした

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年09月01日 12:33