Feat: 新年迎春

This commit is contained in:
2026-04-29 14:45:29 +09:00
parent 3bd235b0cb
commit 109d32a3ed
4 changed files with 62 additions and 9 deletions
+2
View File
@@ -12,6 +12,8 @@ uwuzu v1.6.3以上で利用可能です。
- 地震発生 - 地震発生
- 緊急地震速報(警報) - 緊急地震速報(警報)
- 津波予報 - 津波予報
- 新年迎春
毎年1/1 0:00に投稿します。
- デバッグモード - デバッグモード
設定で有効化することで、以下の機能が利用できます。 設定で有効化することで、以下の機能が利用できます。
開発以外では使用しないでください。 開発以外では使用しないでください。
+2
View File
@@ -50,6 +50,8 @@ eewNotice: |
📍震源地: {{ epicenter }} 📍震源地: {{ epicenter }}
💪マグニチュード: {{ magnitude }} 💪マグニチュード: {{ magnitude }}
🪨深さ: {{ depth }}{{ areas }} 🪨深さ: {{ depth }}{{ areas }}
hnyNotice: |
あけましておめでとうございます。今年は、{{ year }}年です。
commandNotFound: | commandNotFound: |
コマンドが本文から参照できませんでした。 コマンドが本文から参照できませんでした。
Botでは、このアカウントに対してのメンション部分を取り除きます。 Botでは、このアカウントに対してのメンション部分を取り除きます。
+29
View File
@@ -0,0 +1,29 @@
import client from "@/lib/client";
import initI18n from "@/lib/i18n";
import i18next from "i18next";
import { parentPort } from "node:worker_threads";
await initI18n();
parentPort?.on("message", async () => {
console.log("新年迎春の投稿を行います");
try {
const response = await client.request("ueuse/create", {
text: i18next.t("hnyNotice", { year: String(new Date().getFullYear()) }),
});
if (!response.success) {
console.warn("新年迎春投稿に失敗しました:", response.error_code);
process.exit(1);
}
console.log("新年迎春投稿:", response.uniqid);
} catch (err: any) {
console.error("message" in err
? err.message
: err);
} finally {
parentPort?.postMessage("");
}
});
+26 -6
View File
@@ -30,14 +30,34 @@ try {
process.exit(1); process.exit(1);
} }
schedule("0 * * * *", async () => { try {
schedule("0 * * * *", async () => {
new Worker(`${import.meta.dirname}/feature/timeNotice.js`); new Worker(`${import.meta.dirname}/feature/timeNotice.js`);
}); });
schedule("0 7 * * *", async () => { schedule("0 7 * * *", async () => {
new Worker(`${import.meta.dirname}/feature/weatherNotice.js`); new Worker(`${import.meta.dirname}/feature/weatherNotice.js`);
}); });
schedule(`*/${config.command.interval} * * * *`, async () => { schedule(`*/${config.command.interval} * * * *`, async () => {
new Worker(`${import.meta.dirname}/feature/command/index.js`); new Worker(`${import.meta.dirname}/feature/command/index.js`);
}); });
let hnyWorker: Worker | undefined = undefined;
schedule("59 23 31 12 *", () => {
hnyWorker = new Worker(`${import.meta.dirname}/feature/hnyNotice.js`);
});
schedule("0 0 1 1 *", () => {
hnyWorker?.once("message", async () => {
await hnyWorker?.terminate();
hnyWorker = undefined;
});
hnyWorker?.postMessage("");
});
} catch (err: any) {
console.error("message" in err
? err.message
: err);
}