- {{ t("route.chat") }}
+ {{ t("route.chat") }}
{{ t("route.thread") }}
{{ t("route.channel") }}
- {{ tg.chatId }}
+ {{ tg.chatId }}
{{ tg.threadId }}
{{ tg.channelId }}
diff --git a/app/components/RouteEditor.vue b/app/components/RouteEditor.vue
index afc0719..e6df690 100644
--- a/app/components/RouteEditor.vue
+++ b/app/components/RouteEditor.vue
@@ -12,7 +12,7 @@ import {
} from "~/composables/useFilterNode";
interface TargetForm {
- platform: "discord" | "telegram";
+ platform: "discord" | "telegram" | "feishu";
channelId: string;
threadId: string;
chatId: string;
@@ -129,6 +129,10 @@ function collect(): Route | null {
const chatId = tg.chatId.trim();
if (!chatId) continue;
targets.push({ platform: "telegram", chatId, topicId: tg.topicId.trim() || undefined });
+ } else if (tg.platform === "feishu") {
+ const chatId = tg.chatId.trim();
+ if (!chatId) continue;
+ targets.push({ platform: "feishu", chatId });
} else {
const channelId = tg.channelId.trim();
if (!channelId) continue;
@@ -170,7 +174,7 @@ function save(): void {
return;
}
form.targets.forEach((tg, i) => {
- if (tg.platform === "telegram" && !tg.chatId.trim()) {
+ if ((tg.platform === "telegram" || tg.platform === "feishu") && !tg.chatId.trim()) {
targetError.value = t("routeEditor.errChat", { n: i + 1 });
} else if (tg.platform === "discord" && !tg.channelId.trim()) {
targetError.value = t("routeEditor.errChannel", { n: i + 1 });
@@ -283,7 +287,7 @@ watch(
? r.targets.map((tg) => ({
...blankTarget(),
...tg,
- platform: tg.platform === "telegram" ? "telegram" : "discord",
+ platform: tg.platform === "telegram" ? "telegram" : tg.platform === "feishu" ? "feishu" : "discord",
}))
: [blankTarget()];
if (r?.ast) {
@@ -481,6 +485,7 @@ watch(
-
+
+
+
+