create animal commands and use imageproxy

This commit is contained in:
Lio Young 2021-10-22 17:29:39 +02:00
parent e134e65045
commit 4a48b3f2b0
6 changed files with 182 additions and 12 deletions

View File

@ -0,0 +1,30 @@
import { Context } from "@utils/types"
import { Command } from "@modules/eu/src/index"
import request from "@utils/animals"
import { MessageEmbed } from "discord.js"
export = class Cat extends Command {
constructor() {
super({
name: "cat",
description: "Sends a random cat image",
})
}
async run(context: Context): Promise<any> {
let { image, provider } = await request("cat")
// console.log({ image, provider })
if (context.settings.embeds) {
let Embed = new MessageEmbed()
.setImage(image[0])
.setFooter(`Thaldrin - Image provided by ${provider}`, "https://thaldrin.media/avatar.png")
.setColor("ORANGE")
context.channel.send({ embeds: [Embed] })
}
else {
context.channel.send(image[0])
}
}
}

View File

@ -0,0 +1,29 @@
import { Context } from "@utils/types"
import { Command } from "@modules/eu/src/index"
import request from "@utils/animals"
import { MessageEmbed } from "discord.js"
export = class Fox extends Command {
constructor() {
super({
name: "fox",
description: "Sends a random fox image",
})
}
async run(context: Context): Promise<any> {
let data = await request("fox")
if (context.settings.embeds) {
let Embed = new MessageEmbed()
.setImage(data.image.url)
.setFooter(`Thaldrin - Image provided by ${data.provider}`, "https://thaldrin.media/avatar.png")
.setColor("ORANGE")
context.channel.send({ embeds: [Embed] })
}
else {
context.channel.send(data.image.url)
}
}
}

View File

@ -0,0 +1,31 @@
import { Context } from "@utils/types"
import { Command } from "@modules/eu/src/index"
import request from "@utils/animals"
import { MessageEmbed } from "discord.js"
export = class Hyena extends Command {
constructor() {
super({
name: "hyena",
aliases: ["yeen"],
description: "Sends a random yeen",
})
}
async run(context: Context): Promise<any> {
let data = await request("hyena")
if (context.settings.embeds) {
let Embed = new MessageEmbed()
.setImage(data.image.url)
.setFooter(`Thaldrin - Image provided by ${data.provider}`, "https://thaldrin.media/avatar.png")
.setColor("ORANGE")
context.channel.send({ embeds: [Embed] })
}
else {
context.channel.send(data.image.url)
}
}
}

View File

@ -0,0 +1,30 @@
import { Context } from "@utils/types"
import { Command } from "@modules/eu/src/index"
import request from "@utils/animals"
import { MessageEmbed } from "discord.js"
export = class Shibe extends Command {
constructor() {
super({
name: "shibe",
description: "Sends a random shibe",
})
}
async run(context: Context): Promise<any> {
let { image, provider } = await request("shibe")
// console.log({ image, provider })
if (context.settings.embeds) {
let Embed = new MessageEmbed()
.setImage(image[0])
.setFooter(`Thaldrin - Image provided by ${provider}`, "https://thaldrin.media/avatar.png")
.setColor("ORANGE")
context.channel.send({ embeds: [Embed] })
}
else {
context.channel.send(image[0])
}
}
}

View File

@ -0,0 +1,30 @@
import { Context } from "@utils/types"
import { Command } from "@modules/eu/src/index"
import request from "@utils/animals"
import { MessageEmbed } from "discord.js"
export = class Wolf extends Command {
constructor() {
super({
name: "wolf",
description: "Sends a random Wolf image",
})
}
async run(context: Context): Promise<any> {
let data = await request("wolf")
if (context.settings.embeds) {
let Embed = new MessageEmbed()
.setImage(data.image.url)
.setFooter(`Thaldrin - Image provided by ${data.provider}`, "https://thaldrin.media/avatar.png")
.setColor("ORANGE")
context.channel.send({ embeds: [Embed] })
}
else {
context.channel.send(data.image.url)
}
}
}

View File

@ -1,20 +1,40 @@
import { ApplicationCommandPermissionTypes } from "discord.js/typings/enums";
import yiff from "./yiff";
type animal = "bird" | "cat" | "fox" | "hyena" | "shibe" | "wolf";
export default async function request(animal: animal) {
switch (animal) {
case "shibe":
return { image: await yiff.shibe("shibes", 1), provider: "shibe.online" };
case "bird":
return { image: await yiff.shibe("birds", 1), provider: "shibe.online" };
case "cat":
return { image: await yiff.shibe("cats", 1), provider: "shibe.online" };
case "fox":
return { image: await yiff.thaldrin("foxes"), provider: "thaldr.in" };
case "hyena":
return { image: await yiff.thaldrin("yeens"), provider: "thaldr.in" };
case "wolf":
return { image: await yiff.thaldrin("wolves"), provider: "thaldr.in" };
case "shibe": {
let request = await yiff.shibe("shibes", 1)
let proxied = request.map(x => ("https://proxy.thaldrin.media/" + x))
return { image: proxied, provider: "shibe.online" };
}
case "bird": {
let request = await yiff.shibe("birds", 1)
let proxied = request.map(x => ("https://proxy.thaldrin.media/" + x))
return { image: proxied, provider: "shibe.online" };
}
case "cat": {
let request = await yiff.shibe("cats", 1)
let proxied = request.map(x => ("https://proxy.thaldrin.media/" + x))
return { image: proxied, provider: "shibe.online" };
}
case "fox": {
let image = await yiff.thaldrin("foxes")
image.url = "https://proxy.thaldrin.media/" + image.url
return { image, provider: "thaldr.in" };
}
case "hyena": {
let image = await yiff.thaldrin("yeens")
image.url = "https://proxy.thaldrin.media/" + image.url
return { image, provider: "thaldr.in" };
}
case "wolf": {
let image = await yiff.thaldrin("wolves")
image.url = "https://proxy.thaldrin.media/" + image.url
return { image, provider: "thaldr.in" };
}
}
}