3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-10 12:25:02 +00:00

Add support for server-specific timezone and date format settings

This commit is contained in:
Dragory 2020-08-10 00:24:06 +03:00
parent ddbbc543c2
commit c67a1df11d
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
51 changed files with 326 additions and 168 deletions

View file

@ -0,0 +1,17 @@
import { PluginData } from "knub";
import { DateFormats } from "../types";
const defaultDateFormats: DateFormats = {
date: "MMM D, YYYY",
time: "H:mm",
pretty_datetime: "MMM D, YYYY [at] H:mm z",
};
/**
* Returns the guild-specific date format, falling back to the defaults if one has not been specified
*/
export function getDateFormat(pluginData: PluginData<any>, formatName: keyof DateFormats) {
return pluginData.guildConfig.date_formats?.[formatName] || defaultDateFormats[formatName];
}
export const DBDateFormat = "YYYY-MM-DD HH:mm:ss";

View file

@ -0,0 +1,21 @@
import moment from "moment-timezone";
import { PluginData } from "knub";
import { ZeppelinGuildConfig } from "../types";
export function getGuildTz(pluginData: PluginData<any>) {
const guildConfig = pluginData.guildConfig as ZeppelinGuildConfig;
return guildConfig.timezone || "Etc/UTC";
}
export function inGuildTz(pluginData: PluginData<any>, input?: moment.Moment | number) {
let momentObj: moment.Moment;
if (typeof input === "number") {
momentObj = moment.utc(input, "x");
} else if (moment.isMoment(input)) {
momentObj = input.clone();
} else {
momentObj = moment.utc();
}
return momentObj.tz(getGuildTz(pluginData));
}