35 lines
1.1 KiB
JavaScript
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)}`;
|
|
|