37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
const NodeID3 = require('node-id3')
|
|
const path = require('path')
|
|
const fs = require('fs')
|
|
const request = require('request')
|
|
const extReg = /^(\.(?:jpe?g|png)).*$/
|
|
|
|
module.exports = (filePath, meta) => {
|
|
if (!meta.APIC) return NodeID3.write(meta, filePath)
|
|
let picPath = filePath.replace(/\.mp3$/, '') + path.extname(meta.APIC).replace(extReg, '$1')
|
|
request(meta.APIC)
|
|
.on('response', respones => {
|
|
if (respones.statusCode !== 200 && respones.statusCode != 206) {
|
|
delete meta.APIC
|
|
NodeID3.write(meta, filePath)
|
|
return
|
|
}
|
|
respones
|
|
.pipe(fs.createWriteStream(picPath))
|
|
.on('finish', () => {
|
|
meta.APIC = picPath
|
|
NodeID3.write(meta, filePath)
|
|
fs.unlink(picPath, err => {
|
|
if (err) console.log(err.message)
|
|
})
|
|
}).on('error', err => {
|
|
if (err) console.log(err.message)
|
|
delete meta.APIC
|
|
NodeID3.write(meta, filePath)
|
|
})
|
|
})
|
|
.on('error', err => {
|
|
if (err) console.log(err.message)
|
|
delete meta.APIC
|
|
NodeID3.write(meta, filePath)
|
|
})
|
|
}
|