const { mastodon, goodreads, lunr, webmention, youtube } = require('jam-my-stack'); const fsp = require('fs').promises; const wmconfig = require('./_conf.js'); const rootdir = `${__dirname}/../`; (async function() { // 1. parse Mastodon RSS feed // currently disabling notes, as after 3 months, I find these do not bring anything relevant to the table. /* console.log("1. parsing Mastodon RSS feed...") await mastodon.parseFeed({ notesdir: `${__dirname}/content/notes`, url: "https://chat.brainbaking.com/users/wouter/feed", utcOffset: 60, titleCount: 50, ignoreReplies: true }) */ // 2. update goodreads JS widget console.log("2. Updating Goodreads Widget...") const widget = await goodreads.createWidget("https://www.goodreads.com/review/grid_widget/5451893.Wouter's%20bookshelf:%20read?cover_size=medium&hide_link=&hide_title=&num_books=12&order=d&shelf=read&sort=date_added&widget_id=1496758344") await fsp.writeFile(`${rootdir}/static/js/goodreads.js`, widget.replace(/src=/g, "loading=\"lazy\" src="), 'utf-8') // 3. build Lunr index console.log("3. Building lunr search index...") const index = await lunr.buildIndex([`${rootdir}/content/post`]) await fsp.writeFile(`${rootdir}/static/js/brainbaking-post.json`, JSON.stringify(index), 'utf-8') // 4. get webmentions console.log("4. Fetching webmentions...") const mentions = await webmention.getWebmentions("brainbaking.com", wmconfig) const json = JSON.stringify(mentions, null, 4) await fsp.writeFile(`${rootdir}/data/webmentions.json`, json, 'utf-8') console.log("4.1 Fetching pictures from wm authors...") await webmention.getPictures(mentions, { endpoint: wmconfig.endpoint, directory: `${rootdir}/assets/wmpics`, override: false, extension: "jpg" }) // 5. generate youtube thumbnails console.log("5. Generating YouTube thumbnails...") await youtube.thumbify({ postDir: `${rootdir}/content/post`, downloadDir: `${rootdir}/static/img/yt`, overlayImg: `${rootdir}/play.png` }) console.log("-- all done!") })()