mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-07-01 13:04:52 +02:00
Fixes + add progress to m4b and embed tools
This commit is contained in:
parent
b6875a44cf
commit
10f5f331d7
11 changed files with 530 additions and 211 deletions
|
@ -1,34 +1,60 @@
|
|||
import Vue from 'vue'
|
||||
|
||||
export const state = () => ({
|
||||
tasks: [],
|
||||
queuedEmbedLIds: []
|
||||
queuedEmbedLIds: [],
|
||||
audioFilesEncoding: {},
|
||||
audioFilesFinished: {},
|
||||
taskProgress: {}
|
||||
})
|
||||
|
||||
export const getters = {
|
||||
getTasksByLibraryItemId: (state) => (libraryItemId) => {
|
||||
return state.tasks.filter(t => t.data?.libraryItemId === libraryItemId)
|
||||
return state.tasks.filter((t) => t.data?.libraryItemId === libraryItemId)
|
||||
},
|
||||
getRunningLibraryScanTask: (state) => (libraryId) => {
|
||||
const libraryScanActions = ['library-scan', 'library-match-all']
|
||||
return state.tasks.find(t => libraryScanActions.includes(t.action) && t.data?.libraryId === libraryId && !t.isFinished)
|
||||
return state.tasks.find((t) => libraryScanActions.includes(t.action) && t.data?.libraryId === libraryId && !t.isFinished)
|
||||
},
|
||||
getAudioFilesEncoding: (state) => (libraryItemId) => {
|
||||
return state.audioFilesEncoding[libraryItemId]
|
||||
},
|
||||
getAudioFilesFinished: (state) => (libraryItemId) => {
|
||||
return state.audioFilesFinished[libraryItemId]
|
||||
},
|
||||
getTaskProgress: (state) => (libraryItemId) => {
|
||||
return state.taskProgress[libraryItemId]
|
||||
}
|
||||
}
|
||||
|
||||
export const actions = {
|
||||
|
||||
}
|
||||
export const actions = {}
|
||||
|
||||
export const mutations = {
|
||||
updateAudioFilesEncoding(state, payload) {
|
||||
if (!state.audioFilesEncoding[payload.libraryItemId]) {
|
||||
Vue.set(state.audioFilesEncoding, payload.libraryItemId, {})
|
||||
}
|
||||
Vue.set(state.audioFilesEncoding[payload.libraryItemId], payload.ino, payload.progress)
|
||||
},
|
||||
updateAudioFilesFinished(state, payload) {
|
||||
if (!state.audioFilesFinished[payload.libraryItemId]) {
|
||||
Vue.set(state.audioFilesFinished, payload.libraryItemId, {})
|
||||
}
|
||||
Vue.set(state.audioFilesFinished[payload.libraryItemId], payload.ino, payload.finished)
|
||||
},
|
||||
updateTaskProgress(state, payload) {
|
||||
Vue.set(state.taskProgress, payload.libraryItemId, payload.progress)
|
||||
},
|
||||
setTasks(state, tasks) {
|
||||
state.tasks = tasks
|
||||
},
|
||||
addUpdateTask(state, task) {
|
||||
const index = state.tasks.findIndex(d => d.id === task.id)
|
||||
const index = state.tasks.findIndex((d) => d.id === task.id)
|
||||
if (index >= 0) {
|
||||
state.tasks.splice(index, 1, task)
|
||||
} else {
|
||||
// Remove duplicate (only have one library item per action)
|
||||
state.tasks = state.tasks.filter(_task => {
|
||||
state.tasks = state.tasks.filter((_task) => {
|
||||
if (!_task.data?.libraryItemId || _task.action !== task.action) return true
|
||||
return _task.data.libraryItemId !== task.data.libraryItemId
|
||||
})
|
||||
|
@ -37,17 +63,17 @@ export const mutations = {
|
|||
}
|
||||
},
|
||||
removeTask(state, task) {
|
||||
state.tasks = state.tasks.filter(d => d.id !== task.id)
|
||||
state.tasks = state.tasks.filter((d) => d.id !== task.id)
|
||||
},
|
||||
setQueuedEmbedLIds(state, libraryItemIds) {
|
||||
state.queuedEmbedLIds = libraryItemIds
|
||||
},
|
||||
addQueuedEmbedLId(state, libraryItemId) {
|
||||
if (!state.queuedEmbedLIds.some(lid => lid === libraryItemId)) {
|
||||
if (!state.queuedEmbedLIds.some((lid) => lid === libraryItemId)) {
|
||||
state.queuedEmbedLIds.push(libraryItemId)
|
||||
}
|
||||
},
|
||||
removeQueuedEmbedLId(state, libraryItemId) {
|
||||
state.queuedEmbedLIds = state.queuedEmbedLIds.filter(lid => lid !== libraryItemId)
|
||||
state.queuedEmbedLIds = state.queuedEmbedLIds.filter((lid) => lid !== libraryItemId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue