1
0
Fork 0
mirror of https://github.com/syuilo/ai.git synced 2025-03-25 21:12:56 +00:00
This commit is contained in:
na2na 2022-04-05 02:40:31 +09:00
parent fb4ed538c6
commit 4133d9aeb3
3 changed files with 27 additions and 6 deletions
.vscode
src/modules/earthquake

View file

@ -1,3 +1,4 @@
{
"typescript.tsdk": "node_modules\\typescript\\lib"
}
"typescript.tsdk": "node_modules\\typescript\\lib",
"C_Cpp.errorSquiggles": "Disabled"
}

View file

@ -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,
});