diff --git a/client/components/controls/EpisodeSortSelect.vue b/client/components/controls/EpisodeSortSelect.vue index 0a1981fc..27aced3f 100644 --- a/client/components/controls/EpisodeSortSelect.vue +++ b/client/components/controls/EpisodeSortSelect.vue @@ -40,6 +40,10 @@ export default { text: 'Title', value: 'title' }, + { + text: 'Season', + value: 'season' + }, { text: 'Episode', value: 'episode' diff --git a/client/components/modals/podcast/EditEpisode.vue b/client/components/modals/podcast/EditEpisode.vue index 8f0134f1..dbf76bf7 100644 --- a/client/components/modals/podcast/EditEpisode.vue +++ b/client/components/modals/podcast/EditEpisode.vue @@ -7,13 +7,16 @@
-
+
+ +
+
-
+
-
+
@@ -39,6 +42,7 @@ export default { return { processing: false, newEpisode: { + season: null, episode: null, episodeType: null, title: null, @@ -92,6 +96,7 @@ export default { } }, init() { + this.newEpisode.season = this.episode.season || '' this.newEpisode.episode = this.episode.episode || '' this.newEpisode.episodeType = this.episode.episodeType || '' this.newEpisode.title = this.episode.title || '' diff --git a/client/components/tables/podcast/EpisodeTableRow.vue b/client/components/tables/podcast/EpisodeTableRow.vue index da71524f..bcb64ecc 100644 --- a/client/components/tables/podcast/EpisodeTableRow.vue +++ b/client/components/tables/podcast/EpisodeTableRow.vue @@ -20,6 +20,7 @@ +

Season #{{ episode.season }}

Episode #{{ episode.episode }}

Published {{ $formatDate(publishedAt, 'MMM do, yyyy') }}

diff --git a/server/objects/entities/PodcastEpisode.js b/server/objects/entities/PodcastEpisode.js index 6c6b956b..28c232d2 100644 --- a/server/objects/entities/PodcastEpisode.js +++ b/server/objects/entities/PodcastEpisode.js @@ -9,6 +9,7 @@ class PodcastEpisode { this.id = null this.index = null + this.season = null this.episode = null this.episodeType = null this.title = null @@ -31,6 +32,7 @@ class PodcastEpisode { this.libraryItemId = episode.libraryItemId this.id = episode.id this.index = episode.index + this.season = episode.season this.episode = episode.episode this.episodeType = episode.episodeType this.title = episode.title @@ -51,6 +53,7 @@ class PodcastEpisode { libraryItemId: this.libraryItemId, id: this.id, index: this.index, + season: this.season, episode: this.episode, episodeType: this.episodeType, title: this.title, @@ -70,6 +73,7 @@ class PodcastEpisode { libraryItemId: this.libraryItemId, id: this.id, index: this.index, + season: this.season, episode: this.episode, episodeType: this.episodeType, title: this.title, @@ -117,6 +121,7 @@ class PodcastEpisode { this.pubDate = data.pubDate || '' this.description = data.description || '' this.enclosure = data.enclosure ? { ...data.enclosure } : null + this.season = data.season || '' this.episode = data.episode || '' this.episodeType = data.episodeType || '' this.publishedAt = data.publishedAt || 0 diff --git a/server/utils/podcastUtils.js b/server/utils/podcastUtils.js index 69cc2459..28c874cc 100644 --- a/server/utils/podcastUtils.js +++ b/server/utils/podcastUtils.js @@ -85,7 +85,7 @@ function extractEpisodeData(item) { episode.descriptionPlain = stripHtml(episode.description || '').result } - var arrayFields = ['title', 'pubDate', 'itunes:episodeType', 'itunes:episode', 'itunes:author', 'itunes:duration', 'itunes:explicit', 'itunes:subtitle'] + var arrayFields = ['title', 'pubDate', 'itunes:episodeType', 'itunes:season', 'itunes:episode', 'itunes:author', 'itunes:duration', 'itunes:explicit', 'itunes:subtitle'] arrayFields.forEach((key) => { var cleanKey = key.split(':').pop() episode[cleanKey] = extractFirstArrayItem(item, key) @@ -101,6 +101,7 @@ function cleanEpisodeData(data) { descriptionPlain: data.descriptionPlain || '', pubDate: data.pubDate || '', episodeType: data.episodeType || '', + season: data.season || '', episode: data.episode || '', author: data.author || '', duration: data.duration || '',