33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
export async function sendNotification(title: string, body: string, link?: string | null) {
|
|
console.dir({
|
|
sendNotification: {
|
|
title,
|
|
body,
|
|
link
|
|
}
|
|
});
|
|
if ( ! ( process.env.notification_mock == "true" ) ) {
|
|
const response = await fetch(`${ process.env.apprise_https == "true" ? "https" : "http"}://${process.env.apprise_host ? process.env.apprise_host : "apprise"}:${process.env.apprise_port ? String(process.env.apprise_port) : "80" }/notify"`, {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/json"
|
|
},
|
|
body: JSON.stringify({
|
|
urls: [
|
|
`ntfys://${process.env.ntfy_username}:${process.env.ntfy_password}@${process.env.ntfy_host}/${process.env.ntfy_topic}${ link ? `?click=${link}`: "?click=https://77th-jsoc.com/#/events" }`,
|
|
`discord://${process.env.dc_webhook}?avatar_url=${process.env.dc_avatar_url}&botname=${process.env.dc_botname}`
|
|
].join(","),
|
|
title: title,
|
|
body: body,
|
|
format: "markdown"
|
|
})
|
|
});
|
|
const responseBody = await response.json();
|
|
return responseBody;
|
|
} else {
|
|
console.dir({
|
|
sendNotification: "mocking"
|
|
})
|
|
}
|
|
|
|
} |