mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	Add: Force re-scan library
This commit is contained in:
		
							parent
							
								
									f6d43ea60f
								
							
						
					
					
						commit
						b68c181631
					
				| @ -10,6 +10,7 @@ | ||||
|     <p class="text-xl font-book pl-4 hover:underline cursor-pointer" @click.stop="$emit('click', library)">{{ library.name }}</p> | ||||
|     <div class="flex-grow" /> | ||||
|     <ui-btn v-show="isHovering && !libraryScan && canScan" small color="bg" @click.stop="scan">Scan</ui-btn> | ||||
|     <ui-btn v-show="isHovering && !libraryScan && canScan" small color="bg" class="ml-2" @click.stop="forceScan">Force Re-Scan</ui-btn> | ||||
|     <span v-show="isHovering && !libraryScan && showEdit && canEdit" class="material-icons text-xl text-gray-300 hover:text-gray-50 ml-4 cursor-pointer" @click.stop="editClick">edit</span> | ||||
|     <span v-show="!libraryScan && isHovering && showEdit && canDelete && !isDeleting" class="material-icons text-xl text-gray-300 ml-3" :class="isMain ? 'text-opacity-5 cursor-not-allowed' : 'hover:text-gray-50 cursor-pointer'" @click.stop="deleteClick">delete</span> | ||||
|     <div v-show="isDeleting" class="text-xl text-gray-300 ml-3 animate-spin"> | ||||
| @ -67,6 +68,9 @@ export default { | ||||
|     scan() { | ||||
|       this.$root.socket.emit('scan', this.library.id) | ||||
|     }, | ||||
|     forceScan() { | ||||
|       this.$root.socket.emit('scan', this.library.id, {forceRescan: true}) | ||||
|     }, | ||||
|     deleteClick() { | ||||
|       if (this.isMain) return | ||||
|       if (confirm(`Are you sure you want to permanently delete library "${this.library.name}"?`)) { | ||||
|  | ||||
| @ -316,9 +316,9 @@ class Server { | ||||
|     await this.scanner2.scanFilesChanged(fileUpdates) | ||||
|   } | ||||
| 
 | ||||
|   async scan(libraryId) { | ||||
|   async scan(libraryId, options = {}) { | ||||
|     Logger.info('[Server] Starting Scan') | ||||
|     await this.scanner2.scan(libraryId) | ||||
|     await this.scanner2.scan(libraryId, options) | ||||
|     // await this.scanner.scan(libraryId)
 | ||||
|     Logger.info('[Server] Scan complete') | ||||
|   } | ||||
|  | ||||
| @ -221,7 +221,7 @@ class Scanner { | ||||
|         } | ||||
|       } else { | ||||
|         var checkRes = audiobook.checkScanData(dataFound, version) | ||||
|         if (checkRes.newAudioFileData.length || checkRes.newOtherFileData.length) { // Audiobook has new files
 | ||||
|         if (checkRes.newAudioFileData.length || checkRes.newOtherFileData.length || libraryScan.scanOptions.forceRescan) { // Audiobook has new files
 | ||||
|           checkRes.audiobook = audiobook | ||||
|           checkRes.bookScanData = dataFound | ||||
|           audiobookDataToRescan.push(checkRes) | ||||
| @ -325,13 +325,13 @@ class Scanner { | ||||
|     libraryScan.addLog(LogLevel.DEBUG, `Library "${libraryScan.libraryName}" Re-scanning "${audiobook.path}"`) | ||||
| 
 | ||||
|     // Sync other files first to use local images as cover before extracting audio file cover
 | ||||
|     if (newOtherFileData.length) { | ||||
|     if (newOtherFileData.length || libraryScan.scanOptions.forceRescan) { | ||||
|       // TODO: Cleanup other file sync
 | ||||
|       var allOtherFiles = newOtherFileData.concat(audiobook._otherFiles) | ||||
|       await audiobook.syncOtherFiles(allOtherFiles, this.MetadataPath, libraryScan.preferOpfMetadata) | ||||
|     } | ||||
| 
 | ||||
|     if (newAudioFileData.length) { | ||||
|     if (newAudioFileData.length || libraryScan.scanOptions.forceRescan) { | ||||
|       await AudioFileScanner.scanAudioFiles(newAudioFileData, bookScanData, audiobook, libraryScan.preferAudioMetadata, libraryScan) | ||||
| 
 | ||||
|       // Extract embedded cover art if cover is not already in directory
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user