jefklakscodex/hooks/precommit.js

42 lines
1.2 KiB
JavaScript

const fsp = require('fs').promises;
const { resolve } = require('path');
const { howlongtobeat, webmention, youtube } = require('jam-my-stack');
if(!process.env.WEBMENTION_TOKEN) {
throw "No webmention token set!"
}
const wmconfig = {
endpoint: 'https://jam.brainbaking.com',
token: process.env.WEBMENTION_TOKEN
};
// If this isn't resolved, jam-my-stack will fail to replace 'content' with 'static' when downloading covers.
const rootdir = resolve(`${__dirname}/..`);
(async function() {
// 1. get how long to beat times
console.log("1. adding Howlongtobeat info...")
await howlongtobeat.howlong({
postDir: `${rootdir}/content`,
downloadDir: `${rootdir}/static`
})
// 2. get webmentions
console.log("2. Fetching webmentions...")
const mentions = await webmention.getWebmentions("jefklakscodex.com", wmconfig)
const json = JSON.stringify(mentions, null, 4)
await fsp.writeFile(`${rootdir}/data/webmentions.json`, json, 'utf-8')
// 3. generate youtube thumbnails.
console.log("4. Generating YouTube thumbnails...")
await youtube.thumbify({
postDir: `${rootdir}/content`,
downloadDir: `${rootdir}/static/img/yt`,
overlayImg: `${rootdir}/play.png`
})
console.log("-- all done!")
})()