123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import { GuildMember } from "discord.js";
- import { getRepository, In } from "typeorm";
- import { KnownUser } from "@shared/db/entity/KnownUser";
- const VALID_EXTENSIONS = new Set([
- "png",
- "jpg",
- "jpeg",
- "bmp",
- ]);
- export function isDevelopment() {
- return process.env.NODE_ENV == "dev";
- }
- export function isValidImage(fileName?: string) {
- if (!fileName)
- return false;
- let extPosition = fileName.lastIndexOf(".");
- if (extPosition < 0)
- return false;
- let ext = fileName.substring(extPosition + 1).toLowerCase();
- return VALID_EXTENSIONS.has(ext);
- }
- export async function isAuthorisedAsync(member: GuildMember | null | undefined) {
- if (!member)
- return false;
- let repo = getRepository(KnownUser);
- let user = await repo.findOne({
- where: { userID: member.id },
- select: ["canModerate"]
- });
- if (user && user.canModerate)
- return true;
- let role = await repo.findOne({
- select: ["userID"],
- where: {
- userID: In(member.roles.cache.keyArray()),
- canModerate: true
- }
- });
- if (role)
- return true;
- return false;
- }
- export function compareNumbers<T>(prop: (o: T) => number) {
- return (a: T, b: T) => {
- let ap = prop(a);
- let bp = prop(b);
- if (ap < bp)
- return 1;
- else if (ap > bp)
- return -1;
- return 0;
- };
- }
- export type Dict<TVal> = { [key: string]: TVal };
- export function getNumberEnums(e: any): number[] {
- return Object.keys(e).filter(k => typeof e[k as any] === "number").map(k => e[k as any]);
- }
|