initial commit. Just need to implement gif resize

This commit is contained in:
roflmaoqwerty 2020-01-12 18:21:48 +11:00
parent 3e974e84b3
commit ee4bf10bd0

View file

@ -42,6 +42,7 @@ import {
successMessage, successMessage,
trimLines, trimLines,
UnknownUser, UnknownUser,
downloadFile,
} from "../utils"; } from "../utils";
import { GuildLogs } from "../data/GuildLogs"; import { GuildLogs } from "../data/GuildLogs";
import { LogType } from "../data/LogType"; import { LogType } from "../data/LogType";
@ -60,7 +61,9 @@ import { ICommandDefinition } from "knub-command-manager";
import path from "path"; import path from "path";
import escapeStringRegexp from "escape-string-regexp"; import escapeStringRegexp from "escape-string-regexp";
import safeRegex from "safe-regex"; import safeRegex from "safe-regex";
import fs from "fs";
import { Url, URL, URLSearchParams } from "url";
const ConfigSchema = t.type({ const ConfigSchema = t.type({
can_roles: t.boolean, can_roles: t.boolean,
can_level: t.boolean, can_level: t.boolean,
@ -76,6 +79,8 @@ const ConfigSchema = t.type({
can_help: t.boolean, can_help: t.boolean,
can_about: t.boolean, can_about: t.boolean,
can_context: t.boolean, can_context: t.boolean,
can_jumbo: t.boolean,
jumbo_size: t.Integer,
}); });
type TConfigSchema = t.TypeOf<typeof ConfigSchema>; type TConfigSchema = t.TypeOf<typeof ConfigSchema>;
@ -91,6 +96,7 @@ const MEMBER_REFRESH_FREQUENCY = 10 * 60 * 1000; // How often to do a full membe
const SEARCH_EXPORT_LIMIT = 1_000_000; const SEARCH_EXPORT_LIMIT = 1_000_000;
const activeReloads: Map<string, TextChannel> = new Map(); const activeReloads: Map<string, TextChannel> = new Map();
const fsp = fs.promises;
type MemberSearchParams = { type MemberSearchParams = {
query?: string; query?: string;
@ -137,6 +143,8 @@ export class UtilityPlugin extends ZeppelinPlugin<TConfigSchema> {
can_help: false, can_help: false,
can_about: false, can_about: false,
can_context: false, can_context: false,
can_jumbo: false,
jumbo_size: 128,
}, },
overrides: [ overrides: [
{ {
@ -152,6 +160,7 @@ export class UtilityPlugin extends ZeppelinPlugin<TConfigSchema> {
can_vcmove: true, can_vcmove: true,
can_help: true, can_help: true,
can_context: true, can_context: true,
can_jumbo: true,
}, },
}, },
{ {
@ -1426,4 +1435,44 @@ export class UtilityPlugin extends ZeppelinPlugin<TConfigSchema> {
msg.channel.createMessage("Reloading..."); msg.channel.createMessage("Reloading...");
this.knub.reloadGuild(this.guildId); this.knub.reloadGuild(this.guildId);
} }
@d.command("jumbo", "<emoji:string>", {
extra: {
info: <CommandInfo>{
description: "Makes an emoji jumbo",
},
},
})
@d.permission("can_jumbo")
async jumboCmd(msg: Message, args: {emoji: string}){
let config = this.getConfig();
//get emoji url
let emojiRegex = new RegExp(`(<.*:).*:(\\d+)`);
let results = emojiRegex.exec(args.emoji);
let url = "https://cdn.discordapp.com/emojis/";
let name;
switch(results[1]){
case "<:":
url += `${results[2]}.png`;
name = "emoji.png"
break;
case "<a:":
url += `${results[2]}.gif`;
name = "emoji.gif"
break;
default:
return;
}
let downloadedEmoji = await downloadFile(url);
let buf = await fsp.readFile(downloadedEmoji.path);
//resize image here
let file = {
name: name,
file: buf,
};
msg.channel.createMessage("", file);
return;
}
} }