Add time_and_date plugin. Use it for timezones and date formats around the bot.

This commit is contained in:
Dragory 2020-08-19 00:19:12 +03:00
parent cffb0dbd6b
commit 4ae8cf85a3
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
67 changed files with 543 additions and 177 deletions

View file

@ -6,9 +6,8 @@ import humanizeDuration from "humanize-duration";
import LCL from "last-commit-log";
import path from "path";
import moment from "moment-timezone";
import { getGuildTz, inGuildTz } from "../../../utils/timezones";
import { rootDir } from "../../../paths";
import { getDateFormat } from "../../../utils/dateFormats";
import { TimeAndDatePlugin } from "../../TimeAndDate/TimeAndDatePlugin";
export const AboutCmd = utilityCmd({
trigger: "about",
@ -16,6 +15,8 @@ export const AboutCmd = utilityCmd({
permission: "can_about",
async run({ message: msg, pluginData }) {
const timeAndDate = pluginData.getPlugin(TimeAndDatePlugin);
const uptime = getCurrentUptime();
const prettyUptime = humanizeDuration(uptime, { largest: 2, round: true });
@ -30,9 +31,9 @@ export const AboutCmd = utilityCmd({
let version;
if (lastCommit) {
lastUpdate = inGuildTz(pluginData, moment.utc(lastCommit.committer.date, "X")).format(
getDateFormat(pluginData, "pretty_datetime"),
);
lastUpdate = timeAndDate
.inGuildTz(moment.utc(lastCommit.committer.date, "X"))
.format(pluginData.getPlugin(TimeAndDatePlugin).getDateFormat("pretty_datetime"));
version = lastCommit.shortHash;
} else {
lastUpdate = "?";
@ -52,7 +53,7 @@ export const AboutCmd = utilityCmd({
["Last update", lastUpdate],
["Version", version],
["API latency", `${shard.latency}ms`],
["Server timezone", getGuildTz(pluginData)],
["Server timezone", timeAndDate.getGuildTz()],
];
const loadedPlugins = Array.from(

View file

@ -32,7 +32,7 @@ export const InfoCmd = utilityCmd({
const channelId = getChannelId(value);
const channel = channelId && pluginData.guild.channels.get(channelId);
if (channel) {
const embed = await getChannelInfoEmbed(pluginData, channelId);
const embed = await getChannelInfoEmbed(pluginData, channelId, message.author.id);
if (embed) {
message.channel.createMessage({ embed });
return;
@ -42,7 +42,7 @@ export const InfoCmd = utilityCmd({
// 2. Server
const guild = pluginData.client.guilds.get(value);
if (guild) {
const embed = await getServerInfoEmbed(pluginData, value);
const embed = await getServerInfoEmbed(pluginData, value, message.author.id);
if (embed) {
message.channel.createMessage({ embed });
return;
@ -52,7 +52,7 @@ export const InfoCmd = utilityCmd({
// 3. User
const user = await resolveUser(pluginData.client, value);
if (user) {
const embed = await getUserInfoEmbed(pluginData, user.id, Boolean(args.compact));
const embed = await getUserInfoEmbed(pluginData, user.id, Boolean(args.compact), message.author.id);
if (embed) {
message.channel.createMessage({ embed });
return;
@ -63,7 +63,12 @@ export const InfoCmd = utilityCmd({
const messageTarget = await resolveMessageTarget(pluginData, value);
if (messageTarget) {
if (canReadChannel(messageTarget.channel, message.member)) {
const embed = await getMessageInfoEmbed(pluginData, messageTarget.channel.id, messageTarget.messageId);
const embed = await getMessageInfoEmbed(
pluginData,
messageTarget.channel.id,
messageTarget.messageId,
message.author.id,
);
if (embed) {
message.channel.createMessage({ embed });
return;
@ -87,7 +92,7 @@ export const InfoCmd = utilityCmd({
// 6. Server again (fallback for discovery servers)
const serverPreview = getGuildPreview(pluginData.client, value).catch(() => null);
if (serverPreview) {
const embed = await getServerInfoEmbed(pluginData, value);
const embed = await getServerInfoEmbed(pluginData, value, message.author.id);
if (embed) {
message.channel.createMessage({ embed });
return;
@ -96,7 +101,7 @@ export const InfoCmd = utilityCmd({
// 7. Arbitrary ID
if (isValidSnowflake(value)) {
const embed = getSnowflakeInfoEmbed(pluginData, value, true);
const embed = await getSnowflakeInfoEmbed(pluginData, value, true, message.author.id);
message.channel.createMessage({ embed });
return;
}

View file

@ -20,7 +20,12 @@ export const MessageInfoCmd = utilityCmd({
return;
}
const embed = await getMessageInfoEmbed(pluginData, args.message.channel.id, args.message.messageId);
const embed = await getMessageInfoEmbed(
pluginData,
args.message.channel.id,
args.message.messageId,
message.author.id,
);
if (!embed) {
sendErrorMessage(pluginData, message.channel, "Unknown message");
return;

View file

@ -15,7 +15,7 @@ export const ServerCmd = utilityCmd({
async run({ message, pluginData, args }) {
const serverId = args.serverId || pluginData.guild.id;
const serverInfoEmbed = await getServerInfoEmbed(pluginData, serverId);
const serverInfoEmbed = await getServerInfoEmbed(pluginData, serverId, message.author.id);
if (!serverInfoEmbed) {
sendErrorMessage(pluginData, message.channel, "Could not find information for that server");
return;

View file

@ -14,8 +14,8 @@ export const SnowflakeInfoCmd = utilityCmd({
id: ct.anyId(),
},
run({ message, args, pluginData }) {
const embed = getSnowflakeInfoEmbed(pluginData, args.id);
async run({ message, args, pluginData }) {
const embed = await getSnowflakeInfoEmbed(pluginData, args.id, false, message.author.id);
message.channel.createMessage({ embed });
},
});

View file

@ -17,7 +17,7 @@ export const UserInfoCmd = utilityCmd({
async run({ message, args, pluginData }) {
const userId = args.user?.id || message.author.id;
const embed = await getUserInfoEmbed(pluginData, userId, args.compact);
const embed = await getUserInfoEmbed(pluginData, userId, args.compact, message.author.id);
if (!embed) {
sendErrorMessage(pluginData, message.channel, "User not found");
return;