mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-11-04 03:17:00 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const FileMetadata = require('../metadata/FileMetadata')
 | 
						|
 | 
						|
class EBookFile {
 | 
						|
  constructor(file) {
 | 
						|
    this.ino = null
 | 
						|
    this.metadata = null
 | 
						|
    this.ebookFormat = null
 | 
						|
    this.addedAt = null
 | 
						|
    this.updatedAt = null
 | 
						|
 | 
						|
    if (file) {
 | 
						|
      this.construct(file)
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  construct(file) {
 | 
						|
    this.ino = file.ino
 | 
						|
    this.metadata = new FileMetadata(file.metadata)
 | 
						|
    this.ebookFormat = file.ebookFormat
 | 
						|
    this.addedAt = file.addedAt
 | 
						|
    this.updatedAt = file.updatedAt
 | 
						|
  }
 | 
						|
 | 
						|
  toJSON() {
 | 
						|
    return {
 | 
						|
      ino: this.ino,
 | 
						|
      metadata: this.metadata.toJSON(),
 | 
						|
      ebookFormat: this.ebookFormat,
 | 
						|
      addedAt: this.addedAt,
 | 
						|
      updatedAt: this.updatedAt
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  setData(libraryFile) {
 | 
						|
    this.ino = libraryFile.ino
 | 
						|
    this.metadata = libraryFile.metadata.clone()
 | 
						|
    this.ebookFormat = libraryFile.metadata.format
 | 
						|
    this.addedAt = Date.now()
 | 
						|
    this.updatedAt = Date.now()
 | 
						|
  }
 | 
						|
 | 
						|
  updateFromLibraryFile(libraryFile) {
 | 
						|
    var hasUpdated = false
 | 
						|
 | 
						|
    if (this.metadata.update(libraryFile.metadata)) {
 | 
						|
      hasUpdated = true
 | 
						|
    }
 | 
						|
 | 
						|
    if (this.ebookFormat !== libraryFile.metadata.format) {
 | 
						|
      this.ebookFormat = libraryFile.metadata.format
 | 
						|
      hasUpdated = true
 | 
						|
    }
 | 
						|
 | 
						|
    return hasUpdated
 | 
						|
  }
 | 
						|
}
 | 
						|
module.exports = EBookFile |