mirror of
https://github.com/nicotsx/ironmount.git
synced 2025-12-10 12:10:51 +01:00
telegram notification
This commit is contained in:
@@ -1990,6 +1990,10 @@ export type GetScheduleNotificationsResponses = {
|
||||
} | {
|
||||
shoutrrrUrl: string;
|
||||
type: 'custom';
|
||||
} | {
|
||||
type: 'telegram';
|
||||
botToken: string;
|
||||
chatId: string;
|
||||
} | {
|
||||
type: 'discord';
|
||||
webhookUrl: string;
|
||||
@@ -2007,7 +2011,7 @@ export type GetScheduleNotificationsResponses = {
|
||||
enabled: boolean;
|
||||
id: number;
|
||||
name: string;
|
||||
type: 'custom' | 'discord' | 'email' | 'gotify' | 'ntfy' | 'pushover' | 'slack';
|
||||
type: 'custom' | 'discord' | 'email' | 'gotify' | 'ntfy' | 'pushover' | 'slack' | 'telegram';
|
||||
updatedAt: number;
|
||||
};
|
||||
destinationId: number;
|
||||
@@ -2074,6 +2078,10 @@ export type UpdateScheduleNotificationsResponses = {
|
||||
} | {
|
||||
shoutrrrUrl: string;
|
||||
type: 'custom';
|
||||
} | {
|
||||
type: 'telegram';
|
||||
botToken: string;
|
||||
chatId: string;
|
||||
} | {
|
||||
type: 'discord';
|
||||
webhookUrl: string;
|
||||
@@ -2091,7 +2099,7 @@ export type UpdateScheduleNotificationsResponses = {
|
||||
enabled: boolean;
|
||||
id: number;
|
||||
name: string;
|
||||
type: 'custom' | 'discord' | 'email' | 'gotify' | 'ntfy' | 'pushover' | 'slack';
|
||||
type: 'custom' | 'discord' | 'email' | 'gotify' | 'ntfy' | 'pushover' | 'slack' | 'telegram';
|
||||
updatedAt: number;
|
||||
};
|
||||
destinationId: number;
|
||||
@@ -2147,6 +2155,10 @@ export type ListNotificationDestinationsResponses = {
|
||||
} | {
|
||||
shoutrrrUrl: string;
|
||||
type: 'custom';
|
||||
} | {
|
||||
type: 'telegram';
|
||||
botToken: string;
|
||||
chatId: string;
|
||||
} | {
|
||||
type: 'discord';
|
||||
webhookUrl: string;
|
||||
@@ -2164,7 +2176,7 @@ export type ListNotificationDestinationsResponses = {
|
||||
enabled: boolean;
|
||||
id: number;
|
||||
name: string;
|
||||
type: 'custom' | 'discord' | 'email' | 'gotify' | 'ntfy' | 'pushover' | 'slack';
|
||||
type: 'custom' | 'discord' | 'email' | 'gotify' | 'ntfy' | 'pushover' | 'slack' | 'telegram';
|
||||
updatedAt: number;
|
||||
}>;
|
||||
};
|
||||
@@ -2204,6 +2216,10 @@ export type CreateNotificationDestinationData = {
|
||||
} | {
|
||||
shoutrrrUrl: string;
|
||||
type: 'custom';
|
||||
} | {
|
||||
type: 'telegram';
|
||||
botToken: string;
|
||||
chatId: string;
|
||||
} | {
|
||||
type: 'discord';
|
||||
webhookUrl: string;
|
||||
@@ -2260,6 +2276,10 @@ export type CreateNotificationDestinationResponses = {
|
||||
} | {
|
||||
shoutrrrUrl: string;
|
||||
type: 'custom';
|
||||
} | {
|
||||
type: 'telegram';
|
||||
botToken: string;
|
||||
chatId: string;
|
||||
} | {
|
||||
type: 'discord';
|
||||
webhookUrl: string;
|
||||
@@ -2277,7 +2297,7 @@ export type CreateNotificationDestinationResponses = {
|
||||
enabled: boolean;
|
||||
id: number;
|
||||
name: string;
|
||||
type: 'custom' | 'discord' | 'email' | 'gotify' | 'ntfy' | 'pushover' | 'slack';
|
||||
type: 'custom' | 'discord' | 'email' | 'gotify' | 'ntfy' | 'pushover' | 'slack' | 'telegram';
|
||||
updatedAt: number;
|
||||
};
|
||||
};
|
||||
@@ -2363,6 +2383,10 @@ export type GetNotificationDestinationResponses = {
|
||||
} | {
|
||||
shoutrrrUrl: string;
|
||||
type: 'custom';
|
||||
} | {
|
||||
type: 'telegram';
|
||||
botToken: string;
|
||||
chatId: string;
|
||||
} | {
|
||||
type: 'discord';
|
||||
webhookUrl: string;
|
||||
@@ -2380,7 +2404,7 @@ export type GetNotificationDestinationResponses = {
|
||||
enabled: boolean;
|
||||
id: number;
|
||||
name: string;
|
||||
type: 'custom' | 'discord' | 'email' | 'gotify' | 'ntfy' | 'pushover' | 'slack';
|
||||
type: 'custom' | 'discord' | 'email' | 'gotify' | 'ntfy' | 'pushover' | 'slack' | 'telegram';
|
||||
updatedAt: number;
|
||||
};
|
||||
};
|
||||
@@ -2420,6 +2444,10 @@ export type UpdateNotificationDestinationData = {
|
||||
} | {
|
||||
shoutrrrUrl: string;
|
||||
type: 'custom';
|
||||
} | {
|
||||
type: 'telegram';
|
||||
botToken: string;
|
||||
chatId: string;
|
||||
} | {
|
||||
type: 'discord';
|
||||
webhookUrl: string;
|
||||
@@ -2486,6 +2514,10 @@ export type UpdateNotificationDestinationResponses = {
|
||||
} | {
|
||||
shoutrrrUrl: string;
|
||||
type: 'custom';
|
||||
} | {
|
||||
type: 'telegram';
|
||||
botToken: string;
|
||||
chatId: string;
|
||||
} | {
|
||||
type: 'discord';
|
||||
webhookUrl: string;
|
||||
@@ -2503,7 +2535,7 @@ export type UpdateNotificationDestinationResponses = {
|
||||
enabled: boolean;
|
||||
id: number;
|
||||
name: string;
|
||||
type: 'custom' | 'discord' | 'email' | 'gotify' | 'ntfy' | 'pushover' | 'slack';
|
||||
type: 'custom' | 'discord' | 'email' | 'gotify' | 'ntfy' | 'pushover' | 'slack' | 'telegram';
|
||||
updatedAt: number;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -70,6 +70,11 @@ const defaultValuesForType = {
|
||||
apiToken: "",
|
||||
priority: 0 as const,
|
||||
},
|
||||
telegram: {
|
||||
type: "telegram" as const,
|
||||
botToken: "",
|
||||
chatId: ""
|
||||
},
|
||||
custom: {
|
||||
type: "custom" as const,
|
||||
shoutrrrUrl: "",
|
||||
@@ -146,6 +151,7 @@ export const CreateNotificationForm = ({ onSubmit, mode = "create", initialValue
|
||||
<SelectItem value="gotify">Gotify</SelectItem>
|
||||
<SelectItem value="ntfy">Ntfy</SelectItem>
|
||||
<SelectItem value="pushover">Pushover</SelectItem>
|
||||
<SelectItem value="telegram">Telegram</SelectItem>
|
||||
<SelectItem value="custom">Custom (Shoutrrr URL)</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
@@ -613,6 +619,43 @@ export const CreateNotificationForm = ({ onSubmit, mode = "create", initialValue
|
||||
</>
|
||||
)}
|
||||
|
||||
{watchedType === "telegram" && (
|
||||
<>
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="botToken"
|
||||
render={({ field }) => (
|
||||
<FormItem>
|
||||
<FormLabel>Bot Token</FormLabel>
|
||||
<FormControl>
|
||||
<Input {...field} type="password" placeholder="123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11" />
|
||||
</FormControl>
|
||||
<FormDescription>
|
||||
Telegram bot token. Get this from BotFather when you create your bot.
|
||||
</FormDescription>
|
||||
<FormMessage />
|
||||
</FormItem>
|
||||
)}
|
||||
/>
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="chatId"
|
||||
render={({ field }) => (
|
||||
<FormItem>
|
||||
<FormLabel>Chat ID</FormLabel>
|
||||
<FormControl>
|
||||
<Input {...field} placeholder="-1231234567890" />
|
||||
</FormControl>
|
||||
<FormDescription>
|
||||
Telegram chat ID to send notifications to.
|
||||
</FormDescription>
|
||||
<FormMessage />
|
||||
</FormItem>
|
||||
)}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
|
||||
{watchedType === "custom" && (
|
||||
<FormField
|
||||
control={form.control}
|
||||
|
||||
@@ -102,6 +102,7 @@ export default function Notifications({ loaderData }: Route.ComponentProps) {
|
||||
<SelectItem value="gotify">Gotify</SelectItem>
|
||||
<SelectItem value="ntfy">Ntfy</SelectItem>
|
||||
<SelectItem value="pushover">Pushover</SelectItem>
|
||||
<SelectItem value="telegram">Telegram</SelectItem>
|
||||
<SelectItem value="custom">Custom</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
|
||||
Reference in New Issue
Block a user