ripunzel/src/methods/imgurImage.js

42 lines
1.1 KiB
JavaScript

'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;