feat: download high resolution imgs (#6)
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>
This commit is contained in:
parent
3688c623f3
commit
d271737f07
19
lib/xkcd.js
19
lib/xkcd.js
|
@ -1,4 +1,5 @@
|
|||
const fetch = require('node-fetch')
|
||||
const path = require('path')
|
||||
|
||||
async function getLatestId () {
|
||||
const raw = await fetch(`https://xkcd.com/info.0.json`)
|
||||
|
@ -6,10 +7,26 @@ async function getLatestId () {
|
|||
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 (await fetch(data.img)).buffer()
|
||||
const img = await getImage(data.img)
|
||||
|
||||
return { data, img }
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user