'use strict'; const config = require('config'); const fetch = require('node-fetch'); async function imgurImageApi(host) { const res = await fetch(`https://api.imgur.com/3/image/${host.id}`, { headers: { Authorization: `Client-ID ${config.methods.imgur.clientId}`, }, }); if (res.status !== 200) { throw new Error(`Imgur API returned HTTP ${res.status} for source '${host.url}'`); } const { data } = await res.json(); if (res.status !== 200) { throw new Error(`Could not fetch info for imgur image '${host.id}': ${data.error}`); } return { album: null, items: [{ id: data.id, url: data.animated ? data.mp4 : data.link, title: data.title, description: data.description, type: data.animated ? 'video/mp4' : data.type, datetime: new Date(data.datetime * 1000), original: data, }], }; } async function imgurImage(host, post) { return imgurImageApi(host, post); } module.exports = imgurImage;