From 3b9dda7706126e1ed7048c2f7595dd2294beb522 Mon Sep 17 00:00:00 2001 From: nexy7574 Date: Tue, 14 May 2024 17:24:43 +0100 Subject: [PATCH 1/8] Convert JPEG to RGB, not RGBA --- src/cogs/ffmeta.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/cogs/ffmeta.py b/src/cogs/ffmeta.py index 0d4a2c3..0469a3f 100644 --- a/src/cogs/ffmeta.py +++ b/src/cogs/ffmeta.py @@ -23,6 +23,8 @@ class FFMeta(commands.Cog): def jpegify_image(self, input_file: io.BytesIO, quality: int = 50, image_format: str = "jpeg") -> io.BytesIO: quality = min(1, max(quality, 100)) img_src = PIL.Image.open(input_file) + if image_format == "jpeg": + img_src = img_src.convert("RGB") img_dst = io.BytesIO() self.log.debug("Saving input file (%r) as %r with quality %r%%", input_file, image_format, quality) img_src.save(img_dst, format=image_format, quality=quality) From 421fece6bec4c0a51c1941d91eca4790cea6ff01 Mon Sep 17 00:00:00 2001 From: nexy7574 Date: Tue, 14 May 2024 17:48:08 +0100 Subject: [PATCH 2/8] Add the gay meter --- src/cogs/gay_meter.py | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/cogs/gay_meter.py diff --git a/src/cogs/gay_meter.py b/src/cogs/gay_meter.py new file mode 100644 index 0000000..5ed7a59 --- /dev/null +++ b/src/cogs/gay_meter.py @@ -0,0 +1,44 @@ +import asyncio +import random +import logging + +import discord +from discord.ext import commands + + +class MeterCog(commands.Cog): + def __init__(self, bot: commands.Bot): + self.bot = bot + self.log = logging.getLogger("jimmy.cogs.auto_responder") + self.cache = {} + + @commands.slash_command(name="gay-meter") + async def gay_meter(self, ctx: discord.ApplicationContext, user: discord.User = None): + """Checks how gay someone is""" + user = user or ctx.user + + for i in range(0, 125, 25): + await ctx.respond("Calculating... %d%%" % i) + await asyncio.sleep(random.randint(1, 30) / 10) + + pct = user.id % 100 + await ctx.respond(f"{user.mention} is {pct}% gay.") + + @commands.slash_command(name="penis-length") + async def penis_meter(self, ctx: discord.ApplicationContext, user: discord.User = None): + """Checks the length of someone's penis.""" + user = user or ctx.user + n = random.randint(0, 100) + chunks = ["8"] + chunks += ["="] * n + chunks.append("B") + return await ctx.respond( + embed=discord.Embed( + title=f"{user.mention}'s penis length:", + description="%d cm\n%s" % (n, "".join(chunks)) + ) + ) + + +def setup(bot): + bot.add_cog(MeterCog(bot)) From e8a03c005975f10fb329bfce96c04ca9af726d69 Mon Sep 17 00:00:00 2001 From: nexy7574 Date: Tue, 14 May 2024 17:49:35 +0100 Subject: [PATCH 3/8] fix gay spam --- src/cogs/gay_meter.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/cogs/gay_meter.py b/src/cogs/gay_meter.py index 5ed7a59..608f6c5 100644 --- a/src/cogs/gay_meter.py +++ b/src/cogs/gay_meter.py @@ -17,12 +17,13 @@ class MeterCog(commands.Cog): """Checks how gay someone is""" user = user or ctx.user + await ctx.respond("Calculating...") for i in range(0, 125, 25): - await ctx.respond("Calculating... %d%%" % i) + await ctx.edit(content="Calculating... %d%%" % i) await asyncio.sleep(random.randint(1, 30) / 10) pct = user.id % 100 - await ctx.respond(f"{user.mention} is {pct}% gay.") + await ctx.edit(content=f"{user.mention} is {pct}% gay.") @commands.slash_command(name="penis-length") async def penis_meter(self, ctx: discord.ApplicationContext, user: discord.User = None): From 7a5da08a6e8766a6682ebb6ebd3a926b47496afb Mon Sep 17 00:00:00 2001 From: nexy7574 Date: Tue, 14 May 2024 17:51:00 +0100 Subject: [PATCH 4/8] change mention to DN --- src/cogs/gay_meter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cogs/gay_meter.py b/src/cogs/gay_meter.py index 608f6c5..4fe5f0d 100644 --- a/src/cogs/gay_meter.py +++ b/src/cogs/gay_meter.py @@ -35,7 +35,7 @@ class MeterCog(commands.Cog): chunks.append("B") return await ctx.respond( embed=discord.Embed( - title=f"{user.mention}'s penis length:", + title=f"{user.display_name}'s penis length:", description="%d cm\n%s" % (n, "".join(chunks)) ) ) From 889e43398e7b9609a858abf1b35bd06ce4141c9d Mon Sep 17 00:00:00 2001 From: nexy7574 Date: Tue, 14 May 2024 17:53:25 +0100 Subject: [PATCH 5/8] Adjust gay time --- src/cogs/gay_meter.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/cogs/gay_meter.py b/src/cogs/gay_meter.py index 4fe5f0d..b6acf29 100644 --- a/src/cogs/gay_meter.py +++ b/src/cogs/gay_meter.py @@ -20,7 +20,7 @@ class MeterCog(commands.Cog): await ctx.respond("Calculating...") for i in range(0, 125, 25): await ctx.edit(content="Calculating... %d%%" % i) - await asyncio.sleep(random.randint(1, 30) / 10) + await asyncio.sleep(random.randint(1, 100) / 10) pct = user.id % 100 await ctx.edit(content=f"{user.mention} is {pct}% gay.") @@ -29,16 +29,27 @@ class MeterCog(commands.Cog): async def penis_meter(self, ctx: discord.ApplicationContext, user: discord.User = None): """Checks the length of someone's penis.""" user = user or ctx.user - n = random.randint(0, 100) + n = self.cache.get(user) or random.randint(0, 100) chunks = ["8"] chunks += ["="] * n chunks.append("B") + self.cache[user] = n return await ctx.respond( embed=discord.Embed( title=f"{user.display_name}'s penis length:", description="%d cm\n%s" % (n, "".join(chunks)) ) ) + + @commands.command() + @commands.is_owner() + async def clear_cache(self, ctx: commands.Context, user: discord.User = None): + """Clears the Meter cache""" + if not user: + self.cache = {} + else: + self.cache.pop(user, None) + return await ctx.message.add_reaction("\N{white heavy check mark}") def setup(bot): From 396effdee7133677a07e2e9050e7d83d4fd6627f Mon Sep 17 00:00:00 2001 From: nexy7574 Date: Tue, 14 May 2024 17:55:53 +0100 Subject: [PATCH 6/8] re-adjust gay time --- src/cogs/gay_meter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cogs/gay_meter.py b/src/cogs/gay_meter.py index b6acf29..96828f1 100644 --- a/src/cogs/gay_meter.py +++ b/src/cogs/gay_meter.py @@ -20,7 +20,7 @@ class MeterCog(commands.Cog): await ctx.respond("Calculating...") for i in range(0, 125, 25): await ctx.edit(content="Calculating... %d%%" % i) - await asyncio.sleep(random.randint(1, 100) / 10) + await asyncio.sleep(random.randint(1, 30) / 10) pct = user.id % 100 await ctx.edit(content=f"{user.mention} is {pct}% gay.") From 7b4214fe5afad756e8de819dcf702901550ed21c Mon Sep 17 00:00:00 2001 From: nexy7574 Date: Tue, 14 May 2024 18:01:18 +0100 Subject: [PATCH 7/8] Add about command --- src/main.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main.py b/src/main.py index 0f8b938..94946e4 100644 --- a/src/main.py +++ b/src/main.py @@ -211,6 +211,24 @@ async def delete_message(ctx: discord.ApplicationContext, message: discord.Messa await ctx.delete(delay=15) +@bot.slash_command("about") +async def about_me(self, ctx: discord.ApplicationContext): + embed = discord.Embed( + title="Jimmy v3", + description="A bot specifically for the LCC discord server(s).", + colour=discord.Colour.green() + ) + embed.add_field( + name="Source", + value="[Source code is available under AGPLv3.](https://git.i-am.nexus/nex/college-bot-v2)" + ) + user = await self.bot.fetch_user(421698654189912064) + appinfo = await self.bot.application_info() + author = appinfo.owner + embed.add_field(name="Author", value=f"{user.mention} created me. {author.mention} is running this instance.") + return await ctx.respond(embed=embed) + + @bot.check_once async def check_is_enabled(ctx: commands.Context | discord.ApplicationContext) -> bool: disabled = CONFIG["jimmy"].get("disabled_commands", []) From 2540103a870ae4e939c6979d119905683e1a90e8 Mon Sep 17 00:00:00 2001 From: nexy7574 Date: Tue, 14 May 2024 18:02:18 +0100 Subject: [PATCH 8/8] fix main.py --- src/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.py b/src/main.py index 94946e4..45b7cfe 100644 --- a/src/main.py +++ b/src/main.py @@ -211,7 +211,7 @@ async def delete_message(ctx: discord.ApplicationContext, message: discord.Messa await ctx.delete(delay=15) -@bot.slash_command("about") +@bot.slash_command(name="about") async def about_me(self, ctx: discord.ApplicationContext): embed = discord.Embed( title="Jimmy v3",