Use attachment URL for image & add timestamp

This commit is contained in:
nimbleghost 2023-06-07 21:40:35 +02:00
parent f3db0e083e
commit a8db08c7d4
2 changed files with 13 additions and 2 deletions

View file

@ -46,6 +46,8 @@ self.addEventListener("push", (event) => {
const db = await getDbAsync();
const image = message.attachment?.name.match(/\.(png|jpe?g|gif|webp)$/i) ? message.attachment.url : undefined;
await Promise.all([
(async () => {
await db.notifications.add({
@ -61,11 +63,14 @@ self.addEventListener("push", (event) => {
db.subscriptions.update(subscriptionId, {
last: message.id,
}),
// Please update the desktop notification in Notifier.js to match any changes
self.registration.showNotification(formatTitleWithDefault(message, message.topic), {
tag: subscriptionId,
body: formatMessage(message),
icon: "/static/images/ntfy.png",
icon: image ?? "/static/images/ntfy.png",
image,
data,
timestamp: message.time * 1_000,
}),
]);
} else {
@ -81,6 +86,8 @@ self.addEventListener("push", (event) => {
});
self.addEventListener("notificationclick", (event) => {
console.log("[ServiceWorker] NotificationClick");
event.notification.close();
event.waitUntil(

View file

@ -17,13 +17,17 @@ class Notifier {
const displayName = topicDisplayName(subscription);
const message = formatMessage(notification);
const title = formatTitleWithDefault(notification, displayName);
const image = notification.attachment?.name.match(/\.(png|jpe?g|gif|webp)$/i) ? notification.attachment.url : undefined;
// Show notification
console.log(`[Notifier, ${shortUrl}] Displaying notification ${notification.id}: ${message}`);
// Please update sw.js if formatting changes
const n = new Notification(title, {
body: message,
tag: subscription.id,
icon: logo,
icon: image ?? logo,
image,
timestamp: message.time * 1_000,
});
if (notification.click) {
n.onclick = () => openUrl(notification.click);