audiobookshelf/server/utils/notifications.js
Nicholas W 27b3a44147
Add: Backup notification (#3225)
* Formatting updates

* Add: backup completion notification

* Fix: comment for backup

* Add: backup size units to notification

* Add: failed backup notification

* Add: calls to failed backup notification

* Update: notification OpenAPI spec

* Update notifications to first check if any are active for an event, update JS docs

---------

Co-authored-by: advplyr <advplyr@protonmail.com>
2024-08-18 14:32:05 -05:00

75 lines
2.6 KiB
JavaScript

const { version } = require('../../package.json')
module.exports.notificationData = {
events: [
{
name: 'onPodcastEpisodeDownloaded',
requiresLibrary: true,
libraryMediaType: 'podcast',
description: 'Triggered when a podcast episode is auto-downloaded',
variables: ['libraryItemId', 'libraryId', 'podcastTitle', 'podcastAuthor', 'podcastDescription', 'podcastGenres', 'episodeTitle', 'episodeSubtitle', 'episodeDescription', 'libraryName', 'episodeId', 'mediaTags'],
defaults: {
title: 'New {{podcastTitle}} Episode!',
body: '{{episodeTitle}} has been added to {{libraryName}} library.'
},
testData: {
libraryItemId: 'li_notification_test',
libraryId: 'lib_test',
libraryName: 'Podcasts',
mediaTags: 'TestTag1, TestTag2',
podcastTitle: 'Abs Test Podcast',
podcastAuthor: 'Audiobookshelf',
podcastDescription: 'Description of the Abs Test Podcast belongs here.',
podcastGenres: 'TestGenre1, TestGenre2',
episodeId: 'ep_notification_test',
episodeTitle: 'Successful Test Episode',
episodeSubtitle: 'Episode Subtitle',
episodeDescription: 'Some description of the podcast episode.'
}
},
{
name: 'onBackupCompleted',
requiresLibrary: false,
description: 'Triggered when a backup is completed',
variables: ['completionTime', 'backupPath', 'backupSize', 'backupCount', 'removedOldest'],
defaults: {
title: 'Backup Completed',
body: 'Backup has been completed successfully.\n\nPath: {{backupPath}}\nSize: {{backupSize}} bytes\nCount: {{backupCount}}\nRemoved Oldest: {{removedOldest}}'
},
testData: {
completionTime: '12:00 AM',
backupPath: 'path/to/backup',
backupSize: '1.23 MB',
backupCount: '1',
removedOldest: 'false'
}
},
{
name: 'onBackupFailed',
requiresLibrary: false,
description: 'Triggered when a backup fails',
variables: ['errorMsg'],
defaults: {
title: 'Backup Failed',
body: 'Backup failed, check ABS logs for more information.\nError message: {{errorMsg}}'
},
testData: {
errorMsg: 'Example error message'
}
},
{
name: 'onTest',
requiresLibrary: false,
description: 'Event for testing the notification system',
variables: ['version'],
defaults: {
title: 'Test Notification on Abs {{version}}',
body: 'Test notificataion body for abs {{version}}.'
},
testData: {
version: 'v' + version
}
}
]
}