diff --git a/app/cogs/canvas_tools.py b/app/cogs/canvas_tools.py index ed7e4796..102cd953 100755 --- a/app/cogs/canvas_tools.py +++ b/app/cogs/canvas_tools.py @@ -1,4 +1,5 @@ from discord.ext import commands +from discord import option import core_utils import discord import random @@ -10,69 +11,117 @@ class Canvass(commands.Cog): def __init__(self, bot): self.bot: commands.Bot = bot - @commands.command(name="simp") - async def simp(self, ctx: commands.Context, image_link=None): - if not image_link: + @commands.slash_command( + guild_ids=None, + name="simp", + description="Takes a URL and returns it embded in a simp card", + ) + @option( + "url", + description="A URL of the image you want to use", + input_type="str", + required=True, + ) + async def simp(self, ctx: commands.Context, url: str): + if not url: return await ctx.send("You must provide a link to an image") response = requests.get( - "https://some-random-api.ml/canvas/simpcard/?avatar=%s" % image_link + "https://some-random-api.ml/canvas/simpcard/?avatar=%s" % url ) with open("/app/simp.jpg", "wb") as f: f.write(response.content) - await ctx.message.delete() - await ctx.send(file=discord.File("/app/simp.jpg")) + await ctx.defer() + await ctx.send_followup(file=discord.File("/app/simp.jpg")) os.remove("/app/simp.jpg") - @commands.command(name="horny") - async def horny(self, ctx: commands.Context, image_link=None): - if not image_link: + @commands.slash_command( + guild_ids=None, + name="horny", + description="Takes a URL and returns it embded in a license to be horny", + ) + @option( + "url", + description="A URL of the image you want to use", + input_type="str", + required=True, + ) + async def horny(self, ctx: commands.Context, url: str): + if not url: return await ctx.send("You must provide a link to an image") response = requests.get( - "https://some-random-api.ml/canvas/horny/?avatar=%s" % image_link + "https://some-random-api.ml/canvas/horny/?avatar=%s" % url ) with open("/app/horny.jpg", "wb") as f: f.write(response.content) - await ctx.message.delete() - await ctx.send(file=discord.File("/app/horny.jpg")) + await ctx.defer() + await ctx.send_followup(file=discord.File("/app/horny.jpg")) os.remove("/app/horny.jpg") - @commands.command(name="wasted") - async def wasted(self, ctx: commands.Context, image_link=None): - if not image_link: + @commands.slash_command( + guild_ids=None, + name="wasted", + description="Takes a URL and returns it black and white with wasted text over it", + ) + @option( + "url", + description="A URL of the image you want to use", + input_type="str", + required=True, + ) + async def wasted(self, ctx: commands.Context, url: str): + if not url: return await ctx.send("You must provide a link to an image") response = requests.get( - "https://some-random-api.ml/canvas/wasted/?avatar=%s" % image_link + "https://some-random-api.ml/canvas/wasted/?avatar=%s" % url ) with open("/app/wasted.jpg", "wb") as f: f.write(response.content) - await ctx.message.delete() - await ctx.send(file=discord.File("/app/wasted.jpg")) + await ctx.defer() + await ctx.send_followup(file=discord.File("/app/wasted.jpg")) os.remove("/app/wasted.jpg") - @commands.command(name="pixelate") - async def pixelate(self, ctx: commands.Context, image_link=None): - if not image_link: + @commands.slash_command( + guild_ids=None, + name="pixelate", + description="Takes a URL and returns it pixelated", + ) + @option( + "url", + description="A URL of the image you want to use", + input_type="str", + required=True, + ) + async def pixelate(self, ctx: commands.Context, url: str): + if not url: return await ctx.send("You must provide a link to an image") response = requests.get( - "https://some-random-api.ml/canvas/pixelate/?avatar=%s" % image_link + "https://some-random-api.ml/canvas/pixelate/?avatar=%s" % url ) with open("/app/pixelate.jpg", "wb") as f: f.write(response.content) - await ctx.message.delete() - await ctx.send(file=discord.File("/app/pixelate.jpg")) + await ctx.defer() + await ctx.send_followup(file=discord.File("/app/pixelate.jpg")) os.remove("/app/pixelate.jpg") - @commands.command(name="blur") - async def blur(self, ctx: commands.Context, image_link=None): - if not image_link: + @commands.slash_command( + guild_ids=None, name="blur", description="Takes a URL and returns it blurry" + ) + @option( + "url", + description="A URL of the image you want to use", + input_type="str", + required=True, + ) + async def blur(self, ctx: commands.Context, url: str): + if not url: return await ctx.send("You must provide a link to an image") response = requests.get( - "https://some-random-api.ml/canvas/blur/?avatar=%s" % image_link + "https://some-random-api.ml/canvas/blur/?avatar=%s" % url ) with open("/app/blur.jpg", "wb") as f: f.write(response.content) - await ctx.message.delete() - await ctx.send(file=discord.File("/app/blur.jpg")) + await ctx.defer() + await ctx.send_followup(file=discord.File("/app/blur.jpg")) os.remove("/app/blur.jpg")