Add Podcast match tab and find covers

This commit is contained in:
advplyr 2022-04-13 18:13:39 -05:00
parent 4edba20e9e
commit 3f6ed6dbf9
10 changed files with 113 additions and 20 deletions

View file

@ -66,7 +66,9 @@ class LibraryItemController {
await this.cacheManager.purgeCoverCache(libraryItem.id)
}
await this.createAuthorsAndSeriesForItemUpdate(mediaPayload)
if (libraryItem.isBook) {
await this.createAuthorsAndSeriesForItemUpdate(mediaPayload)
}
var hasUpdates = libraryItem.media.update(mediaPayload)
if (hasUpdates) {

View file

@ -147,7 +147,11 @@ class MiscController {
async findCovers(req, res) {
var query = req.query
var result = await this.bookFinder.findCovers(query.provider, query.title, query.author || null)
var podcast = query.podcast == 1
var result = null
if (podcast) result = await this.podcastFinder.findCovers(query.title)
else result = await this.bookFinder.findCovers(query.provider, query.title, query.author || null)
res.json(result)
}

View file

@ -13,5 +13,13 @@ class PodcastFinder {
Logger.debug(`[iTunes] Podcast search for "${term}" returned ${results.length} results`)
return results
}
async findCovers(term) {
if (!term) return null
Logger.debug(`[iTunes] Searching for podcast covers with term "${term}"`)
var results = await this.iTunesApi.searchPodcasts(term)
if (!results) return []
return results.map(r => r.cover).filter(r => r)
}
}
module.exports = PodcastFinder

View file

@ -144,6 +144,8 @@ class LibraryItem {
}
}
get isPodcast() { return this.mediaType === 'podcast' }
get isBook() { return this.mediaType === 'book' }
get size() {
var total = 0
this.libraryFiles.forEach((lf) => total += lf.metadata.size)

View file

@ -80,7 +80,7 @@ class iTunes {
cleanPodcast(data) {
return {
id: data.collectionId,
artistId: data.artistId,
artistId: data.artistId || null,
title: data.collectionName,
artistName: data.artistName,
description: stripHtml(data.description || '').result,