デバッグ表示を分かりやすく2(v4.3)
This commit is contained in:
parent
c3ab3a8456
commit
568ae7abf6
|
@ -8,9 +8,14 @@ uwuzuで動作するお知らせBOTです。
|
|||
examples/config.tsをプロジェクトルートへ移動し各設定を更新してください。
|
||||
|
||||
## 設定項目
|
||||
time.stopTimes.start: 時報休止期間の開始時刻(HH)
|
||||
time.stopTimes.stop: 時報休止期間の停止時刻(HH)
|
||||
|
||||
earthquake.reconnectTimes:地震情報のWebSocketが切断されたときに自動再接続する時間(ミリ秒)
|
||||
earthquake.websocketUrl:地震情報のWebSocket接続先URL
|
||||
earthquake.areasCsvUrl:地域情報のデータベース(CSV)ファイルのURL
|
||||
earthquake.maxScaleMin: 地震発生投稿の最低震度(10-70)
|
||||
earthquake.rateLimit: 地域情報更新のレート制限(分)
|
||||
|
||||
weather.splitCount:天気お知らせの返信の分割数(4分割を推奨)
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
# # ##### ####### ### ##### ####### # # # # # # ###### # #
|
||||
## # # # # # ## # # # # # # # # # # #
|
||||
# ## # # # # # # ###### # # # # # # # # ## # #
|
||||
# ## # # # # ## # # # # # # # # # #
|
||||
# # ##### # ### ##### ####### ###### # # ###### ###### #######
|
4
main.ts
4
main.ts
|
@ -6,6 +6,10 @@ import timeNotice from "./scripts/timeNotice.js";
|
|||
import weatherNotice from "./scripts/weatherNotice.js";
|
||||
import earthquakeNotice from "./scripts/earthquakeNotice.js";
|
||||
|
||||
// アスキーアート読み込み
|
||||
import asciiArt from "./scripts/asciiart.js";
|
||||
asciiArt();
|
||||
|
||||
// フォローバック機能読み込み
|
||||
import followBack from "./scripts/followBack.js";
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "noticeuwuzu",
|
||||
"version": "v4.2@uwuzu1.5.4",
|
||||
"version": "v4.3@uwuzu1.5.4",
|
||||
"description": "uwuzu Notice Bot",
|
||||
"main": "dist/main.js",
|
||||
"scripts": {
|
||||
|
@ -29,6 +29,7 @@
|
|||
"@types/dotenv": "^6.1.1",
|
||||
"@types/node-cron": "^3.0.11",
|
||||
"date-fns": "^4.1.0",
|
||||
"fs": "^0.0.1-security",
|
||||
"node-cron": "^4.1.1",
|
||||
"tsx": "^4.20.3",
|
||||
"typescript": "^5.8.3",
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
import * as fs from "fs";
|
||||
|
||||
export default function asciiArt() {
|
||||
console.log(fs.readFileSync("asciiart.txt", "utf-8"));
|
||||
}
|
|
@ -20,13 +20,13 @@ class P2PEarthquakeClient {
|
|||
if (this.isConnecting) return;
|
||||
|
||||
this.isConnecting = true;
|
||||
console.log("P2P地震情報に接続中");
|
||||
console.log("地震情報サーバーに接続中");
|
||||
|
||||
try {
|
||||
this.ws = new WebSocket(config.earthquake.websocketUrl);
|
||||
|
||||
this.ws.on("open", () => {
|
||||
console.log("P2P地震情報に接続しました");
|
||||
console.log("地震情報サーバーに接続しました");
|
||||
this.isConnecting = false;
|
||||
|
||||
if (this.reconnectTimer) {
|
||||
|
@ -45,7 +45,7 @@ class P2PEarthquakeClient {
|
|||
});
|
||||
|
||||
this.ws.on("close", (code: number, reason: Buffer) => {
|
||||
console.log(`接続が閉じられました: ${code} - ${reason.toString()}`);
|
||||
console.log(`切断されました: ${code} - ${reason.toString()}`);
|
||||
this.isConnecting = false;
|
||||
this.scheduleReconnect();
|
||||
});
|
||||
|
@ -75,7 +75,7 @@ class P2PEarthquakeClient {
|
|||
this.executeEventFunc(message);
|
||||
break;
|
||||
case 555: // 地域情報更新情報
|
||||
console.log("地域情報更新情報を受信しました");
|
||||
console.log("地域情報更新を受信しました");
|
||||
this.executeEventFunc(message);
|
||||
break;
|
||||
default:
|
||||
|
@ -91,6 +91,7 @@ class P2PEarthquakeClient {
|
|||
private scheduleReconnect(): void {
|
||||
if (this.reconnectTimer) return;
|
||||
|
||||
console.log("地震情報サーバーから切断されました");
|
||||
console.log(`${this.reconnectInterval / 1000}秒後に再接続を試みます`);
|
||||
this.reconnectTimer = setTimeout(() => {
|
||||
this.reconnectTimer = null;
|
||||
|
@ -361,6 +362,9 @@ async function event(earthquakeInfo: any): Promise<void> {
|
|||
`);
|
||||
|
||||
rateLimit = new Date();
|
||||
} else {
|
||||
console.log("レート制限に満たしていないため投稿されませんでした");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -376,7 +380,7 @@ async function ueuse(text: string) {
|
|||
|
||||
const resData = await res.json();
|
||||
|
||||
console.log(JSON.stringify(resData));
|
||||
console.log(`地震情報投稿:${JSON.stringify(resData)}`);
|
||||
}
|
||||
|
||||
export default function earthquakeNotice(): void {
|
||||
|
|
|
@ -3,18 +3,20 @@ import type * as types from "types/types";
|
|||
import config from "../config.js";
|
||||
|
||||
export default async function followBack() {
|
||||
console.log("----------------");
|
||||
|
||||
// フォロワーを取得
|
||||
const resMe = await fetch(
|
||||
`https://${config.uwuzuServer}/api/me?token=${config.apiToken}`,
|
||||
{
|
||||
method: "GET",
|
||||
// uwuzu.netで/api/meのPOSTが死んでいるため簡易的にGET
|
||||
// uwuzu v1.5.4で/api/meのPOSTが死んでいるため簡易的にGET
|
||||
},
|
||||
);
|
||||
|
||||
const meData: types.meApi = await resMe.json();
|
||||
|
||||
console.log(meData);
|
||||
console.log(`BOTプロフィール:${meData}`);
|
||||
|
||||
const followers: Array<string> = meData.follower;
|
||||
|
||||
|
@ -35,6 +37,6 @@ export default async function followBack() {
|
|||
|
||||
const followData: types.followApi = await resFollow.json();
|
||||
|
||||
console.log(JSON.stringify(followData));
|
||||
console.log(`フォロー:${JSON.stringify(followData)}`);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,12 @@ if (start < stop) {
|
|||
|
||||
|
||||
export default async function timeNotice() {
|
||||
if (inRange === false) {
|
||||
console.log("----------------");
|
||||
|
||||
if (inRange) {
|
||||
console.log("時報休止期間のため投稿されませんでした");
|
||||
return;
|
||||
} else {
|
||||
// 投稿
|
||||
const resUeuse = await fetch(
|
||||
`https://${config.uwuzuServer}/api/ueuse/create`,
|
||||
|
@ -38,6 +43,6 @@ export default async function timeNotice() {
|
|||
|
||||
const ueuseData: types.ueuseCreateApi = await resUeuse.json();
|
||||
|
||||
console.log(JSON.stringify(ueuseData));
|
||||
console.log(`時報投稿:${JSON.stringify(ueuseData)}`);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,8 @@ import type * as types from "types/types.js";
|
|||
import config from "../config.js";
|
||||
|
||||
export default async function weatherNotice() {
|
||||
console.log("----------------");
|
||||
|
||||
// 仮投稿
|
||||
const resUeuse = await fetch(
|
||||
`https://${config.uwuzuServer}/api/ueuse/create`,
|
||||
|
@ -22,7 +24,7 @@ export default async function weatherNotice() {
|
|||
|
||||
const ueuseData: types.ueuseCreateApi = await resUeuse.json();
|
||||
|
||||
console.log(JSON.stringify(ueuseData));
|
||||
console.log(`天気仮投稿:${JSON.stringify(ueuseData)}`);
|
||||
|
||||
|
||||
// インデックス
|
||||
|
@ -114,6 +116,6 @@ export default async function weatherNotice() {
|
|||
|
||||
const replyData: types.ueuseCreateApi = await resReply.json();
|
||||
|
||||
console.log(JSON.stringify(replyData));
|
||||
console.log(`天気投稿:${JSON.stringify(replyData)}`);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue