You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.0 KiB
45 lines
1.0 KiB
import fs from 'fs' |
|
import request from 'request' |
|
import path from 'path' |
|
import axios from 'axios' |
|
import {nanoid} from 'nanoid' |
|
|
|
let fileName = './data2.json' |
|
let saveFileStr = fs.readFileSync(fileName, "utf8"); |
|
let inputData = JSON.parse(saveFileStr); |
|
|
|
|
|
const downloadImage = (src, dest, callback) => { |
|
request.head(src, (err, res, body) => { |
|
if (err) { |
|
console.log(err); |
|
return; |
|
} |
|
src && |
|
request(src) |
|
.pipe(fs.createWriteStream(dest)) |
|
.on("close", () => { |
|
callback && callback(null, dest); |
|
}); |
|
}); |
|
}; |
|
|
|
let saveFilePath = './imgs/' |
|
|
|
async function sleep(val) { |
|
return new Promise(resolve => { |
|
setTimeout(resolve, val) |
|
}) |
|
} |
|
|
|
inputData.slice(0, 2).map(async v => { |
|
await v.cover_url.map(async a => { |
|
let coverUrl = a.url_list[a.url_list.length - 1] |
|
a.url_list = [coverUrl] |
|
console.log('coverUrl', coverUrl) |
|
await sleep(1500) |
|
downloadImage(coverUrl, saveFilePath + nanoid() + '.png') |
|
}) |
|
}) |
|
|
|
fs.writeFileSync(fileName, JSON.stringify(inputData, null, 2)); |