This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
Zaimki/server/calendar.js

50 lines
1.5 KiB
JavaScript
Raw Normal View History

2021-09-07 10:11:15 -07:00
require('../src/dotenv')();
2021-08-18 05:39:08 -07:00
const Pageres = require('pageres');
const fs = require('fs');
const dbConnection = require('./db');
const Suml = require('suml');
const loadSuml = name => new Suml().parse(fs.readFileSync(`./data/${name}.suml`).toString());
const config = loadSuml('config');
2021-08-18 05:39:08 -07:00
2021-08-18 11:19:24 -07:00
const shoot = async (url, filename) => {
2021-08-18 05:39:08 -07:00
const pr = new Pageres({
delay: 3,
2021-08-18 11:19:24 -07:00
scale: 2,
2021-08-18 05:39:08 -07:00
});
2021-08-18 11:19:24 -07:00
pr.src(process.env.BASE_URL + url, ['1500x300']);
2021-08-18 05:39:08 -07:00
for (let buffer of await pr.run()) {
const dir = `${__dirname}/../static/calendar`;
2021-09-14 08:45:20 -07:00
fs.mkdirSync(dir, {recursive: true})
const target = `${dir}/${filename}.png`;
2021-08-18 05:39:08 -07:00
console.log(target);
fs.writeFileSync(target, buffer);
}
2021-08-18 11:19:24 -07:00
}
const dumpNameDays = async () => {
if (!config.names || !config.names.enabled || !config.names.namedays) {
return;
}
const db = await dbConnection();
const names = await db.all(`
SELECT n.name, n.namedays
FROM names n
WHERE n.namedays IS NOT NULL
AND approved = 1
AND deleted = 0
`);
const output = {};
for (let {name, namedays} of names) {
output[name] = namedays.split('|');
}
fs.writeFileSync(`${__dirname}/../data/names/namedays.json`, JSON.stringify(output));
}
2021-08-18 11:19:24 -07:00
(async () => {
await shoot(`/${config.calendar.route}?layout=basic`, `overview`);
await shoot(`/${config.calendar.route}?layout=basic&labels=true`, `labels`);
await dumpNameDays();
2021-08-18 05:39:08 -07:00
})();