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 fetch = require('node-fetch')
|
||||||
|
const path = require('path')
|
||||||
|
|
||||||
async function getLatestId () {
|
async function getLatestId () {
|
||||||
const raw = await fetch(`https://xkcd.com/info.0.json`)
|
const raw = await fetch(`https://xkcd.com/info.0.json`)
|
||||||
|
@ -6,10 +7,26 @@ async function getLatestId () {
|
||||||
return data.num
|
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) {
|
async function getComic (id) {
|
||||||
const raw = await fetch(`https://xkcd.com/${id}/info.0.json`)
|
const raw = await fetch(`https://xkcd.com/${id}/info.0.json`)
|
||||||
const data = await raw.json()
|
const data = await raw.json()
|
||||||
const img = await (await fetch(data.img)).buffer()
|
const img = await getImage(data.img)
|
||||||
|
|
||||||
return { data, img }
|
return { data, img }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user