Dwelling/util.js

35 lines
1.1 KiB
JavaScript

const moment = require("moment-timezone");
const formats = Object.freeze({
post_date: "Do MMMM YYYY HH:mm:ss z",
file_date: "YYYY-MM-DD HH:mm:ss z",
id_date: "YYYYMMDD-HHmm" });
function getTimezone(ctx) {
if (ctx.header['x-client-timezone'] !== undefined)
return ctx.header['x-client-timezone'];
}
function datetime(date, format=formats.post_date, timezone="UTC") {
return moment.utc(date).tz(timezone).format(format);
}
exports.getBaseHost = (host) => {
switch (host) {
case host.endsWith("onion"):
return `http://moq7aejnf4xk5k2bkaltli3ftkhusy2mbrd3pj23nrca343ku2mgk4yd.onion`;
case host.endsWith("b32.i2p"):
return `http://t42fkp6zp5dfqywantq3zp427ig3q2onrmfv246tyaztpg4ckb5a.b32.i2p`;
default:
return "https://arav.top";
}
}
exports.getTimezone = getTimezone;
exports.formats = formats;
exports.datetime = datetime;
exports.rssLink = (proto, host, date, category, timezone="UTC") =>
`${proto}://${host}/mindflow#${category}-${datetime(date, formats.id_date, timezone)}`;