From 4133d9aeb30fd3df76728dd4de1bfc6abcd2f3d1 Mon Sep 17 00:00:00 2001 From: na2na <49822810+na2na-p@users.noreply.github.com> Date: Tue, 5 Apr 2022 02:40:31 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=98=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 5 ++-- src/modules/earthquake/index.ts | 28 ++++++++++++++++--- .../earthquake/{typeMemo.cs => typeMemo.c} | 0 3 files changed, 27 insertions(+), 6 deletions(-) rename src/modules/earthquake/{typeMemo.cs => typeMemo.c} (100%) diff --git a/.vscode/settings.json b/.vscode/settings.json index 68ecdba..9397f56 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { - "typescript.tsdk": "node_modules\\typescript\\lib" -} \ No newline at end of file + "typescript.tsdk": "node_modules\\typescript\\lib", + "C_Cpp.errorSquiggles": "Disabled" +} diff --git a/src/modules/earthquake/index.ts b/src/modules/earthquake/index.ts index 55eaca7..16d9313 100644 --- a/src/modules/earthquake/index.ts +++ b/src/modules/earthquake/index.ts @@ -48,6 +48,8 @@ export default class extends Module { public readonly name = "earthquake"; private message: string = ""; + private earthQuakeIndex: string[] = ["0未満", "0", "1", "2", "3", "4", "5弱", "5強", "6弱", "7"] + @autobind public install() { this.createListenServer(); @@ -65,7 +67,7 @@ export default class extends Module { const rawDataString = Buffer.concat(buffers).toString(); // rawDataString について、Unicodeエスケープシーケンスが含まれていたら通常の文字列に変換する // JSONでなければreturn falseする - if (rawDataString.match(/\\u[0-9a-f]{4}/)) { + if (rawDataString.match(/\\u[0-9a-f]{4}/) || true) { const rawDataJSON = JSON.parse( rawDataString.replace(/\\u([\d\w]{4})/g, (match, p1) => { return String.fromCharCode(parseInt(p1, 16)); @@ -79,16 +81,34 @@ export default class extends Module { max_index: rawDataJSON.max_index, intensity_list: rawDataJSON.intensity_list, }; - this.message = `震度レポート\n${data.time.toLocaleString()}\n\n${ + this.message = `地震かも?\n\n震度レポート\n${data.time.toLocaleString()}\n最大震度:${this.earthQuakeIndex[data.max_index + 1]}\n\n${ data.intensity_list.map((intensity) => - `震度${intensity.intensity}: ${intensity.region_list.join(" ")}` + `震度${this.earthQuakeIndex[intensity.index + 1]}: ${intensity.region_list.join(" ")}` ).join("\n") }`; - } + } if (rawDataJSON.type == 'eew' && false) { + const data: 緊急地震速報 = { + type: rawDataJSON.type, + time: new Date(parseInt(rawDataJSON.time)), + report: rawDataJSON.report, + epicenter: rawDataJSON.epicenter, + depth: rawDataJSON.depth, + magnitude: rawDataJSON.magnitude, + latitude: rawDataJSON.latitude, + longitude: rawDataJSON.longitude, + intensity: rawDataJSON.intensity, + index: rawDataJSON.index, + } + + if (data.report == '1') { + this.message = `**TEST TEST TEST TEST**\n地震かも?\n\n緊急地震速報\n${data.time.toLocaleString()}\n\n第${data.report}報\n震源地: ${data.epicenter}\n震源の深さ: ${data.depth}\n地震の規模(M): ${data.magnitude}\n緯度: ${data.latitude}\n経度: ${data.longitude}\n予想される最大震度(?): ${data.intensity}\n`; + } + } console.log(rawDataJSON); // デバッグ用 this.returnResponse(res, "ok"); if (this.message) { this.ai.post({ + cw: "試験運用中!!!!!", visibility: "home", text: this.message, }); diff --git a/src/modules/earthquake/typeMemo.cs b/src/modules/earthquake/typeMemo.c similarity index 100% rename from src/modules/earthquake/typeMemo.cs rename to src/modules/earthquake/typeMemo.c