xkcd/lib/xkcd.js
Henrique Dias d271737f07
feat: download high resolution imgs (#6)
License: MIT
Signed-off-by: Henrique Dias <hacdias@gmail.com>
2019-11-03 09:10:04 +00:00

38 lines
757 B
JavaScript

const fetch = require('node-fetch')
const path = require('path')
async function getLatestId () {
const raw = await fetch(`https://xkcd.com/info.0.json`)
const data = await raw.json()
return data.num
}
async function getImage (url) {
const ext = path.extname(url)
const url2x = `${path.dirname(url)}/${path.basename(url, ext)}_2x${ext}`
let res = await fetch(url2x)
if (!res.ok) {
res = await fetch(url)
}
if (!res.ok) {
throw new Error('bad image request')
}
return res.buffer()
}
async function getComic (id) {
const raw = await fetch(`https://xkcd.com/${id}/info.0.json`)
const data = await raw.json()
const img = await getImage(data.img)
return { data, img }
}
module.exports = {
getLatestId,
getComic
}