mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2024-12-28 09:38:56 +01:00
Add:Scanner set default cover provider #291
This commit is contained in:
parent
2c29a273f3
commit
1be0ff7654
@ -104,20 +104,6 @@ export default {
|
|||||||
searchTitle: null,
|
searchTitle: null,
|
||||||
searchAuthor: null,
|
searchAuthor: null,
|
||||||
lastSearch: null,
|
lastSearch: null,
|
||||||
providers: [
|
|
||||||
{
|
|
||||||
text: 'Google Books',
|
|
||||||
value: 'google'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: 'Open Library',
|
|
||||||
value: 'openlibrary'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: 'Audible',
|
|
||||||
value: 'audible'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
provider: 'google',
|
provider: 'google',
|
||||||
searchResults: [],
|
searchResults: [],
|
||||||
hasSearched: false,
|
hasSearched: false,
|
||||||
@ -156,6 +142,9 @@ export default {
|
|||||||
},
|
},
|
||||||
bookCoverAspectRatio() {
|
bookCoverAspectRatio() {
|
||||||
return this.$store.getters['getBookCoverAspectRatio']
|
return this.$store.getters['getBookCoverAspectRatio']
|
||||||
|
},
|
||||||
|
providers() {
|
||||||
|
return this.$store.state.scanners.providers
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -7,34 +7,6 @@
|
|||||||
<h1 class="text-xl">Settings</h1>
|
<h1 class="text-xl">Settings</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex items-center py-2">
|
|
||||||
<ui-toggle-switch v-model="newServerSettings.scannerParseSubtitle" small :disabled="updatingServerSettings" @input="updateScannerParseSubtitle" />
|
|
||||||
<ui-tooltip :text="parseSubtitleTooltip">
|
|
||||||
<p class="pl-4 text-lg">Scanner parse subtitles <span class="material-icons icon-text">info_outlined</span></p>
|
|
||||||
</ui-tooltip>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex items-center py-2">
|
|
||||||
<ui-toggle-switch v-model="newServerSettings.scannerFindCovers" :disabled="updatingServerSettings" @input="updateScannerFindCovers" />
|
|
||||||
<ui-tooltip :text="scannerFindCoversTooltip">
|
|
||||||
<p class="pl-4 text-lg">Scanner find covers <span class="material-icons icon-text">info_outlined</span></p>
|
|
||||||
</ui-tooltip>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex items-center py-2">
|
|
||||||
<ui-toggle-switch v-model="newServerSettings.scannerPreferAudioMetadata" :disabled="updatingServerSettings" @input="updateScannerPreferAudioMeta" />
|
|
||||||
<ui-tooltip :text="scannerPreferAudioMetaTooltip">
|
|
||||||
<p class="pl-4 text-lg">Scanner prefer audio metadata <span class="material-icons icon-text">info_outlined</span></p>
|
|
||||||
</ui-tooltip>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex items-center py-2">
|
|
||||||
<ui-toggle-switch v-model="newServerSettings.scannerPreferOpfMetadata" :disabled="updatingServerSettings" @input="updateScannerPreferOpfMeta" />
|
|
||||||
<ui-tooltip :text="scannerPreferOpfMetaTooltip">
|
|
||||||
<p class="pl-4 text-lg">Scanner prefer OPF metadata <span class="material-icons icon-text">info_outlined</span></p>
|
|
||||||
</ui-tooltip>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex items-center py-2">
|
<div class="flex items-center py-2">
|
||||||
<ui-toggle-switch v-model="storeCoversInAudiobookDir" :disabled="updatingServerSettings" @input="updateCoverStorageDestination" />
|
<ui-toggle-switch v-model="storeCoversInAudiobookDir" :disabled="updatingServerSettings" @input="updateCoverStorageDestination" />
|
||||||
<ui-tooltip :text="coverDestinationTooltip">
|
<ui-tooltip :text="coverDestinationTooltip">
|
||||||
@ -55,6 +27,42 @@
|
|||||||
<p class="pl-4 text-lg">Use alternative library bookshelf view <span class="material-icons icon-text">info_outlined</span></p>
|
<p class="pl-4 text-lg">Use alternative library bookshelf view <span class="material-icons icon-text">info_outlined</span></p>
|
||||||
</ui-tooltip>
|
</ui-tooltip>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-center mb-2 mt-8">
|
||||||
|
<h1 class="text-xl">Scanner Settings</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-center py-2">
|
||||||
|
<ui-toggle-switch v-model="newServerSettings.scannerParseSubtitle" small :disabled="updatingServerSettings" @input="updateScannerParseSubtitle" />
|
||||||
|
<ui-tooltip :text="parseSubtitleTooltip">
|
||||||
|
<p class="pl-4 text-lg">Scanner parse subtitles <span class="material-icons icon-text">info_outlined</span></p>
|
||||||
|
</ui-tooltip>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-center py-2">
|
||||||
|
<ui-toggle-switch v-model="newServerSettings.scannerFindCovers" :disabled="updatingServerSettings" @input="updateScannerFindCovers" />
|
||||||
|
<ui-tooltip :text="scannerFindCoversTooltip">
|
||||||
|
<p class="pl-4 text-lg">Scanner find covers <span class="material-icons icon-text">info_outlined</span></p>
|
||||||
|
</ui-tooltip>
|
||||||
|
<div class="flex-grow" />
|
||||||
|
</div>
|
||||||
|
<div v-if="newServerSettings.scannerFindCovers" class="w-44 ml-14 mb-2">
|
||||||
|
<ui-dropdown v-model="newServerSettings.scannerCoverProvider" small :items="providers" label="Cover Provider" @input="updateScannerCoverProvider" :disabled="updatingServerSettings" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-center py-2">
|
||||||
|
<ui-toggle-switch v-model="newServerSettings.scannerPreferAudioMetadata" :disabled="updatingServerSettings" @input="updateScannerPreferAudioMeta" />
|
||||||
|
<ui-tooltip :text="scannerPreferAudioMetaTooltip">
|
||||||
|
<p class="pl-4 text-lg">Scanner prefer audio metadata <span class="material-icons icon-text">info_outlined</span></p>
|
||||||
|
</ui-tooltip>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-center py-2">
|
||||||
|
<ui-toggle-switch v-model="newServerSettings.scannerPreferOpfMetadata" :disabled="updatingServerSettings" @input="updateScannerPreferOpfMeta" />
|
||||||
|
<ui-tooltip :text="scannerPreferOpfMetaTooltip">
|
||||||
|
<p class="pl-4 text-lg">Scanner prefer OPF metadata <span class="material-icons icon-text">info_outlined</span></p>
|
||||||
|
</ui-tooltip>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="h-0.5 bg-primary bg-opacity-30 w-full" />
|
<div class="h-0.5 bg-primary bg-opacity-30 w-full" />
|
||||||
@ -85,9 +93,9 @@
|
|||||||
</ui-tooltip>
|
</ui-tooltip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="hidden md:block">
|
<!-- <div class="hidden md:block">
|
||||||
<a href="https://github.com/advplyr/audiobookshelf/discussions/75#discussion-3604812" target="_blank" class="text-blue-500 hover:text-blue-300 underline">Join the discussion</a>
|
<a href="https://github.com/advplyr/audiobookshelf/discussions/75#discussion-3604812" target="_blank" class="text-blue-500 hover:text-blue-300 underline">Join the discussion</a>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -145,6 +153,9 @@ export default {
|
|||||||
bookshelfViewTooltip() {
|
bookshelfViewTooltip() {
|
||||||
return 'Alternative bookshelf view that shows title & author under book covers'
|
return 'Alternative bookshelf view that shows title & author under book covers'
|
||||||
},
|
},
|
||||||
|
providers() {
|
||||||
|
return this.$store.state.scanners.providers
|
||||||
|
},
|
||||||
showExperimentalFeatures: {
|
showExperimentalFeatures: {
|
||||||
get() {
|
get() {
|
||||||
return this.$store.state.showExperimentalFeatures
|
return this.$store.state.showExperimentalFeatures
|
||||||
@ -160,6 +171,11 @@ export default {
|
|||||||
scannerFindCovers: !!val
|
scannerFindCovers: !!val
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
updateScannerCoverProvider(val) {
|
||||||
|
this.updateServerSettings({
|
||||||
|
scannerCoverProvider: val
|
||||||
|
})
|
||||||
|
},
|
||||||
updateCoverStorageDestination(val) {
|
updateCoverStorageDestination(val) {
|
||||||
this.newServerSettings.coverDestination = val ? this.$constants.CoverDestination.AUDIOBOOK : this.$constants.CoverDestination.METADATA
|
this.newServerSettings.coverDestination = val ? this.$constants.CoverDestination.AUDIOBOOK : this.$constants.CoverDestination.METADATA
|
||||||
this.updateServerSettings({
|
this.updateServerSettings({
|
||||||
|
@ -1,5 +1,19 @@
|
|||||||
export const state = () => ({
|
export const state = () => ({
|
||||||
libraryScans: []
|
libraryScans: [],
|
||||||
|
providers: [
|
||||||
|
{
|
||||||
|
text: 'Google Books',
|
||||||
|
value: 'google'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Open Library',
|
||||||
|
value: 'openlibrary'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Audible',
|
||||||
|
value: 'audible'
|
||||||
|
}
|
||||||
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
export const getters = {
|
export const getters = {
|
||||||
|
@ -12,6 +12,7 @@ class ServerSettings {
|
|||||||
// Scanner
|
// Scanner
|
||||||
this.scannerParseSubtitle = false
|
this.scannerParseSubtitle = false
|
||||||
this.scannerFindCovers = false
|
this.scannerFindCovers = false
|
||||||
|
this.scannerCoverProvider = 'google'
|
||||||
this.scannerPreferAudioMetadata = false
|
this.scannerPreferAudioMetadata = false
|
||||||
this.scannerPreferOpfMetadata = false
|
this.scannerPreferOpfMetadata = false
|
||||||
|
|
||||||
@ -49,6 +50,7 @@ class ServerSettings {
|
|||||||
this.autoTagNew = settings.autoTagNew
|
this.autoTagNew = settings.autoTagNew
|
||||||
this.newTagExpireDays = settings.newTagExpireDays
|
this.newTagExpireDays = settings.newTagExpireDays
|
||||||
this.scannerFindCovers = !!settings.scannerFindCovers
|
this.scannerFindCovers = !!settings.scannerFindCovers
|
||||||
|
this.scannerCoverProvider = settings.scannerCoverProvider || 'google'
|
||||||
this.scannerParseSubtitle = settings.scannerParseSubtitle
|
this.scannerParseSubtitle = settings.scannerParseSubtitle
|
||||||
this.scannerPreferAudioMetadata = !!settings.scannerPreferAudioMetadata
|
this.scannerPreferAudioMetadata = !!settings.scannerPreferAudioMetadata
|
||||||
this.scannerPreferOpfMetadata = !!settings.scannerPreferOpfMetadata
|
this.scannerPreferOpfMetadata = !!settings.scannerPreferOpfMetadata
|
||||||
@ -82,6 +84,7 @@ class ServerSettings {
|
|||||||
autoTagNew: this.autoTagNew,
|
autoTagNew: this.autoTagNew,
|
||||||
newTagExpireDays: this.newTagExpireDays,
|
newTagExpireDays: this.newTagExpireDays,
|
||||||
scannerFindCovers: this.scannerFindCovers,
|
scannerFindCovers: this.scannerFindCovers,
|
||||||
|
scannerCoverProvider: this.scannerCoverProvider,
|
||||||
scannerParseSubtitle: this.scannerParseSubtitle,
|
scannerParseSubtitle: this.scannerParseSubtitle,
|
||||||
scannerPreferAudioMetadata: this.scannerPreferAudioMetadata,
|
scannerPreferAudioMetadata: this.scannerPreferAudioMetadata,
|
||||||
scannerPreferOpfMetadata: this.scannerPreferOpfMetadata,
|
scannerPreferOpfMetadata: this.scannerPreferOpfMetadata,
|
||||||
|
@ -519,7 +519,8 @@ class Scanner {
|
|||||||
titleDistance: 2,
|
titleDistance: 2,
|
||||||
authorDistance: 2
|
authorDistance: 2
|
||||||
}
|
}
|
||||||
var results = await this.bookFinder.findCovers('google', audiobook.title, audiobook.authorFL, options)
|
var scannerCoverProvider = this.db.serverSettings.scannerCoverProvider
|
||||||
|
var results = await this.bookFinder.findCovers(scannerCoverProvider, audiobook.title, audiobook.authorFL, options)
|
||||||
if (results.length) {
|
if (results.length) {
|
||||||
if (libraryScan) libraryScan.addLog(LogLevel.DEBUG, `Found best cover for "${audiobook.title}"`)
|
if (libraryScan) libraryScan.addLog(LogLevel.DEBUG, `Found best cover for "${audiobook.title}"`)
|
||||||
else Logger.debug(`[Scanner] Found best cover for "${audiobook.title}"`)
|
else Logger.debug(`[Scanner] Found best cover for "${audiobook.title}"`)
|
||||||
|
Loading…
Reference in New Issue
Block a user