From 587a3852386d5f06c8c647d374281a4d9c96e219 Mon Sep 17 00:00:00 2001
From: na2na <49822810+na2na-p@users.noreply.github.com>
Date: Tue, 5 Apr 2022 01:40:19 +0900
Subject: [PATCH 1/8] wip

---
 src/index.ts                       |   2 +
 src/modules/earthquake/index.ts    | 116 +++++++++++++++++++++++++++++
 src/modules/earthquake/typeMemo.cs |  38 ++++++++++
 3 files changed, 156 insertions(+)
 create mode 100644 src/modules/earthquake/index.ts
 create mode 100644 src/modules/earthquake/typeMemo.cs

diff --git a/src/index.ts b/src/index.ts
index 353db8b..5f5b4c0 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -35,6 +35,7 @@ import SleepReportModule from './modules/sleep-report';
 import NotingModule from './modules/noting';
 // import PollModule from './modules/poll';
 import ReminderModule from './modules/reminder';
+import earthquake from './modules/earthquake';
 import DicModule from './modules/dic';
 import menuModule from './modules/menu';
 import GetColorModule from './modules/color';
@@ -96,6 +97,7 @@ promiseRetry(retry => {
 		new DicModule(),
 		new menuModule(),
 		new GetColorModule(),
+		new earthquake(),
 	]);
 }).catch(e => {
 	log(chalk.red('Failed to fetch the account'));
diff --git a/src/modules/earthquake/index.ts b/src/modules/earthquake/index.ts
new file mode 100644
index 0000000..0ee8742
--- /dev/null
+++ b/src/modules/earthquake/index.ts
@@ -0,0 +1,116 @@
+import autobind from "autobind-decorator";
+import Module from "@/module";
+import Message from "@/message";
+import * as http from "http";
+
+// 基本的に生データはstringばっかり。都合のいい形に加工済みの状態の型定義を書いています。
+// ここでいくらか言及されてる(https://bultar.bbs.fc2.com/?act=reply&tid=5645851);
+interface 緊急地震速報 {
+	type: 'eew';
+	time: Date;
+	report: string; // 第n報 最終報はstringで'final'となるので、とりあえずstring型
+	epicenter: string; // 震源地
+	depth: string; // 震源の深さ
+	magnitude: string; // 地震の規模を示すマグニチュード
+	latitude: string; // 緯度らしいが謎
+	longitude: string; // 経度らしいが謎
+	intensity: string; // 地震の強さ
+	index: number; // 謎
+}
+
+interface 緊急地震速報キャンセル {
+	type: 'pga_alert_cancel';
+	time: Date;
+}
+
+interface 震度レポート {
+  type: 'intensity_report';
+  time: Date;
+  max_index: number;
+  intensity_list: {
+		intensity: string;
+		index: number;
+		region_list: string[];
+	}[];
+}
+
+interface 地震検知 {
+  type: 'pga_alert';
+  time: Date;
+  max_pga: number;
+  new: boolean;
+  estimated_intensity: number;
+  region_list: string[];
+}
+
+export default class extends Module {
+  public readonly name = "earthquake";
+  private message: string = "";
+
+  @autobind
+  public install() {
+    this.createListenServer();
+    return {};
+  }
+
+  @autobind
+  private async createListenServer() {
+    http.createServer(async (req, res) => {
+      const buffers: Buffer[] = [];
+      for await (const chunk of req) {
+        buffers.push(chunk);
+      }
+
+      const rawDataString = Buffer.concat(buffers).toString();
+      // rawDataString について、Unicodeエスケープシーケンスが含まれていたら通常の文字列に変換する
+      // JSONでなければreturn falseする
+      if (rawDataString.match(/\\u[0-9a-f]{4}/)) {
+        const rawDataJSON = JSON.parse(
+          rawDataString.replace(/\\u([\d\w]{4})/g, (match, p1) => {
+            return String.fromCharCode(parseInt(p1, 16));
+          }),
+        );
+
+        if (rawDataJSON.type == "pga_alert") {
+          const data: 地震検知 = {
+            type: rawDataJSON.type,
+            time: new Date(parseInt(rawDataJSON.time)),
+            max_pga: rawDataJSON.max_pga,
+            new: rawDataJSON.new,
+            estimated_intensity: rawDataJSON.estimated_intensity,
+            region_list: rawDataJSON.region_list,
+          };
+          this.message =
+					// region_listはオブジェクトなので、2行改行してから列挙する
+            `PGA Alert\n${data.time.toLocaleString()}\n${data.max_pga}\n${data.estimated_intensity}\n\n${data.region_list.join("\n")}`;
+        }else if (rawDataJSON.type == 'intensity_report'){
+					const data: 震度レポート = {
+						type: rawDataJSON.type,
+            time: new Date(parseInt(rawDataJSON.time)),
+						max_index: rawDataJSON.max_index,
+						intensity_list: rawDataJSON.intensity_list,
+						}
+					this.message =
+						`Intensity Report\n${data.time.toLocaleString()}\n\n${data.intensity_list.map(intensity => `震度${intensity.intensity} ${intensity.region_list.join(" ")}`).join("\n")}`;
+				}
+        this.returnResponse(res, "ok");
+        if (this.message) {
+          this.ai.post({
+            visibility: "home",
+            text: this.message,
+          });
+        }
+      } else {
+        this.returnResponse(res, "debobigego");
+      }
+    }).listen(process.env.EARTHQUAKE_PORT || 9999);
+  }
+
+  @autobind
+  private returnResponse(res: http.ServerResponse, text: string) {
+    res.writeHead(200, {
+      "Content-Type": "text/plain",
+    });
+    res.end(text);
+  }
+}
diff --git a/src/modules/earthquake/typeMemo.cs b/src/modules/earthquake/typeMemo.cs
new file mode 100644
index 0000000..e8c6b52
--- /dev/null
+++ b/src/modules/earthquake/typeMemo.cs
@@ -0,0 +1,38 @@
+# 緊急地震速報
+{"type":"eew",
+"time":long,
+"report":int,
+"epicenter":String,
+"depth":String,
+"magnitude":String,
+"latitude":String,
+"longitude":String,
+"intensity":String,
+"index":int
+}
+
+# 地震検知
+{"type":"pga_alert",
+"time":long,
+"max_pga":float,
+"new":boolean,
+"estimated_intensity":int,
+"region_list":[String,String,,,]
+}
+
+# 地震検知キャンセル
+{"type":"pga_alert_cancel", "time":long }
+
+# 震度レポート
+{"type":"intensity_report",
+"time":long,
+"max_index":int,
+"intensity_list":[
+{"intensity":String,
+"index":int,
+"region_list":[String,String,,,,]},
+{"intensity":String,
+"index":int,
+"region_list":[String,String,,,,]},
+,,]
+}

From fb4ed538c6f07e9c33c8049f3a0dcefc309a5289 Mon Sep 17 00:00:00 2001
From: na2na <49822810+na2na-p@users.noreply.github.com>
Date: Tue, 5 Apr 2022 01:50:23 +0900
Subject: [PATCH 2/8] wip

---
 src/config.ts                   |  1 +
 src/modules/earthquake/index.ts | 69 +++++++++++++++------------------
 2 files changed, 32 insertions(+), 38 deletions(-)

diff --git a/src/config.ts b/src/config.ts
index 1918b4f..81892a6 100644
--- a/src/config.ts
+++ b/src/config.ts
@@ -12,6 +12,7 @@ type Config = {
 	mecab?: string;
 	mecabDic?: string;
 	memoryDir?: string;
+	earthQuakeMonitorPort?: number;
 };
 
 const config = require('../config.json');
diff --git a/src/modules/earthquake/index.ts b/src/modules/earthquake/index.ts
index 0ee8742..55eaca7 100644
--- a/src/modules/earthquake/index.ts
+++ b/src/modules/earthquake/index.ts
@@ -1,41 +1,42 @@
 import autobind from "autobind-decorator";
 import Module from "@/module";
+import config from "@/config";
 import Message from "@/message";
 import * as http from "http";
 
 // 基本的に生データはstringばっかり。都合のいい形に加工済みの状態の型定義を書いています。
 // ここでいくらか言及されてる(https://bultar.bbs.fc2.com/?act=reply&tid=5645851);
 interface 緊急地震速報 {
-	type: 'eew';
-	time: Date;
-	report: string; // 第n報 最終報はstringで'final'となるので、とりあえずstring型
-	epicenter: string; // 震源地
-	depth: string; // 震源の深さ
-	magnitude: string; // 地震の規模を示すマグニチュード
-	latitude: string; // 緯度らしいが謎
-	longitude: string; // 経度らしいが謎
-	intensity: string; // 地震の強さ
-	index: number; // 謎
+  type: "eew";
+  time: Date;
+  report: string; // 第n報 最終報はstringで'final'となるので、とりあえずstring型
+  epicenter: string; // 震源地
+  depth: string; // 震源の深さ
+  magnitude: string; // 地震の規模を示すマグニチュード
+  latitude: string; // 緯度らしいが謎
+  longitude: string; // 経度らしいが謎
+  intensity: string; // 地震の強さ
+  index: number; // 謎
 }
 
 interface 緊急地震速報キャンセル {
-	type: 'pga_alert_cancel';
-	time: Date;
+  type: "pga_alert_cancel";
+  time: Date;
 }
 
 interface 震度レポート {
-  type: 'intensity_report';
+  type: "intensity_report";
   time: Date;
   max_index: number;
   intensity_list: {
-		intensity: string;
-		index: number;
-		region_list: string[];
-	}[];
+    intensity: string;
+    index: number;
+    region_list: string[];
+  }[];
 }
 
 interface 地震検知 {
-  type: 'pga_alert';
+  type: "pga_alert";
   time: Date;
   max_pga: number;
   new: boolean;
@@ -71,28 +72,20 @@ export default class extends Module {
           }),
         );
 
-        if (rawDataJSON.type == "pga_alert") {
-          const data: 地震検知 = {
+        if (rawDataJSON.type == "intensity_report") {
+          const data: 震度レポート = {
             type: rawDataJSON.type,
             time: new Date(parseInt(rawDataJSON.time)),
-            max_pga: rawDataJSON.max_pga,
-            new: rawDataJSON.new,
-            estimated_intensity: rawDataJSON.estimated_intensity,
-            region_list: rawDataJSON.region_list,
+            max_index: rawDataJSON.max_index,
+            intensity_list: rawDataJSON.intensity_list,
           };
-          this.message =
-					// region_listはオブジェクトなので、2行改行してから列挙する
-            `PGA Alert\n${data.time.toLocaleString()}\n${data.max_pga}\n${data.estimated_intensity}\n\n${data.region_list.join("\n")}`;
-        }else if (rawDataJSON.type == 'intensity_report'){
-					const data: 震度レポート = {
-						type: rawDataJSON.type,
-            time: new Date(parseInt(rawDataJSON.time)),
-						max_index: rawDataJSON.max_index,
-						intensity_list: rawDataJSON.intensity_list,
-						}
-					this.message =
-						`Intensity Report\n${data.time.toLocaleString()}\n\n${data.intensity_list.map(intensity => `震度${intensity.intensity} ${intensity.region_list.join(" ")}`).join("\n")}`;
-				}
+          this.message = `震度レポート\n${data.time.toLocaleString()}\n\n${
+            data.intensity_list.map((intensity) =>
+              `震度${intensity.intensity}: ${intensity.region_list.join(" ")}`
+            ).join("\n")
+          }`;
+        }
+				console.log(rawDataJSON); // デバッグ用
         this.returnResponse(res, "ok");
         if (this.message) {
           this.ai.post({
@@ -103,7 +96,7 @@ export default class extends Module {
       } else {
         this.returnResponse(res, "debobigego");
       }
-    }).listen(process.env.EARTHQUAKE_PORT || 9999);
+    }).listen(config.earthQuakeMonitorPort || 9999);
   }
 
   @autobind

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 3/8] =?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

From a6ccecc155c4f8fe96cf77996683826a7d9d444f Mon Sep 17 00:00:00 2001
From: na2na <49822810+na2na-p@users.noreply.github.com>
Date: Tue, 5 Apr 2022 02:44:21 +0900
Subject: [PATCH 4/8] =?UTF-8?q?CO=E7=B7=A8=E9=9B=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/modules/earthquake/index.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/earthquake/index.ts b/src/modules/earthquake/index.ts
index 16d9313..b872f82 100644
--- a/src/modules/earthquake/index.ts
+++ b/src/modules/earthquake/index.ts
@@ -86,7 +86,7 @@ export default class extends Module {
               `震度${this.earthQuakeIndex[intensity.index + 1]}: ${intensity.region_list.join(" ")}`
             ).join("\n")
           }`;
-        } if (rawDataJSON.type == 'eew' && false) {
+        } if (rawDataJSON.type == 'eew' && false) { // これ使わなさそうだしとりあえず入らないようにした
 					const data: 緊急地震速報 = {
 						type: rawDataJSON.type,
 						time: new Date(parseInt(rawDataJSON.time)),

From 23391583df0496b8f413fb5c9f812cc031f3736a Mon Sep 17 00:00:00 2001
From: na2na <49822810+na2na-p@users.noreply.github.com>
Date: Tue, 5 Apr 2022 02:51:18 +0900
Subject: [PATCH 5/8] =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=83=87=E3=83=B3?=
 =?UTF-8?q?=E3=83=88=E4=BF=AE=E6=AD=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/modules/earthquake/index.ts             | 68 +++++++++++++--------
 src/modules/earthquake/テスト用生データ.txt |  4 ++
 2 files changed, 47 insertions(+), 25 deletions(-)
 create mode 100644 src/modules/earthquake/テスト用生データ.txt

diff --git a/src/modules/earthquake/index.ts b/src/modules/earthquake/index.ts
index b872f82..152fde5 100644
--- a/src/modules/earthquake/index.ts
+++ b/src/modules/earthquake/index.ts
@@ -48,7 +48,18 @@ 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"]
+  private earthQuakeIndex: string[] = [
+    "0未満",
+    "0",
+    "1",
+    "2",
+    "3",
+    "4",
+    "5弱",
+    "5強",
+    "6弱",
+    "7",
+  ];
 
   @autobind
   public install() {
@@ -81,34 +92,41 @@ export default class extends Module {
             max_index: rawDataJSON.max_index,
             intensity_list: rawDataJSON.intensity_list,
           };
-          this.message = `地震かも?\n\n震度レポート\n${data.time.toLocaleString()}\n最大震度:${this.earthQuakeIndex[data.max_index + 1]}\n\n${
-            data.intensity_list.map((intensity) =>
-              `震度${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,
-					}
+          this.message =
+            `地震かも?\n\n震度レポート\n${data.time.toLocaleString()}\n最大震度:${
+              this.earthQuakeIndex[data.max_index + 1]
+            }\n\n${
+              data.intensity_list.map((intensity) =>
+                `震度${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); // デバッグ用
+          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: "試験運用中!!!!!",
+            cw: "試験運用中!!!!!",
             visibility: "home",
             text: this.message,
           });
diff --git a/src/modules/earthquake/テスト用生データ.txt b/src/modules/earthquake/テスト用生データ.txt
new file mode 100644
index 0000000..9d4696d
--- /dev/null
+++ b/src/modules/earthquake/テスト用生データ.txt
@@ -0,0 +1,4 @@
+# テスト用生データ
+{"type":"pga_alert","time":"1649085285968","max_pga":-0.531,"new":true,"estimated_intensity":0,"region_list":["\u8328\u57ce"]}
+{"type":"intensity_report","time":"1649085285968","max_index":-1,"intensity_list":[{"intensity":"0\u672a\u6e80","index":-1,"region_list":["\u8328\u57ce"]}]}
+{"type": "eew","report": "1","epicenter": "伊予灘","depth": "60km","magnitude": 3.5,"latitude": 33.8,"longitude": 132.1,"intensity": "2","index": 2}

From 59cdd5849f02e132aa86ceea2fca2a71c6af9a83 Mon Sep 17 00:00:00 2001
From: na2na <49822810+na2na-p@users.noreply.github.com>
Date: Tue, 5 Apr 2022 09:50:08 +0900
Subject: [PATCH 6/8] =?UTF-8?q?=E3=81=A1=E3=82=87=E3=81=A3=E3=81=A8?=
 =?UTF-8?q?=E4=BF=AE=E6=AD=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/modules/earthquake/index.ts | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/modules/earthquake/index.ts b/src/modules/earthquake/index.ts
index 152fde5..fe6ce5d 100644
--- a/src/modules/earthquake/index.ts
+++ b/src/modules/earthquake/index.ts
@@ -48,7 +48,7 @@ export default class extends Module {
   public readonly name = "earthquake";
   private message: string = "";
 
-  private earthQuakeIndex: string[] = [
+  private earthquakeIntensityIndex: string[] = [
     "0未満",
     "0",
     "1",
@@ -58,6 +58,7 @@ export default class extends Module {
     "5弱",
     "5強",
     "6弱",
+		"6強",
     "7",
   ];
 
@@ -94,10 +95,10 @@ export default class extends Module {
           };
           this.message =
             `地震かも?\n\n震度レポート\n${data.time.toLocaleString()}\n最大震度:${
-              this.earthQuakeIndex[data.max_index + 1]
+              this.earthquakeIntensityIndex[data.max_index + 1]
             }\n\n${
               data.intensity_list.map((intensity) =>
-                `震度${this.earthQuakeIndex[intensity.index + 1]}: ${
+                `震度${this.earthquakeIntensityIndex[intensity.index + 1]}: ${
                   intensity.region_list.join(" ")
                 }`
               ).join("\n")
@@ -122,7 +123,12 @@ export default class extends Module {
               `**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); // デバッグ用
+				
+        console.table(rawDataJSON); // デバッグ用
+				if (rawDataJSON.type == 'intensity_report') {
+					console.table(rawDataJSON.region_list); // デバッグ用
+				}
+
         this.returnResponse(res, "ok");
         if (this.message) {
           this.ai.post({

From dc3b7dd954c0258344826c77675af8c873f72200 Mon Sep 17 00:00:00 2001
From: na2na <49822810+na2na-p@users.noreply.github.com>
Date: Tue, 5 Apr 2022 09:57:23 +0900
Subject: [PATCH 7/8] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E5=87=BA=E3=81=99?=
 =?UTF-8?q?=E3=81=A8=E3=81=8D=E3=81=AE=E6=9C=80=E5=A4=A7=E9=9C=87=E5=BA=A6?=
 =?UTF-8?q?=E3=81=97=E3=81=8D=E3=81=84=E5=80=A4=E3=81=BE=E3=82=8F=E3=82=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/modules/earthquake/index.ts | 37 ++++++++++++++++++---------------
 1 file changed, 20 insertions(+), 17 deletions(-)

diff --git a/src/modules/earthquake/index.ts b/src/modules/earthquake/index.ts
index fe6ce5d..d95b590 100644
--- a/src/modules/earthquake/index.ts
+++ b/src/modules/earthquake/index.ts
@@ -48,6 +48,7 @@ export default class extends Module {
   public readonly name = "earthquake";
   private message: string = "";
 
+	private thresholdVal = 0; // 下の配列の添え字に相当する値。しきい値以上のものについて通知を出す。
   private earthquakeIntensityIndex: string[] = [
     "0未満",
     "0",
@@ -87,22 +88,24 @@ export default class extends Module {
         );
 
         if (rawDataJSON.type == "intensity_report") {
-          const data: 震度レポート = {
-            type: rawDataJSON.type,
-            time: new Date(parseInt(rawDataJSON.time)),
-            max_index: rawDataJSON.max_index,
-            intensity_list: rawDataJSON.intensity_list,
-          };
-          this.message =
-            `地震かも?\n\n震度レポート\n${data.time.toLocaleString()}\n最大震度:${
-              this.earthquakeIntensityIndex[data.max_index + 1]
-            }\n\n${
-              data.intensity_list.map((intensity) =>
-                `震度${this.earthquakeIntensityIndex[intensity.index + 1]}: ${
-                  intensity.region_list.join(" ")
-                }`
-              ).join("\n")
-            }`;
+					if (rawDataJSON.max_index >= this.thresholdVal) {
+						const data: 震度レポート = {
+							type: rawDataJSON.type,
+							time: new Date(parseInt(rawDataJSON.time)),
+							max_index: rawDataJSON.max_index,
+							intensity_list: rawDataJSON.intensity_list,
+						};
+						this.message =
+							`地震かも?\n\n震度レポート\n${data.time.toLocaleString()}\n最大震度:${
+								this.earthquakeIntensityIndex[data.max_index + 1]
+							}\n\n${
+								data.intensity_list.map((intensity) =>
+									`震度${this.earthquakeIntensityIndex[intensity.index + 1]}: ${
+										intensity.region_list.join(" ")
+									}`
+								).join("\n")
+							}`;
+					}
         }
         if (rawDataJSON.type == "eew" && false) { // これ使わなさそうだしとりあえず入らないようにした
           const data: 緊急地震速報 = {
@@ -123,7 +126,7 @@ export default class extends Module {
               `**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.table(rawDataJSON); // デバッグ用
 				if (rawDataJSON.type == 'intensity_report') {
 					console.table(rawDataJSON.region_list); // デバッグ用

From 5f8c7d957228e2f2de5ea28257871d16daa4b86d Mon Sep 17 00:00:00 2001
From: na2na <49822810+na2na-p@users.noreply.github.com>
Date: Tue, 5 Apr 2022 16:52:44 +0900
Subject: [PATCH 8/8] =?UTF-8?q?=E3=81=A8=E3=82=8A=E3=81=82=E3=81=88?=
 =?UTF-8?q?=E3=81=9A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/modules/earthquake/index.ts | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/modules/earthquake/index.ts b/src/modules/earthquake/index.ts
index d95b590..3237657 100644
--- a/src/modules/earthquake/index.ts
+++ b/src/modules/earthquake/index.ts
@@ -48,7 +48,7 @@ export default class extends Module {
   public readonly name = "earthquake";
   private message: string = "";
 
-	private thresholdVal = 0; // 下の配列の添え字に相当する値。しきい値以上のものについて通知を出す。
+	private thresholdVal = 5; // 下の配列の添え字に相当する値。しきい値以上のものについて通知を出す。
   private earthquakeIntensityIndex: string[] = [
     "0未満",
     "0",
@@ -88,7 +88,7 @@ export default class extends Module {
         );
 
         if (rawDataJSON.type == "intensity_report") {
-					if (rawDataJSON.max_index >= this.thresholdVal) {
+					if (rawDataJSON.max_index >= this.thresholdVal - 1) {
 						const data: 震度レポート = {
 							type: rawDataJSON.type,
 							time: new Date(parseInt(rawDataJSON.time)),
@@ -96,7 +96,7 @@ export default class extends Module {
 							intensity_list: rawDataJSON.intensity_list,
 						};
 						this.message =
-							`地震かも?\n\n震度レポート\n${data.time.toLocaleString()}\n最大震度:${
+							`地震かも?\n\n震度レポート\n${data.time.toLocaleString()}\n最大震度: ${
 								this.earthquakeIntensityIndex[data.max_index + 1]
 							}\n\n${
 								data.intensity_list.map((intensity) =>
@@ -129,7 +129,7 @@ export default class extends Module {
 
         console.table(rawDataJSON); // デバッグ用
 				if (rawDataJSON.type == 'intensity_report') {
-					console.table(rawDataJSON.region_list); // デバッグ用
+					console.table(rawDataJSON.intensity_list); // デバッグ用
 				}
 
         this.returnResponse(res, "ok");