utility: reorganize things code-wise
This commit is contained in:
		
							parent
							
								
									939effc40a
								
							
						
					
					
						commit
						063dd0c3f1
					
				
					 2 changed files with 119 additions and 117 deletions
				
			
		
							
								
								
									
										1
									
								
								data/emoji.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								data/emoji.json
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
						 | 
				
			
			@ -1,12 +1,38 @@
 | 
			
		|||
const Command = require("../lib/command.js");
 | 
			
		||||
const CATEGORY = "utility";
 | 
			
		||||
 | 
			
		||||
// imports
 | 
			
		||||
 | 
			
		||||
const sharp = require("sharp");
 | 
			
		||||
 | 
			
		||||
const {
 | 
			
		||||
  hastebin,
 | 
			
		||||
  lookupUser,
 | 
			
		||||
  formatTime,
 | 
			
		||||
  safeString,
 | 
			
		||||
} = require("../lib/utils.js");
 | 
			
		||||
const {getNamesFromString} = require("../lib/unicode.js");
 | 
			
		||||
 | 
			
		||||
const GameData = require("../../data/games.json");
 | 
			
		||||
 | 
			
		||||
const EmojiData = require("../../data/emoji.json");
 | 
			
		||||
const EMOJI_NAMES = [];
 | 
			
		||||
for (const emoji of EmojiData) {
 | 
			
		||||
  EMOJI_NAMES[emoji.char] = emoji.name.replace(/ /g, "_");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// constants
 | 
			
		||||
 | 
			
		||||
const ICON_BASE = "https://cdn.discordapp.com/icons/";
 | 
			
		||||
const AVATAR_BASE = "https://cdn.discordapp.com/avatars/";
 | 
			
		||||
const SPLASH_BASE = "https://cdn.discordapp.com/splashes/";
 | 
			
		||||
const BANNER_BASE = "https://cdn.discordapp.com/banners/";
 | 
			
		||||
const EMOTE_BASE = "https://cdn.discordapp.com/emojis/";
 | 
			
		||||
 | 
			
		||||
const CUSTOM_EMOTE_REGEX = /<(?:\u200b|&)?(a)?:(\w+):(\d+)>/;
 | 
			
		||||
 | 
			
		||||
const NOWPLAYING_BAR_LENGTH = 30;
 | 
			
		||||
 | 
			
		||||
const STATUS_ICONS = {
 | 
			
		||||
  online: "<:online:493173082421461002>",
 | 
			
		||||
  idle: "<:idle:493173082006093836>",
 | 
			
		||||
| 
						 | 
				
			
			@ -14,6 +40,93 @@ const STATUS_ICONS = {
 | 
			
		|||
  offline: "<:offline:493173082253426688>",
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const PRESENCE_ICONS = {
 | 
			
		||||
  desktop: {
 | 
			
		||||
    online: "<:desktop_online:1028887024670871552>",
 | 
			
		||||
    idle: "<:desktop_idle:1028887022938624033>",
 | 
			
		||||
    dnd: "<:desktop_dnd:1028887021848121364>",
 | 
			
		||||
  },
 | 
			
		||||
  mobile: {
 | 
			
		||||
    online: "<:mobile_online:1028887017637036043>",
 | 
			
		||||
    idle: "<:mobile_idle:1028887019226669116>",
 | 
			
		||||
    dnd: "<:mobile_dnd:1028887020560449637>",
 | 
			
		||||
  },
 | 
			
		||||
  web: {
 | 
			
		||||
    online: "<:web_online:1028887016353574962>",
 | 
			
		||||
    idle: "<:web_idle:1028887014579392592>",
 | 
			
		||||
    dnd: "<:web_dnd:1028887012855525486>",
 | 
			
		||||
  },
 | 
			
		||||
  embedded: {
 | 
			
		||||
    online: "<:embedded_online:1028887010636726313>",
 | 
			
		||||
    idle: "<:embedded_idle:1028887009147760681>",
 | 
			
		||||
    dnd: "<:embedded_dnd:1028887008149516299>",
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const PRESENCE_TYPES = [
 | 
			
		||||
  "Playing",
 | 
			
		||||
  "Streaming",
 | 
			
		||||
  "Listening to",
 | 
			
		||||
  "Watching",
 | 
			
		||||
  "",
 | 
			
		||||
  "Competing in",
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
const USER_FLAGS = [
 | 
			
		||||
  "STAFF",
 | 
			
		||||
  "PARTNER",
 | 
			
		||||
  "HYPESQUAD",
 | 
			
		||||
  "BUG_HUNTER_LEVEL_1",
 | 
			
		||||
  "MFA_SMS",
 | 
			
		||||
  "PREMIUM_PROMO_DISMISSED",
 | 
			
		||||
  "HYPESQUAD_ONLINE_HOUSE_1",
 | 
			
		||||
  "HYPESQUAD_ONLINE_HOUSE_2",
 | 
			
		||||
  "HYPESQUAD_ONLINE_HOUSE_3",
 | 
			
		||||
  "PREMIUM_EARLY_SUPPORTER",
 | 
			
		||||
  "TEAM_PSEUDO_USER",
 | 
			
		||||
  "<Internal Application (Partner, etc) Flag>", // leaked
 | 
			
		||||
  "SYSTEM",
 | 
			
		||||
  "HAS_UNREAD_URGENT_MESSAGES",
 | 
			
		||||
  "BUG_HUNTER_LEVEL_2",
 | 
			
		||||
  "UNDERAGE_DELETED",
 | 
			
		||||
  "VERIFIED_BOT",
 | 
			
		||||
  "VERIFIED_DEVELOPER",
 | 
			
		||||
  "CERTIFIED_MODERATOR",
 | 
			
		||||
  "BOT_HTTP_INTERACTIONS",
 | 
			
		||||
  "SPAMMER",
 | 
			
		||||
  "DISABLE_PREMIUM",
 | 
			
		||||
  "ACTIVE_DEVELOPER",
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  "HIGH_GLOBAL_RATE_LIMIT", // start admin panel leak aug 2022
 | 
			
		||||
  "DELETED",
 | 
			
		||||
  "DISABLED_SUSPICIOUS_ACTIVITY",
 | 
			
		||||
  "SELF_DELETED",
 | 
			
		||||
  "PREMIUM_DISCRIMINATOR",
 | 
			
		||||
  "USED_DESKTOP_CLIENT",
 | 
			
		||||
  "USED_WEB_CLIENT",
 | 
			
		||||
  "USED_MOBILE_CLIENT",
 | 
			
		||||
  "DISABLED",
 | 
			
		||||
  undefined,
 | 
			
		||||
  "VERIFIED_EMAIL", // end admin panel leak aug 2022
 | 
			
		||||
  "QUARANTINED",
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  "COLLABORATOR",
 | 
			
		||||
  "RESTRICTED_COLLABORATOR",
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
const EMOJI_SETS = {
 | 
			
		||||
  blobs: {
 | 
			
		||||
    prefix:
 | 
			
		||||
| 
						 | 
				
			
			@ -55,19 +168,7 @@ EMOJI_SETS.ms = EMOJI_SETS.mustd;
 | 
			
		|||
EMOJI_SETS.twitter = EMOJI_SETS.twemoji;
 | 
			
		||||
EMOJI_SETS.fb = EMOJI_SETS.facebook;
 | 
			
		||||
 | 
			
		||||
const CUSTOM_EMOTE_REGEX = /<(?:\u200b|&)?(a)?:(\w+):(\d+)>/;
 | 
			
		||||
 | 
			
		||||
const sharp = require("sharp");
 | 
			
		||||
 | 
			
		||||
const {
 | 
			
		||||
  hastebin,
 | 
			
		||||
  lookupUser,
 | 
			
		||||
  formatTime,
 | 
			
		||||
  safeString,
 | 
			
		||||
} = require("../lib/utils.js");
 | 
			
		||||
const {getNamesFromString} = require("../lib/unicode.js");
 | 
			
		||||
 | 
			
		||||
const GameData = require("../../data/games.json");
 | 
			
		||||
// commands
 | 
			
		||||
 | 
			
		||||
const avatar = new Command("avatar");
 | 
			
		||||
avatar.category = CATEGORY;
 | 
			
		||||
| 
						 | 
				
			
			@ -466,61 +567,6 @@ snowflake.callback = function (msg, line, [snowflake], {twitter}) {
 | 
			
		|||
};
 | 
			
		||||
hf.registerCommand(snowflake);
 | 
			
		||||
 | 
			
		||||
const USER_FLAGS = [
 | 
			
		||||
  "STAFF",
 | 
			
		||||
  "PARTNER",
 | 
			
		||||
  "HYPESQUAD",
 | 
			
		||||
  "BUG_HUNTER_LEVEL_1",
 | 
			
		||||
  "MFA_SMS",
 | 
			
		||||
  "PREMIUM_PROMO_DISMISSED",
 | 
			
		||||
  "HYPESQUAD_ONLINE_HOUSE_1",
 | 
			
		||||
  "HYPESQUAD_ONLINE_HOUSE_2",
 | 
			
		||||
  "HYPESQUAD_ONLINE_HOUSE_3",
 | 
			
		||||
  "PREMIUM_EARLY_SUPPORTER",
 | 
			
		||||
  "TEAM_PSEUDO_USER",
 | 
			
		||||
  "<Internal Application (Partner, etc) Flag>", // leaked
 | 
			
		||||
  "SYSTEM",
 | 
			
		||||
  "HAS_UNREAD_URGENT_MESSAGES",
 | 
			
		||||
  "BUG_HUNTER_LEVEL_2",
 | 
			
		||||
  "UNDERAGE_DELETED",
 | 
			
		||||
  "VERIFIED_BOT",
 | 
			
		||||
  "VERIFIED_DEVELOPER",
 | 
			
		||||
  "CERTIFIED_MODERATOR",
 | 
			
		||||
  "BOT_HTTP_INTERACTIONS",
 | 
			
		||||
  "SPAMMER",
 | 
			
		||||
  "DISABLE_PREMIUM",
 | 
			
		||||
  "ACTIVE_DEVELOPER",
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  "HIGH_GLOBAL_RATE_LIMIT", // start admin panel leak aug 2022
 | 
			
		||||
  "DELETED",
 | 
			
		||||
  "DISABLED_SUSPICIOUS_ACTIVITY",
 | 
			
		||||
  "SELF_DELETED",
 | 
			
		||||
  "PREMIUM_DISCRIMINATOR",
 | 
			
		||||
  "USED_DESKTOP_CLIENT",
 | 
			
		||||
  "USED_WEB_CLIENT",
 | 
			
		||||
  "USED_MOBILE_CLIENT",
 | 
			
		||||
  "DISABLED",
 | 
			
		||||
  undefined,
 | 
			
		||||
  "VERIFIED_EMAIL", // end admin panel leak aug 2022
 | 
			
		||||
  "QUARANTINED",
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  undefined,
 | 
			
		||||
  "COLLABORATOR",
 | 
			
		||||
  "RESTRICTED_COLLABORATOR",
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
function flagFromInt(int) {
 | 
			
		||||
  const bits = int.toString(2);
 | 
			
		||||
  const splitBits = bits.split("").reverse();
 | 
			
		||||
| 
						 | 
				
			
			@ -580,15 +626,6 @@ flagdump.callback = async function (msg, line, [numOrMention], {id}) {
 | 
			
		|||
};
 | 
			
		||||
hf.registerCommand(flagdump);
 | 
			
		||||
 | 
			
		||||
const emojiNames = [];
 | 
			
		||||
fetch("https://unpkg.com/emoji.json/emoji.json")
 | 
			
		||||
  .then((res) => res.json())
 | 
			
		||||
  .then((body) =>
 | 
			
		||||
    body.map(
 | 
			
		||||
      (emoji) => (emojiNames[emoji.char] = emoji.name.replace(/ /g, "_"))
 | 
			
		||||
    )
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
const jumbo = new Command("jumbo");
 | 
			
		||||
jumbo.category = CATEGORY;
 | 
			
		||||
jumbo.helpText = "Gets the raw image of an emoji.";
 | 
			
		||||
| 
						 | 
				
			
			@ -628,17 +665,15 @@ jumbo.callback = async function (msg, line) {
 | 
			
		|||
      .join(set.sep);
 | 
			
		||||
    const url = set.prefix + emoji + set.suffix;
 | 
			
		||||
 | 
			
		||||
    const name = emojiNames[line]
 | 
			
		||||
      ? `\\:${emojiNames[line]}\\:`
 | 
			
		||||
    const name = EMOJI_NAMES[line]
 | 
			
		||||
      ? `\\:${EMOJI_NAMES[line]}\\:`
 | 
			
		||||
      : await getNamesFromString(line).then((name) =>
 | 
			
		||||
          name.map((x) => x[1]).join(", ")
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
    const statusCode = await fetch(url, {method: "HEAD"}).then(
 | 
			
		||||
      (res) => res.status
 | 
			
		||||
    );
 | 
			
		||||
    const emojiFound = await fetch(url, {method: "HEAD"}).then((res) => res.ok);
 | 
			
		||||
 | 
			
		||||
    if (statusCode !== 200) {
 | 
			
		||||
    if (emojiFound) {
 | 
			
		||||
      return "Emoji not found. The emoji set chosen might not have this emote as an image.";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -705,40 +740,6 @@ charinfo.callback = async function (msg, line) {
 | 
			
		|||
};
 | 
			
		||||
hf.registerCommand(charinfo);
 | 
			
		||||
 | 
			
		||||
const PRESENCE_ICONS = {
 | 
			
		||||
  desktop: {
 | 
			
		||||
    online: "<:desktop_online:1028887024670871552>",
 | 
			
		||||
    idle: "<:desktop_idle:1028887022938624033>",
 | 
			
		||||
    dnd: "<:desktop_dnd:1028887021848121364>",
 | 
			
		||||
  },
 | 
			
		||||
  mobile: {
 | 
			
		||||
    online: "<:mobile_online:1028887017637036043>",
 | 
			
		||||
    idle: "<:mobile_idle:1028887019226669116>",
 | 
			
		||||
    dnd: "<:mobile_dnd:1028887020560449637>",
 | 
			
		||||
  },
 | 
			
		||||
  web: {
 | 
			
		||||
    online: "<:web_online:1028887016353574962>",
 | 
			
		||||
    idle: "<:web_idle:1028887014579392592>",
 | 
			
		||||
    dnd: "<:web_dnd:1028887012855525486>",
 | 
			
		||||
  },
 | 
			
		||||
  embedded: {
 | 
			
		||||
    online: "<:embedded_online:1028887010636726313>",
 | 
			
		||||
    idle: "<:embedded_idle:1028887009147760681>",
 | 
			
		||||
    dnd: "<:embedded_dnd:1028887008149516299>",
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const PRESENCE_TYPES = [
 | 
			
		||||
  "Playing",
 | 
			
		||||
  "Streaming",
 | 
			
		||||
  "Listening to",
 | 
			
		||||
  "Watching",
 | 
			
		||||
  "",
 | 
			
		||||
  "Competing in",
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
const NOWPLAYING_BAR_LENGTH = 30;
 | 
			
		||||
 | 
			
		||||
const presence = new Command("presence");
 | 
			
		||||
presence.category = CATEGORY;
 | 
			
		||||
presence.helpText = "Get presences of a user.";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue