概要
雀魂の大会の情報と、大会の牌譜一覧を簡単にファイル保存する方法にゃ!
牌譜一覧さえファイル保存しておけば、いつでも牌譜鑑賞ができるにゃ!
「牌譜をファイルに保存するにゃ」のページの方法を使えば、大会の牌譜をダウンロードすることもできるにゃ!
準備するもの
- パソコン
- 雀魂アカウント(ウェブブラウザ版のアカウントで動作確認済みにゃ!DMM版でも動くかは不明にゃ!)
- ウェブブラウザ(Chrome と Firefox で動作確認したにゃ!)
以上にゃ!
保存方法
1. 「牌譜をファイルに保存するにゃ」のページの1~3の方法にしたがって、デベロッパーツールのコンソールを開くにゃ!
2. 雀魂にログインするにゃ!
3. 下記のコードをコンソールにコピペして、エンターキーを押すにゃ!
function taikai(contestId = "") {
if (!contestId) {
contestId = prompt("大会IDを入力してください。 / Please Enter a contest ID.");
}
if (!contestId) {
return;
}
function download(data, fileName) {
let a = document.createElement("a");
a.href = URL.createObjectURL(
new Blob([JSON.stringify(data, null, " ")],
{type: "text/plain"}));
a.download = fileName;
a.style.display = "none";
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}
function sleep(msec) {
return new Promise(function(resolve) {setTimeout(function() {resolve();}, msec);});
}
function getContestDetail(contestId, uniqueId) {
app.NetAgent.sendReq2Lobby(
"Lobby",
"enterCustomizedContest",
{unique_id:uniqueId},
function(error, contestDetail) {
download(contestDetail, "mahjongsoul_contest_" + contestId + "_detail.txt");
});
}
async function getContestRecords(contestId, uniqueId) {
let uuidArray = new Array();
let loopEndFlag = false;
for (let i = 20;; i += 20) {
app.NetAgent.sendReq2Lobby(
"Lobby",
"fetchCustomizedContestGameRecords",
{unique_id:uniqueId, last_index:i},
function(error, contestRecords) {
if (contestRecords.record_list.length == 0) {
loopEndFlag = true;
return;
}
for (const record of contestRecords.record_list) {
uuidArray.push(record.uuid);
console.log(i + " データ取得中 / Downloading");
}
});
if (loopEndFlag) {
break;
}
await sleep(1000);
}
download(uuidArray, "mahjongsoul_contest_" + contestId + "_uuid_list.txt");
}
app.NetAgent.sendReq2Lobby(
"Lobby",
"fetchCustomizedContestByContestId",
{contest_id:contestId},
function(error, contestInfo) {
uniqueId = contestInfo.contest_info.unique_id;
getContestDetail(contestId, uniqueId);
getContestRecords(contestId, uniqueId);
});
}
4. コンソールに
taikai()
と入力して、エンターキーを押すにゃ!
5. 「大会IDを入力してください。」と表示されるにゃ!
ここに雀魂の大会IDを入力するにゃ!
大会IDは、雀魂の大会ロビーに行けば見られるにゃ!
大会IDを入力したら「OK」ボタンを押すにゃ!
6. 以上で、大会の情報ファイルと、大会の牌譜一覧ファイルがダウンロードされるにゃ!
大会の対局がたくさんある場合は、データの取得に時間がかかるにゃ!
ダウンロードが完了するまで待つにゃ!
ダウンロードしたファイルは「メモ帳」などのテキストエディタで開いて、中身を確認できるにゃ!
大会の情報ファイルには、大会の説明文や、大会のルールが記されているにゃ!
大会の牌譜一覧ファイルには、各対局の固有IDが並んでいるにゃ!
雀魂の牌譜画面の「その他の牌譜」欄にこのIDを入力すれば、牌譜鑑賞ができるにゃ!
「牌譜をファイルに保存するにゃ」のページの方法にしたがえば、牌譜ファイルをダウンロードすることもできるにゃ!
なお、IDをコピペするときには、ダブルクォーテーション(")とカンマ(,)は無視するにゃ!
注意
大会終了から時間が経過すると、大会の情報ファイルと牌譜一覧ファイルはダウンロードできなくなるにゃ!
なので、過去の大会のデータをダウンロードすることはできないにゃ!
牌譜一覧ファイルさえ取っておけば、牌譜ファイルは後日ダウンロードすることもできるにゃ!