audiobookshelf/server/objects/PodcastEpisodeDownload.js

38 lines
914 B
JavaScript

const Path = require('path')
const { getId } = require('../utils/index')
const { sanitizeFilename } = require('../utils/fileUtils')
class PodcastEpisodeDownload {
constructor() {
this.id = null
this.podcastEpisode = null
this.url = null
this.libraryItem = null
this.isDownloading = false
this.startedAt = null
this.createdAt = null
this.finishedAt = null
}
get targetFilename() {
return sanitizeFilename(`${this.podcastEpisode.bestFilename}.mp3`)
}
get targetPath() {
return Path.join(this.libraryItem.path, this.targetFilename)
}
get targetRelPath() {
return this.targetFilename
}
setData(podcastEpisode, libraryItem) {
this.id = getId('epdl')
this.podcastEpisode = podcastEpisode
this.url = podcastEpisode.enclosure.url
this.libraryItem = libraryItem
this.createdAt = Date.now()
}
}
module.exports = PodcastEpisodeDownload