console.log('================================================================='); console.log('hello and welcome to the file converter from Mastodon outbox JSON'); console.log('================================================================='); const express = require('express'); const pug = require('pug'); const app = express(); var fs = require('fs'); var listenPort = 8088; var jsonParsedLikes, jsonParsedOutbox; // const min_length = 1050; // filter only long toots const min_length = 300; // filter only long toots const max_toots = 500; // filter only long toots const filterBiggerTottsBeforeSlicing = false; // filter only long toots const TemplateVars = { pageTitle : 'Mastodon export converter to HTML', likes : jsonParsedLikes, outbox : jsonParsedOutbox, outboxStatistics: {}, outbox_all : jsonParsedOutbox, min_length , max_toots , }; const masto_converter = require('./conversion'); console.log('masto_converter', masto_converter); masto_converter.conversion.hello(); jsonParsedLikes = masto_converter.conversion.likes(); fs.readFile('source_data/outbox.json', // callback function that is called when reading file is done function (err, data) { let minchartoots ; // parse json jsonParsedOutbox = JSON.parse(data); // access elements console.log('outbox toots length', jsonParsedOutbox.orderedItems.length); TemplateVars.outboxTotalLength = jsonParsedOutbox.orderedItems.length; minchartoots = masto_converter.conversion.filterToots(jsonParsedOutbox.orderedItems, TemplateVars) console.log('min_chars', min_length); console.log('toots min char corresponding', minchartoots.length); TemplateVars.outbox = minchartoots; TemplateVars.outboxStatistics = masto_converter.conversion.makeStatsForToots(minchartoots); const example = TemplateVars.outbox[1]['object']; TemplateVars.example = example; fs.writeFile('output/statistics.json', JSON.stringify(TemplateVars.outboxStatistics), errfileHandler ); }); const errfileHandler = (err) => { if (err) console.log(err); else { console.log("File statistics written successfully\n"); } } app.use(express.static('public')); app.set('view engine', 'pug'); app.get('/', (req, res) => { const html = pug.render('index.pug', TemplateVars); fs.writeFile('output/my_toots.html', html, errfileHandler ); res.render('index.pug', TemplateVars); }); app.listen(listenPort, () => console.log(`Server is live at http://localhost:${listenPort}`)); console.log('================================================================='); console.log('made by Tykayn from CipherBliss - https://mastodon.cipherbliss.com/@tykayn'); console.log('=================================================================');