diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml new file mode 100644 index 00000000..f88db2ed --- /dev/null +++ b/.github/workflows/integration-test.yml @@ -0,0 +1,44 @@ +name: Integration Test + +on: + pull_request: + push: + branches-ignore: + - 'dependabot/**' # Don't run dependabot branches, as they are already covered by pull requests + +jobs: + build: + name: build and test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: setup nade + uses: actions/setup-node@v3 + with: + node-version: 16 + + - name: install pkg + run: npm install -g pkg + + - name: get client dependencies + working-directory: client + run: npm ci + + - name: build client + working-directory: client + run: npm run generate + + - name: get server dependencies + run: npm ci --only=production + + - name: build binary + run: pkg -t node18-linux-x64 -o audiobookshelf . + + - name: run audiobookshelf + run: | + ./audiobookshelf & + sleep 5 + + - name: test if server is available + run: curl -sf http://127.0.0.1:3333 | grep Audiobookshelf diff --git a/server/managers/NotificationManager.js b/server/managers/NotificationManager.js index e13e99f9..3a70ce8e 100644 --- a/server/managers/NotificationManager.js +++ b/server/managers/NotificationManager.js @@ -24,9 +24,15 @@ class NotificationManager { libraryItemId: libraryItem.id, libraryId: libraryItem.libraryId, libraryName: library ? library.name : 'Unknown', + mediaTags: (libraryItem.media.tags || []).join(', '), podcastTitle: libraryItem.media.metadata.title, + podcastAuthor: libraryItem.media.metadata.author || '', + podcastDescription: libraryItem.media.metadata.description || '', + podcastGenres: (libraryItem.media.metadata.genres || []).join(', '), episodeId: episode.id, - episodeTitle: episode.title + episodeTitle: episode.title, + episodeSubtitle: episode.subtitle || '', + episodeDescription: episode.description || '' } this.triggerNotification('onPodcastEpisodeDownloaded', eventData) } @@ -110,4 +116,4 @@ class NotificationManager { }) } } -module.exports = NotificationManager \ No newline at end of file +module.exports = NotificationManager diff --git a/server/utils/notifications.js b/server/utils/notifications.js index c5049d73..c90e3408 100644 --- a/server/utils/notifications.js +++ b/server/utils/notifications.js @@ -7,7 +7,7 @@ module.exports.notificationData = { requiresLibrary: true, libraryMediaType: 'podcast', description: 'Triggered when a podcast episode is auto-downloaded', - variables: ['libraryItemId', 'libraryId', 'podcastTitle', 'episodeTitle', 'libraryName', 'episodeId'], + 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.' @@ -16,9 +16,15 @@ module.exports.notificationData = { 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' + episodeTitle: 'Successful Test Episode', + episodeSubtitle: 'Episode Subtitle', + episodeDescription: 'Some description of the podcast episode.' } }, { @@ -35,4 +41,4 @@ module.exports.notificationData = { } } ] -} \ No newline at end of file +}