Feat: ユーズの再試行 / Feat: ユーズの文字数制限回避 / Feat: ユーズ送信関数 / Chg: weatherNotice.tsのマジックナンバーに命名
This commit is contained in:
@@ -18,6 +18,7 @@ earthquake:
|
|||||||
# デバッグ用途のみで使用してください。
|
# デバッグ用途のみで使用してください。
|
||||||
useHistoryData: false
|
useHistoryData: false
|
||||||
# 再接続の間隔(ミリ秒) number
|
# 再接続の間隔(ミリ秒) number
|
||||||
|
# 正数のみが有効です。
|
||||||
reconnectInterval: 3000
|
reconnectInterval: 3000
|
||||||
uwuzu:
|
uwuzu:
|
||||||
# APIトークン string
|
# APIトークン string
|
||||||
@@ -25,5 +26,12 @@ uwuzu:
|
|||||||
token: API_TOKEN
|
token: API_TOKEN
|
||||||
# uwuzuサーバーのorigin string
|
# uwuzuサーバーのorigin string
|
||||||
origin: https://uwuzu.example.com
|
origin: https://uwuzu.example.com
|
||||||
|
ueuse:
|
||||||
|
# 最大再試行数 number
|
||||||
|
# 自然数のみが有効です。
|
||||||
|
maxRetries: 3
|
||||||
|
# 再試行の間隔(ミリ秒) number
|
||||||
|
# 正数のみが有効です。
|
||||||
|
retryInterval: 1000
|
||||||
# デバッグモードにするかどうか boolean
|
# デバッグモードにするかどうか boolean
|
||||||
debug: false
|
debug: false
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import client from "@/lib/client";
|
import client, { createUeuse } from "@/lib/client";
|
||||||
import ueuseModule from "better-uwuzu-sdk/types/1.6.8/types/modules/ueuse";
|
import ueuseModule from "better-uwuzu-sdk/types/1.6.8/types/modules/ueuse";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
|
|
||||||
@@ -14,15 +14,8 @@ export default async function followCommand(ueuse: ueuseModule) {
|
|||||||
|
|
||||||
console.log("フォロー:", follow.userid);
|
console.log("フォロー:", follow.userid);
|
||||||
|
|
||||||
const notice = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("followedNotification", { username: ueuse.account.username }),
|
text: i18next.t("followedNotification", { username: ueuse.account.username }),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "フォロー通知");
|
||||||
|
|
||||||
if (!notice.success) {
|
|
||||||
console.warn("フォロー通知に失敗:", notice.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("フォロー通知:", notice.uniqid);
|
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import client from "@/lib/client";
|
import { createUeuse } from "@/lib/client";
|
||||||
import ueuseModule from "better-uwuzu-sdk/types/1.6.8/types/modules/ueuse";
|
import ueuseModule from "better-uwuzu-sdk/types/1.6.8/types/modules/ueuse";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import { EOL } from "node:os";
|
import { EOL } from "node:os";
|
||||||
@@ -14,31 +14,19 @@ const helps = [
|
|||||||
export default async function helpCommand(ueuse: ueuseModule, args: string[]) {
|
export default async function helpCommand(ueuse: ueuseModule, args: string[]) {
|
||||||
if (args[1] !== undefined) {
|
if (args[1] !== undefined) {
|
||||||
if (!(helps.includes(args[1]))) {
|
if (!(helps.includes(args[1]))) {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("invalidOption", { option: args[1], command: "help" }),
|
text: i18next.t("invalidOption", { option: args[1], command: "help" }),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "無効なオプションである旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("コマンド詳細の返信に失敗:", response.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.warn("コマンド詳細:", response.uniqid);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t(`fullHelp${args[1].charAt(0).toUpperCase()}${args[1].slice(1)}`),
|
text: i18next.t(`fullHelp${args[1].charAt(0).toUpperCase()}${args[1].slice(1)}`),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "コマンド詳細");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("コマンド詳細の返信に失敗:", response.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.warn("コマンド詳細:", response.uniqid);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,15 +40,8 @@ export default async function helpCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
summarys += `${i18next.t(`help${help.charAt(0).toUpperCase()}${help.slice(1)}`)}${EOL}`;
|
summarys += `${i18next.t(`help${help.charAt(0).toUpperCase()}${help.slice(1)}`)}${EOL}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: summarys.trim(),
|
text: summarys.trim(),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "コマンド概要");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("コマンド概要の返信に失敗:", response.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.warn("コマンド概要:", response.uniqid);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import client from "@/lib/client";
|
import client, { createUeuse } from "@/lib/client";
|
||||||
import Memory from "@/lib/memory";
|
import Memory from "@/lib/memory";
|
||||||
import ueuseModule from "better-uwuzu-sdk/types/1.6.8/types/modules/ueuse";
|
import ueuseModule from "better-uwuzu-sdk/types/1.6.8/types/modules/ueuse";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
@@ -100,13 +100,10 @@ try {
|
|||||||
if (!commandRow || commandRow === "") {
|
if (!commandRow || commandRow === "") {
|
||||||
console.warn("コマンドが本文から参照できません");
|
console.warn("コマンドが本文から参照できません");
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("commandNotFound"),
|
text: i18next.t("commandNotFound"),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "コマンドが見つからない旨");
|
||||||
|
|
||||||
if (!response.success)
|
|
||||||
console.warn("ユーズの作成に失敗しました:", response.error_code);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -132,13 +129,11 @@ try {
|
|||||||
default:
|
default:
|
||||||
console.warn("不明なコマンドが入力されました:", args[0]);
|
console.warn("不明なコマンドが入力されました:", args[0]);
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("unknownCommand", { command: args[0] }),
|
text: i18next.t("unknownCommand", { command: args[0] }),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "コマンドが不明である旨");
|
||||||
|
|
||||||
if (!response.success)
|
|
||||||
console.warn("ユーズの作成に失敗しました:", response.error_code);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|||||||
+47
-164
@@ -1,4 +1,4 @@
|
|||||||
import client from "@/lib/client";
|
import client, { createUeuse } from "@/lib/client";
|
||||||
import Memory from "@/lib/memory";
|
import Memory from "@/lib/memory";
|
||||||
import ueuseModule from "better-uwuzu-sdk/types/1.6.8/types/modules/ueuse";
|
import ueuseModule from "better-uwuzu-sdk/types/1.6.8/types/modules/ueuse";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
@@ -7,14 +7,10 @@ import { EOL } from "node:os";
|
|||||||
|
|
||||||
export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
||||||
if (!args[1]) {
|
if (!args[1]) {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("lackOption", { command: "miq" }),
|
text: i18next.t("lackOption", { command: "miq" }),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "オプションが不足している旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -32,14 +28,10 @@ export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
? itUeuse.error_code
|
? itUeuse.error_code
|
||||||
: "データなし");
|
: "データなし");
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("replySourceFailed"),
|
text: i18next.t("replySourceFailed"),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "ソースが見つからない旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.log("返信に失敗:", response.error_code);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -49,27 +41,19 @@ export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
switch (permission) {
|
switch (permission) {
|
||||||
case "me":
|
case "me":
|
||||||
if (itUeuse.data[0].account.userid !== ueuse.account.userid) {
|
if (itUeuse.data[0].account.userid !== ueuse.account.userid) {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("miqPermissionMe"),
|
text: i18next.t("miqPermissionMe"),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "権限が自分自身のみである旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case "consent":
|
case "consent":
|
||||||
if (itUeuse.data[0].account.userid !== ueuse.account.userid) {
|
if (itUeuse.data[0].account.userid !== ueuse.account.userid) {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("miqPermissionConsent", { userid: itUeuse.data[0].account.userid }),
|
text: i18next.t("miqPermissionConsent", { userid: itUeuse.data[0].account.userid }),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "権限が許可制である旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -85,19 +69,15 @@ export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (!(typeof result === "string")) {
|
if (!(typeof result === "string")) {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("miqGenerateFailed"),
|
text: i18next.t("miqGenerateFailed"),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "Make it a Quoteの生成に失敗した旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("miqSuccess", { message: (args[2] ?? "") === "color"
|
text: i18next.t("miqSuccess", { message: (args[2] ?? "") === "color"
|
||||||
? "カラーモードで生成しました。"
|
? "カラーモードで生成しました。"
|
||||||
: "モノクロモードで生成しました。"
|
: "モノクロモードで生成しました。"
|
||||||
@@ -106,14 +86,7 @@ export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
photo: [result],
|
photo: [result],
|
||||||
},
|
},
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "Make it a Quote");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("MiQを生成:", response.uniqid);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "permission":
|
case "permission":
|
||||||
@@ -121,33 +94,21 @@ export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
mem = Memory.memory;
|
mem = Memory.memory;
|
||||||
const permission = mem["permissions"][ueuse.account.userid] ?? "consent";
|
const permission = mem["permissions"][ueuse.account.userid] ?? "consent";
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("permissionResponse", { permission }),
|
text: i18next.t("permissionResponse", { permission }),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "権限");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("返信:", response.uniqid);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const availablePermission = ["me", "everyone", "consent"];
|
const availablePermission = ["me", "everyone", "consent"];
|
||||||
if (!(availablePermission.includes(args[2]))) {
|
if (!(availablePermission.includes(args[2]))) {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("invalidOption", { option: args[2], command: "miq" }),
|
text: i18next.t("invalidOption", { option: args[2], command: "miq" }),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "無効なオプションである旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("返信:", response.uniqid);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,33 +117,20 @@ export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
mem["permissions"][ueuse.account.userid] = args[2];
|
mem["permissions"][ueuse.account.userid] = args[2];
|
||||||
Memory.memory = mem;
|
Memory.memory = mem;
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("permissionChangeSuccess", { username: ueuse.account.username, permission: args[2] }),
|
text: i18next.t("permissionChangeSuccess", { username: ueuse.account.username, permission: args[2] }),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "権限の変更に成功した旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("返信:", response.uniqid);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "allow":
|
case "allow":
|
||||||
if (ueuse.replyid === "") {
|
if (ueuse.replyid === "") {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("injusticeFormat"),
|
text: i18next.t("injusticeFormat"),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "形式が異なる旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("返信:", response.uniqid);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,17 +139,11 @@ export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
const permission = mem["permissions"][ueuse.account.userid] ?? "consent";
|
const permission = mem["permissions"][ueuse.account.userid] ?? "consent";
|
||||||
|
|
||||||
if (permission !== "consent") {
|
if (permission !== "consent") {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("permisionIsNotConsent"),
|
text: i18next.t("permisionIsNotConsent"),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "権限が許可制ではない旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("返信:", response.uniqid);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -215,30 +157,20 @@ export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
? confirmUeuse.error_code
|
? confirmUeuse.error_code
|
||||||
: "データなし");
|
: "データなし");
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("replySourceFailed"),
|
text: i18next.t("replySourceFailed"),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "ソースが見つからない旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.log("返信に失敗:", response.error_code);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (confirmUeuse.data[0].replyid === "") {
|
if (confirmUeuse.data[0].replyid === "") {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("injusticeFormat"),
|
text: i18next.t("injusticeFormat"),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "形式が異なる旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("返信:", response.uniqid);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -248,14 +180,10 @@ export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
? confirmUeuse.error_code
|
? confirmUeuse.error_code
|
||||||
: "データなし");
|
: "データなし");
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("replySourceIsNotThis"),
|
text: i18next.t("replySourceIsNotThis"),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "返信元がこのBotではない旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.log("返信に失敗:", response.error_code);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -269,30 +197,19 @@ export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
? requestUeuse.error_code
|
? requestUeuse.error_code
|
||||||
: "データなし");
|
: "データなし");
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("replySourceFailed"),
|
text: i18next.t("replySourceFailed"),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "ソースが見つからない旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.log("返信に失敗:", response.error_code);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (requestUeuse.data[0].replyid === "") {
|
if (requestUeuse.data[0].replyid === "") {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("injusticeFormat"),
|
text: i18next.t("injusticeFormat"),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "形式が異なる旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("返信:", response.uniqid);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -305,30 +222,19 @@ export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
? sourceUeuse.error_code
|
? sourceUeuse.error_code
|
||||||
: "データなし");
|
: "データなし");
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("replySourceFailed"),
|
text: i18next.t("replySourceFailed"),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "ソースが見つからない旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.log("返信に失敗:", response.error_code);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sourceUeuse.data[0].account.userid !== ueuse.account.userid) {
|
if (sourceUeuse.data[0].account.userid !== ueuse.account.userid) {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("replySourceIsNotSourceUser"),
|
text: i18next.t("replySourceIsNotSourceUser"),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "ソースのユーズと/miq allowのユーザーが一致しない旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.log("返信に失敗:", response.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.warn("ソースのユーズと/miq allowのユーザーが一致しない:", response.uniqid);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -345,27 +251,15 @@ export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
if (!commandRow || commandRow === "") {
|
if (!commandRow || commandRow === "") {
|
||||||
console.warn("コマンドが本文から参照できません");
|
console.warn("コマンドが本文から参照できません");
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("commandNotFound"),
|
text: i18next.t("commandNotFound"),
|
||||||
replyid: requestUeuse.data[0].uniqid,
|
replyid: requestUeuse.data[0].uniqid,
|
||||||
});
|
}, "コマンドが見つからない旨");
|
||||||
|
|
||||||
if (!response.success)
|
await createUeuse({
|
||||||
console.warn("ユーズの作成に失敗しました:", response.error_code);
|
text: i18next.t("injusticeFormat"),
|
||||||
|
replyid: ueuse.uniqid,
|
||||||
{
|
}, "形式が異なる旨");
|
||||||
const response = await client.request("ueuse/create", {
|
|
||||||
text: i18next.t("injusticeFormat"),
|
|
||||||
replyid: ueuse.uniqid,
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("返信:", response.uniqid);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -382,19 +276,15 @@ export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (!(typeof result === "string")) {
|
if (!(typeof result === "string")) {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("miqGenerateFailed"),
|
text: i18next.t("miqGenerateFailed"),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "Make it a Quoteの生成に失敗した旨");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("miqSuccess", { message: ((requestUeuseArgs[2] ?? "") === "color"
|
text: i18next.t("miqSuccess", { message: ((requestUeuseArgs[2] ?? "") === "color"
|
||||||
? "カラーモードで生成しました。"
|
? "カラーモードで生成しました。"
|
||||||
: "モノクロモードで生成しました。")
|
: "モノクロモードで生成しました。")
|
||||||
@@ -404,14 +294,7 @@ export default async function miqCommand(ueuse: ueuseModule, args: string[]) {
|
|||||||
photo: [result],
|
photo: [result],
|
||||||
},
|
},
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "Make it a Quote");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("返信に失敗:", response.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("MiQを生成:", response.uniqid);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import client from "@/lib/client";
|
import client, { createUeuse } from "@/lib/client";
|
||||||
import ueuseModule from "better-uwuzu-sdk/types/1.6.8/types/modules/ueuse";
|
import ueuseModule from "better-uwuzu-sdk/types/1.6.8/types/modules/ueuse";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
|
|
||||||
@@ -14,15 +14,8 @@ export default async function unfollowCommand(ueuse: ueuseModule) {
|
|||||||
|
|
||||||
console.log("フォロー解除:", unfollow.userid);
|
console.log("フォロー解除:", unfollow.userid);
|
||||||
|
|
||||||
const notice = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("unfollowedNotification", { username: ueuse.account.username }),
|
text: i18next.t("unfollowedNotification", { username: ueuse.account.username }),
|
||||||
replyid: ueuse.uniqid,
|
replyid: ueuse.uniqid,
|
||||||
});
|
}, "フォロー解除通知");
|
||||||
|
|
||||||
if (!notice.success) {
|
|
||||||
console.warn("フォロー解除通知に失敗:", notice.error_code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("フォロー解除通知:", notice.uniqid);
|
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import client from "@/lib/client";
|
import { createUeuse } from "@/lib/client";
|
||||||
import config from "@/lib/config";
|
import config from "@/lib/config";
|
||||||
import initI18n from "@/lib/i18n";
|
import initI18n from "@/lib/i18n";
|
||||||
import Memory from "@/lib/memory";
|
import Memory from "@/lib/memory";
|
||||||
@@ -169,7 +169,7 @@ const processMessage = async (message: any) => {
|
|||||||
`【${label}】${EOL}${addrs.join("・")}`)
|
`【${label}】${EOL}${addrs.join("・")}`)
|
||||||
.join(EOL.repeat(2)).trim();
|
.join(EOL.repeat(2)).trim();
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("earthquakeNotice", {
|
text: i18next.t("earthquakeNotice", {
|
||||||
occuredTime: format(new Date(message.earthquake.time), "yyyy年M月d日 H:mm"),
|
occuredTime: format(new Date(message.earthquake.time), "yyyy年M月d日 H:mm"),
|
||||||
maxScale: scaleMessages[String(message.earthquake.maxScale)],
|
maxScale: scaleMessages[String(message.earthquake.maxScale)],
|
||||||
@@ -194,14 +194,7 @@ const processMessage = async (message: any) => {
|
|||||||
? ""
|
? ""
|
||||||
: EOL + message.comments.freeFormComment + EOL,
|
: EOL + message.comments.freeFormComment + EOL,
|
||||||
}),
|
}),
|
||||||
});
|
}, "地震発生情報");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("ユーズの作成に失敗しました:", response.error_code);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("地震発生情報を投稿:", response.uniqid);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 552:
|
case 552:
|
||||||
@@ -209,19 +202,12 @@ const processMessage = async (message: any) => {
|
|||||||
console.log("津波予報情報を受信しました");
|
console.log("津波予報情報を受信しました");
|
||||||
|
|
||||||
if (message.cancelled) {
|
if (message.cancelled) {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("tsunamiCancelNotice", {
|
text: i18next.t("tsunamiCancelNotice", {
|
||||||
announceTime: format(new Date(message.issue.time), "yyyy年M月d日 H:mm:ss"),
|
announceTime: format(new Date(message.issue.time), "yyyy年M月d日 H:mm:ss"),
|
||||||
source: message.issue.source ?? "不明",
|
source: message.issue.source ?? "不明",
|
||||||
}),
|
}),
|
||||||
});
|
}, "津波予報解除情報");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("ユーズの作成に失敗しました:", response.error_code);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("津波予報解除情報を投稿:", response.uniqid);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -252,20 +238,13 @@ const processMessage = async (message: any) => {
|
|||||||
}) + EOL.repeat(2);
|
}) + EOL.repeat(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("tsunamiForecastNotice", {
|
text: i18next.t("tsunamiForecastNotice", {
|
||||||
announceTime: format(new Date(message.issue.time), "yyyy年M月d日 H:mm:ss"),
|
announceTime: format(new Date(message.issue.time), "yyyy年M月d日 H:mm:ss"),
|
||||||
areasMsg: areasMsg.trim(),
|
areasMsg: areasMsg.trim(),
|
||||||
source: message.issue.source ?? "不明",
|
source: message.issue.source ?? "不明",
|
||||||
}),
|
}),
|
||||||
});
|
}, "津波予報情報");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("ユーズの作成に失敗しました:", response.error_code);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("津波予報情報を投稿:", response.uniqid);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 556:
|
case 556:
|
||||||
@@ -273,21 +252,14 @@ const processMessage = async (message: any) => {
|
|||||||
console.log("緊急地震速報(警報)を受信しました");
|
console.log("緊急地震速報(警報)を受信しました");
|
||||||
|
|
||||||
if (message.cancelled) {
|
if (message.cancelled) {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("eewCancelNotice", {
|
text: i18next.t("eewCancelNotice", {
|
||||||
isTest: message.test
|
isTest: message.test
|
||||||
? "⚒️これは**テストです。**"
|
? "⚒️これは**テストです。**"
|
||||||
: "🚨これは**テストではありません。**",
|
: "🚨これは**テストではありません。**",
|
||||||
announceTime: format(new Date(message.issue.time), "yyyy年M月d日 H:mm:ss"),
|
announceTime: format(new Date(message.issue.time), "yyyy年M月d日 H:mm:ss"),
|
||||||
}),
|
}),
|
||||||
});
|
}, "緊急地震速報(警報)解除情報");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("ユーズの作成に失敗しました:", response.error_code);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("緊急地震速報(警報)解除情報を投稿:", response.uniqid);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const kindMessages: Record<string, string> = {
|
const kindMessages: Record<string, string> = {
|
||||||
@@ -313,7 +285,7 @@ const processMessage = async (message: any) => {
|
|||||||
}) + EOL.repeat(2);
|
}) + EOL.repeat(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("eewNotice", {
|
text: i18next.t("eewNotice", {
|
||||||
isTest: message.test
|
isTest: message.test
|
||||||
? "⚒️これは**テストです。**"
|
? "⚒️これは**テストです。**"
|
||||||
@@ -337,14 +309,7 @@ const processMessage = async (message: any) => {
|
|||||||
? EOL.repeat(2) + areasMsg.trim()
|
? EOL.repeat(2) + areasMsg.trim()
|
||||||
: "",
|
: "",
|
||||||
}),
|
}),
|
||||||
});
|
}, "緊急地震速報(警報)情報");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("ユーズの作成に失敗しました:", response.error_code);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("緊急地震速報(警報)情報を投稿:", response.uniqid);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import client from "@/lib/client";
|
import { createUeuse } from "@/lib/client";
|
||||||
import initI18n from "@/lib/i18n";
|
import initI18n from "@/lib/i18n";
|
||||||
import { format } from "date-fns";
|
import { format } from "date-fns";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
@@ -10,16 +10,11 @@ parentPort?.on("message", async () => {
|
|||||||
console.log("新年迎春の投稿を行います");
|
console.log("新年迎春の投稿を行います");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("hnyNotice", { year: String(new Date().getFullYear()) }),
|
text: i18next.t("hnyNotice", { year: String(new Date().getFullYear()) }),
|
||||||
});
|
}, "新年迎春");
|
||||||
|
|
||||||
if (!response.success) {
|
console.log("新年迎春投稿時刻:", format(new Date(), "yyyy/M/d H:mm:ss:SSS"));
|
||||||
console.warn("新年迎春投稿に失敗しました:", response.error_code);
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("新年迎春投稿:", `${response.uniqid} (${format(new Date(), "yyyy/M/d H:mm:ss:SSS")})`);
|
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
console.error("message" in err
|
console.error("message" in err
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import client from "@/lib/client";
|
import { createUeuse } from "@/lib/client";
|
||||||
import initI18n from "@/lib/i18n";
|
import initI18n from "@/lib/i18n";
|
||||||
import { format } from "date-fns";
|
import { format } from "date-fns";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
@@ -7,16 +7,10 @@ await initI18n();
|
|||||||
console.log("時報の投稿を行います");
|
console.log("時報の投稿を行います");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await client.request("ueuse/create", {
|
await createUeuse({
|
||||||
text: i18next.t("timeNotice", { time: format(new Date(), "H:mm") }),
|
text: i18next.t("timeNotice", { time: format(new Date(), "H:mm") }),
|
||||||
});
|
}, "時報");
|
||||||
|
|
||||||
if (!response.success) {
|
|
||||||
console.warn("時報投稿に失敗しました:", response.error_code);
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("時報投稿:", response.uniqid);
|
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
console.error("message" in err
|
console.error("message" in err
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import client from "@/lib/client";
|
import client from "@/lib/client";
|
||||||
|
import config from "@/lib/config";
|
||||||
import initI18n from "@/lib/i18n";
|
import initI18n from "@/lib/i18n";
|
||||||
import Memory from "@/lib/memory";
|
import Memory from "@/lib/memory";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
@@ -61,12 +62,27 @@ if (!isMainThread && workerData === "scheduledWeatherNotice") {
|
|||||||
console.log("天気予報の投稿を行います");
|
console.log("天気予報の投稿を行います");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const provisionalUeuse = await client.request("ueuse/create", {
|
let provisionalUeuse;
|
||||||
text: i18next.t("weatherProvisional"),
|
let success = false;
|
||||||
});
|
|
||||||
|
|
||||||
if (!provisionalUeuse.success) {
|
for (let attempt = 1; attempt <= config.ueuse.maxRetries; attempt++) {
|
||||||
console.error("天気仮投稿に失敗しました:", provisionalUeuse.error_code);
|
provisionalUeuse = await client.request("ueuse/create", {
|
||||||
|
text: i18next.t("weatherProvisional"),
|
||||||
|
});
|
||||||
|
|
||||||
|
if (provisionalUeuse.success) {
|
||||||
|
success = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.warn(`天気仮投稿に失敗しました (試行 ${attempt}/${config.ueuse.maxRetries}):`, provisionalUeuse.error_code);
|
||||||
|
if (attempt < config.ueuse.maxRetries) {
|
||||||
|
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!success || !provisionalUeuse?.success) {
|
||||||
|
console.error("天気仮投稿の全試行に失敗したため、終了します。");
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,8 +100,9 @@ if (!isMainThread && workerData === "scheduledWeatherNotice") {
|
|||||||
|
|
||||||
export async function weatherReply(uniqid: string) {
|
export async function weatherReply(uniqid: string) {
|
||||||
// インデックス
|
// インデックス
|
||||||
|
const aboutFullLength = 3100;
|
||||||
const mem = Memory.memory;
|
const mem = Memory.memory;
|
||||||
const splitCount = Math.round(3100 / mem.max_length);
|
const splitCount = Math.round(aboutFullLength / mem.max_length);
|
||||||
const total = cityList.length;
|
const total = cityList.length;
|
||||||
const chunkSizes = Array(splitCount).fill(0).map((_, i) =>
|
const chunkSizes = Array(splitCount).fill(0).map((_, i) =>
|
||||||
Math.floor((total + i) / splitCount)
|
Math.floor((total + i) / splitCount)
|
||||||
@@ -149,13 +166,29 @@ export async function weatherReply(uniqid: string) {
|
|||||||
|
|
||||||
// 分割投稿
|
// 分割投稿
|
||||||
for (let i = 0; i < splitCount; i++) {
|
for (let i = 0; i < splitCount; i++) {
|
||||||
const replyUeuse = await client.request("ueuse/create", {
|
let replyUeuse;
|
||||||
text: weatherResults[i].trim(),
|
let success = false;
|
||||||
replyid: uniqid,
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!replyUeuse.success) {
|
for (let attempt = 1; attempt <= config.ueuse.maxRetries; attempt++) {
|
||||||
console.error("天気返信に失敗しました:", replyUeuse.error_code);
|
replyUeuse = await client.request("ueuse/create", {
|
||||||
|
text: weatherResults[i].trim(),
|
||||||
|
replyid: uniqid,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (replyUeuse.success) {
|
||||||
|
success = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.warn(`天気返信に失敗しました (試行 ${attempt}/${config.ueuse.maxRetries}):`, replyUeuse.error_code);
|
||||||
|
if (attempt < config.ueuse.maxRetries) {
|
||||||
|
await new Promise(resolve => setTimeout(resolve, config.ueuse.retryInterval));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!success || !replyUeuse?.success) {
|
||||||
|
console.error("天気返信の全試行に失敗したため、終了します。");
|
||||||
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("天気返信:", replyUeuse.uniqid);
|
console.log("天気返信:", replyUeuse.uniqid);
|
||||||
|
|||||||
+61
-1
@@ -2,6 +2,8 @@ import uwuzu from "better-uwuzu-sdk";
|
|||||||
import config from "@/lib/config";
|
import config from "@/lib/config";
|
||||||
import Parser from "better-uwuzu-sdk/1.6.8/parser";
|
import Parser from "better-uwuzu-sdk/1.6.8/parser";
|
||||||
import ApiMap from "better-uwuzu-sdk/types/1.6.8/map";
|
import ApiMap from "better-uwuzu-sdk/types/1.6.8/map";
|
||||||
|
import Memory from "@/lib/memory";
|
||||||
|
import { EOL } from "node:os";
|
||||||
|
|
||||||
const client = new uwuzu<ApiMap>({
|
const client = new uwuzu<ApiMap>({
|
||||||
origin: config.uwuzu.origin,
|
origin: config.uwuzu.origin,
|
||||||
@@ -9,5 +11,63 @@ const client = new uwuzu<ApiMap>({
|
|||||||
});
|
});
|
||||||
|
|
||||||
client.token = config.uwuzu.token;
|
client.token = config.uwuzu.token;
|
||||||
|
|
||||||
export default client;
|
export default client;
|
||||||
|
|
||||||
|
export const createUeuse = async (data: ApiMap["ueuse/create"]["body"], title: string) => {
|
||||||
|
const mem = Memory.memory;
|
||||||
|
const maxLength = mem.max_length;
|
||||||
|
const excessedMessage = "👉返信に続きがあります。";
|
||||||
|
|
||||||
|
let remainingText = data.text;
|
||||||
|
let firstUniqid = "";
|
||||||
|
|
||||||
|
while (remainingText.length > 0) {
|
||||||
|
let currentText = "";
|
||||||
|
let bodyTextLength = 0;
|
||||||
|
|
||||||
|
if (remainingText.length <= maxLength) {
|
||||||
|
currentText = remainingText;
|
||||||
|
bodyTextLength = remainingText.length;
|
||||||
|
remainingText = "";
|
||||||
|
} else {
|
||||||
|
bodyTextLength = maxLength - excessedMessage.length - 2;
|
||||||
|
currentText = remainingText.slice(0, bodyTextLength) + EOL.repeat(2) + excessedMessage;
|
||||||
|
remainingText = remainingText.slice(bodyTextLength);
|
||||||
|
}
|
||||||
|
|
||||||
|
let postedUniqid = "";
|
||||||
|
let success = false;
|
||||||
|
|
||||||
|
for (let attempt = 1; attempt <= config.ueuse.maxRetries; attempt++) {
|
||||||
|
const response = await client.request("ueuse/create", {
|
||||||
|
...data,
|
||||||
|
text: currentText,
|
||||||
|
replyid: data.replyid === undefined && firstUniqid !== ""
|
||||||
|
? firstUniqid
|
||||||
|
: data.replyid,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (response.success) {
|
||||||
|
success = true;
|
||||||
|
postedUniqid = response.uniqid;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.warn(`${title}の投稿に失敗しました (試行 ${attempt}/${config.ueuse.maxRetries}):`, response.error_code);
|
||||||
|
if (attempt < config.ueuse.maxRetries) {
|
||||||
|
await new Promise(resolve => setTimeout(resolve, config.ueuse.retryInterval));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!success) {
|
||||||
|
console.error(`${title}の全試行が失敗したため、処理を中断します。`);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (firstUniqid === "") {
|
||||||
|
firstUniqid = postedUniqid;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`${title}を投稿:`, postedUniqid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -34,6 +34,10 @@ const schema = z.object({
|
|||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
|
ueuse: z.object({
|
||||||
|
maxRetries: z.number().int().positive(),
|
||||||
|
retryInterval: z.number().positive(),
|
||||||
|
}),
|
||||||
debug: z.boolean().optional(),
|
debug: z.boolean().optional(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user