mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2024-12-24 19:11:44 +01:00
126 lines
2.7 KiB
JavaScript
126 lines
2.7 KiB
JavaScript
export const state = () => ({
|
|
providers: [
|
|
{
|
|
text: 'Google Books',
|
|
value: 'google'
|
|
},
|
|
{
|
|
text: 'Open Library',
|
|
value: 'openlibrary'
|
|
},
|
|
{
|
|
text: 'iTunes',
|
|
value: 'itunes'
|
|
},
|
|
{
|
|
text: 'Audible.com',
|
|
value: 'audible'
|
|
},
|
|
{
|
|
text: 'Audible.ca',
|
|
value: 'audible.ca'
|
|
},
|
|
{
|
|
text: 'Audible.co.uk',
|
|
value: 'audible.uk'
|
|
},
|
|
{
|
|
text: 'Audible.com.au',
|
|
value: 'audible.au'
|
|
},
|
|
{
|
|
text: 'Audible.fr',
|
|
value: 'audible.fr'
|
|
},
|
|
{
|
|
text: 'Audible.de',
|
|
value: 'audible.de'
|
|
},
|
|
{
|
|
text: 'Audible.co.jp',
|
|
value: 'audible.jp'
|
|
},
|
|
{
|
|
text: 'Audible.it',
|
|
value: 'audible.it'
|
|
},
|
|
{
|
|
text: 'Audible.co.in',
|
|
value: 'audible.in'
|
|
},
|
|
{
|
|
text: 'Audible.es',
|
|
value: 'audible.es'
|
|
},
|
|
{
|
|
text: 'FantLab.ru',
|
|
value: 'fantlab'
|
|
}
|
|
],
|
|
podcastProviders: [
|
|
{
|
|
text: 'iTunes',
|
|
value: 'itunes'
|
|
}
|
|
],
|
|
coverOnlyProviders: [
|
|
{
|
|
text: 'AudiobookCovers.com',
|
|
value: 'audiobookcovers'
|
|
}
|
|
]
|
|
})
|
|
|
|
export const getters = {
|
|
checkBookProviderExists: state => (providerValue) => {
|
|
return state.providers.some(p => p.value === providerValue)
|
|
},
|
|
checkPodcastProviderExists: state => (providerValue) => {
|
|
return state.podcastProviders.some(p => p.value === providerValue)
|
|
}
|
|
}
|
|
|
|
export const actions = {}
|
|
|
|
export const mutations = {
|
|
addCustomMetadataProvider(state, provider) {
|
|
if (provider.mediaType === 'book') {
|
|
if (state.providers.some(p => p.value === provider.slug)) return
|
|
state.providers.push({
|
|
text: provider.name,
|
|
value: provider.slug
|
|
})
|
|
} else {
|
|
if (state.podcastProviders.some(p => p.value === provider.slug)) return
|
|
state.podcastProviders.push({
|
|
text: provider.name,
|
|
value: provider.slug
|
|
})
|
|
}
|
|
},
|
|
removeCustomMetadataProvider(state, provider) {
|
|
if (provider.mediaType === 'book') {
|
|
state.providers = state.providers.filter(p => p.value !== provider.slug)
|
|
} else {
|
|
state.podcastProviders = state.podcastProviders.filter(p => p.value !== provider.slug)
|
|
}
|
|
},
|
|
setCustomMetadataProviders(state, providers) {
|
|
if (!providers?.length) return
|
|
|
|
const mediaType = providers[0].mediaType
|
|
if (mediaType === 'book') {
|
|
// clear previous values, and add new values to the end
|
|
state.providers = state.providers.filter((p) => !p.value.startsWith('custom-'))
|
|
state.providers = [
|
|
...state.providers,
|
|
...providers.map((p) => ({
|
|
text: p.name,
|
|
value: p.slug
|
|
}))
|
|
]
|
|
} else {
|
|
// Podcast providers not supported yet
|
|
}
|
|
}
|
|
} |