util.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { db } from "./db"
  2. import { CollectionChain } from "lodash";
  3. import { GuildMember } from "discord.js";
  4. import { DocumentationSet } from "./commands/command";
  5. const VALID_EXTENSIONS = new Set([
  6. "png",
  7. "jpg",
  8. "jpeg",
  9. "bmp",
  10. ]);
  11. export let documentation : DocumentationSet = {};
  12. export function isDevelopment() {
  13. return process.env.NODE_ENV == "dev";
  14. }
  15. export function shouldShowMaintenanceMessage(serverId : string) {
  16. if(process.env.NODE_ENV != "dev")
  17. return false;
  18. let devServers = db.get("devServers") as CollectionChain<string>;
  19. return !devServers.includes(serverId).value();
  20. }
  21. export function isValidImage(fileName: string) {
  22. let extPosition = fileName.lastIndexOf(".");
  23. if(extPosition < 0)
  24. return false;
  25. let ext = fileName.substring(extPosition + 1).toLowerCase();
  26. return VALID_EXTENSIONS.has(ext);
  27. }
  28. export function isAuthorised(member : GuildMember) {
  29. let users = db.get("editors.users") as CollectionChain<string>;
  30. let roles = db.get("editors.roles") as CollectionChain<string>;
  31. if (users.includes(member.id).value())
  32. return true;
  33. if (roles.intersectionWith(member.roles.keyArray()).isEmpty().value())
  34. return false;
  35. return true;
  36. }