mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-03-05 00:18:30 +01:00
Update:Podcast episode auto download schedule setting for max new episodes to download #1091
This commit is contained in:
parent
ac46548c4d
commit
efecf7ed82
@ -19,6 +19,15 @@
|
|||||||
</p>
|
</p>
|
||||||
</ui-tooltip>
|
</ui-tooltip>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-if="enableAutoDownloadEpisodes" class="flex items-center py-2">
|
||||||
|
<ui-text-input ref="maxEpisodesInput" type="number" v-model="newMaxNewEpisodesToDownload" no-spinner :padding-x="1" text-center class="w-10 text-base" @change="updateMaxNewEpisodesToDownload" />
|
||||||
|
<ui-tooltip text="Value of 0 sets no max limit. When checking for new episodes this is the max number of episodes that will be downloaded.">
|
||||||
|
<p class="pl-4 text-base">
|
||||||
|
Max new episodes to download per check
|
||||||
|
<span class="material-icons icon-text text-sm">info_outlined</span>
|
||||||
|
</p>
|
||||||
|
</ui-tooltip>
|
||||||
|
</div>
|
||||||
|
|
||||||
<widgets-cron-expression-builder ref="cronExpressionBuilder" v-if="enableAutoDownloadEpisodes" v-model="cronExpression" />
|
<widgets-cron-expression-builder ref="cronExpressionBuilder" v-if="enableAutoDownloadEpisodes" v-model="cronExpression" />
|
||||||
</template>
|
</template>
|
||||||
@ -46,7 +55,8 @@ export default {
|
|||||||
return {
|
return {
|
||||||
enableAutoDownloadEpisodes: false,
|
enableAutoDownloadEpisodes: false,
|
||||||
cronExpression: null,
|
cronExpression: null,
|
||||||
newMaxEpisodesToKeep: 0
|
newMaxEpisodesToKeep: 0,
|
||||||
|
newMaxNewEpisodesToDownload: 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -82,8 +92,11 @@ export default {
|
|||||||
maxEpisodesToKeep() {
|
maxEpisodesToKeep() {
|
||||||
return this.media.maxEpisodesToKeep
|
return this.media.maxEpisodesToKeep
|
||||||
},
|
},
|
||||||
|
maxNewEpisodesToDownload() {
|
||||||
|
return this.media.maxNewEpisodesToDownload
|
||||||
|
},
|
||||||
isUpdated() {
|
isUpdated() {
|
||||||
return this.autoDownloadSchedule !== this.cronExpression || this.autoDownloadEpisodes !== this.enableAutoDownloadEpisodes || this.maxEpisodesToKeep !== Number(this.newMaxEpisodesToKeep)
|
return this.autoDownloadSchedule !== this.cronExpression || this.autoDownloadEpisodes !== this.enableAutoDownloadEpisodes || this.maxEpisodesToKeep !== Number(this.newMaxEpisodesToKeep) || this.maxNewEpisodesToDownload !== Number(this.newMaxNewEpisodesToDownload)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -94,6 +107,13 @@ export default {
|
|||||||
this.newMaxEpisodesToKeep = Number(this.newMaxEpisodesToKeep)
|
this.newMaxEpisodesToKeep = Number(this.newMaxEpisodesToKeep)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
updateMaxNewEpisodesToDownload() {
|
||||||
|
if (isNaN(this.newMaxNewEpisodesToDownload) || this.newMaxNewEpisodesToDownload < 0) {
|
||||||
|
this.newMaxNewEpisodesToDownload = 0
|
||||||
|
} else {
|
||||||
|
this.newMaxNewEpisodesToDownload = Number(this.newMaxNewEpisodesToDownload)
|
||||||
|
}
|
||||||
|
},
|
||||||
save() {
|
save() {
|
||||||
// If custom expression input is focused then unfocus it instead of submitting
|
// If custom expression input is focused then unfocus it instead of submitting
|
||||||
if (this.$refs.cronExpressionBuilder && this.$refs.cronExpressionBuilder.checkBlurExpressionInput) {
|
if (this.$refs.cronExpressionBuilder && this.$refs.cronExpressionBuilder.checkBlurExpressionInput) {
|
||||||
@ -115,6 +135,9 @@ export default {
|
|||||||
if (this.newMaxEpisodesToKeep !== this.maxEpisodesToKeep) {
|
if (this.newMaxEpisodesToKeep !== this.maxEpisodesToKeep) {
|
||||||
updatePayload.maxEpisodesToKeep = this.newMaxEpisodesToKeep
|
updatePayload.maxEpisodesToKeep = this.newMaxEpisodesToKeep
|
||||||
}
|
}
|
||||||
|
if (this.newMaxNewEpisodesToDownload !== this.maxNewEpisodesToDownload) {
|
||||||
|
updatePayload.maxNewEpisodesToDownload = this.newMaxNewEpisodesToDownload
|
||||||
|
}
|
||||||
|
|
||||||
this.updateDetails(updatePayload)
|
this.updateDetails(updatePayload)
|
||||||
},
|
},
|
||||||
@ -139,6 +162,7 @@ export default {
|
|||||||
this.enableAutoDownloadEpisodes = this.autoDownloadEpisodes
|
this.enableAutoDownloadEpisodes = this.autoDownloadEpisodes
|
||||||
this.cronExpression = this.autoDownloadSchedule
|
this.cronExpression = this.autoDownloadSchedule
|
||||||
this.newMaxEpisodesToKeep = this.maxEpisodesToKeep
|
this.newMaxEpisodesToKeep = this.maxEpisodesToKeep
|
||||||
|
this.newMaxNewEpisodesToDownload = this.maxNewEpisodesToDownload
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -204,7 +204,7 @@ class PodcastManager {
|
|||||||
const dateToCheckForEpisodesAfter = latestEpisodePublishedAt || lastEpisodeCheckDate
|
const dateToCheckForEpisodesAfter = latestEpisodePublishedAt || lastEpisodeCheckDate
|
||||||
Logger.debug(`[PodcastManager] runEpisodeCheck: "${libraryItem.media.metadata.title}" checking for episodes after ${new Date(dateToCheckForEpisodesAfter)}`)
|
Logger.debug(`[PodcastManager] runEpisodeCheck: "${libraryItem.media.metadata.title}" checking for episodes after ${new Date(dateToCheckForEpisodesAfter)}`)
|
||||||
|
|
||||||
var newEpisodes = await this.checkPodcastForNewEpisodes(libraryItem, dateToCheckForEpisodesAfter)
|
var newEpisodes = await this.checkPodcastForNewEpisodes(libraryItem, dateToCheckForEpisodesAfter, libraryItem.media.maxNewEpisodesToDownload)
|
||||||
Logger.debug(`[PodcastManager] runEpisodeCheck: ${newEpisodes ? newEpisodes.length : 'N/A'} episodes found`)
|
Logger.debug(`[PodcastManager] runEpisodeCheck: ${newEpisodes ? newEpisodes.length : 'N/A'} episodes found`)
|
||||||
|
|
||||||
if (!newEpisodes) { // Failed
|
if (!newEpisodes) { // Failed
|
||||||
|
@ -21,6 +21,7 @@ class Podcast {
|
|||||||
this.autoDownloadSchedule = null
|
this.autoDownloadSchedule = null
|
||||||
this.lastEpisodeCheck = 0
|
this.lastEpisodeCheck = 0
|
||||||
this.maxEpisodesToKeep = 0
|
this.maxEpisodesToKeep = 0
|
||||||
|
this.maxNewEpisodesToDownload = 3
|
||||||
|
|
||||||
this.lastCoverSearch = null
|
this.lastCoverSearch = null
|
||||||
this.lastCoverSearchQuery = null
|
this.lastCoverSearchQuery = null
|
||||||
@ -44,6 +45,7 @@ class Podcast {
|
|||||||
this.autoDownloadSchedule = podcast.autoDownloadSchedule || '0 * * * *' // Added in 2.1.3 so default to hourly
|
this.autoDownloadSchedule = podcast.autoDownloadSchedule || '0 * * * *' // Added in 2.1.3 so default to hourly
|
||||||
this.lastEpisodeCheck = podcast.lastEpisodeCheck || 0
|
this.lastEpisodeCheck = podcast.lastEpisodeCheck || 0
|
||||||
this.maxEpisodesToKeep = podcast.maxEpisodesToKeep || 0
|
this.maxEpisodesToKeep = podcast.maxEpisodesToKeep || 0
|
||||||
|
this.maxNewEpisodesToDownload = podcast.maxNewEpisodesToDownload || 3
|
||||||
}
|
}
|
||||||
|
|
||||||
toJSON() {
|
toJSON() {
|
||||||
@ -56,7 +58,8 @@ class Podcast {
|
|||||||
autoDownloadEpisodes: this.autoDownloadEpisodes,
|
autoDownloadEpisodes: this.autoDownloadEpisodes,
|
||||||
autoDownloadSchedule: this.autoDownloadSchedule,
|
autoDownloadSchedule: this.autoDownloadSchedule,
|
||||||
lastEpisodeCheck: this.lastEpisodeCheck,
|
lastEpisodeCheck: this.lastEpisodeCheck,
|
||||||
maxEpisodesToKeep: this.maxEpisodesToKeep
|
maxEpisodesToKeep: this.maxEpisodesToKeep,
|
||||||
|
maxNewEpisodesToDownload: this.maxNewEpisodesToDownload
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,6 +73,7 @@ class Podcast {
|
|||||||
autoDownloadSchedule: this.autoDownloadSchedule,
|
autoDownloadSchedule: this.autoDownloadSchedule,
|
||||||
lastEpisodeCheck: this.lastEpisodeCheck,
|
lastEpisodeCheck: this.lastEpisodeCheck,
|
||||||
maxEpisodesToKeep: this.maxEpisodesToKeep,
|
maxEpisodesToKeep: this.maxEpisodesToKeep,
|
||||||
|
maxNewEpisodesToDownload: this.maxNewEpisodesToDownload,
|
||||||
size: this.size
|
size: this.size
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -85,6 +89,7 @@ class Podcast {
|
|||||||
autoDownloadSchedule: this.autoDownloadSchedule,
|
autoDownloadSchedule: this.autoDownloadSchedule,
|
||||||
lastEpisodeCheck: this.lastEpisodeCheck,
|
lastEpisodeCheck: this.lastEpisodeCheck,
|
||||||
maxEpisodesToKeep: this.maxEpisodesToKeep,
|
maxEpisodesToKeep: this.maxEpisodesToKeep,
|
||||||
|
maxNewEpisodesToDownload: this.maxNewEpisodesToDownload,
|
||||||
size: this.size
|
size: this.size
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user