aboutsummaryrefslogtreecommitdiffstats
path: root/bot
diff options
context:
space:
mode:
Diffstat (limited to 'bot')
-rw-r--r--bot/resources/pride/flags/agender.pngbin0 -> 2044 bytes
-rw-r--r--bot/resources/pride/flags/androgyne.pngbin0 -> 2382 bytes
-rw-r--r--bot/resources/pride/flags/aromantic.pngbin0 -> 2990 bytes
-rw-r--r--bot/resources/pride/flags/asexual.pngbin0 -> 967 bytes
-rw-r--r--bot/resources/pride/flags/bigender.pngbin0 -> 9662 bytes
-rw-r--r--bot/resources/pride/flags/bisexual.pngbin0 -> 5065 bytes
-rw-r--r--bot/resources/pride/flags/demiboy.pngbin0 -> 2430 bytes
-rw-r--r--bot/resources/pride/flags/demigirl.pngbin0 -> 985 bytes
-rw-r--r--bot/resources/pride/flags/demisexual.pngbin0 -> 4728 bytes
-rw-r--r--bot/resources/pride/flags/gay.pngbin0 -> 2721 bytes
-rw-r--r--bot/resources/pride/flags/genderfluid.pngbin0 -> 1003 bytes
-rw-r--r--bot/resources/pride/flags/genderqueer.pngbin0 -> 934 bytes
-rw-r--r--bot/resources/pride/flags/intersex.pngbin0 -> 5064 bytes
-rw-r--r--bot/resources/pride/flags/lesbian.pngbin0 -> 2129 bytes
-rw-r--r--bot/resources/pride/flags/nonbinary.pngbin0 -> 1023 bytes
-rw-r--r--bot/resources/pride/flags/omnisexual.pngbin0 -> 2353 bytes
-rw-r--r--bot/resources/pride/flags/pangender.pngbin0 -> 2424 bytes
-rw-r--r--bot/resources/pride/flags/pansexual.pngbin0 -> 2262 bytes
-rw-r--r--bot/resources/pride/flags/polyamory.pngbin0 -> 2937 bytes
-rw-r--r--bot/resources/pride/flags/polysexual.pngbin0 -> 463 bytes
-rw-r--r--bot/resources/pride/flags/transgender.pngbin0 -> 848 bytes
-rw-r--r--bot/resources/pride/flags/trigender.pngbin0 -> 2481 bytes
-rw-r--r--bot/seasons/pride/pride_avatar.py135
23 files changed, 135 insertions, 0 deletions
diff --git a/bot/resources/pride/flags/agender.png b/bot/resources/pride/flags/agender.png
new file mode 100644
index 00000000..8a09e5fa
--- /dev/null
+++ b/bot/resources/pride/flags/agender.png
Binary files differ
diff --git a/bot/resources/pride/flags/androgyne.png b/bot/resources/pride/flags/androgyne.png
new file mode 100644
index 00000000..da40ec01
--- /dev/null
+++ b/bot/resources/pride/flags/androgyne.png
Binary files differ
diff --git a/bot/resources/pride/flags/aromantic.png b/bot/resources/pride/flags/aromantic.png
new file mode 100644
index 00000000..7c42a200
--- /dev/null
+++ b/bot/resources/pride/flags/aromantic.png
Binary files differ
diff --git a/bot/resources/pride/flags/asexual.png b/bot/resources/pride/flags/asexual.png
new file mode 100644
index 00000000..c339b239
--- /dev/null
+++ b/bot/resources/pride/flags/asexual.png
Binary files differ
diff --git a/bot/resources/pride/flags/bigender.png b/bot/resources/pride/flags/bigender.png
new file mode 100644
index 00000000..9864f9bb
--- /dev/null
+++ b/bot/resources/pride/flags/bigender.png
Binary files differ
diff --git a/bot/resources/pride/flags/bisexual.png b/bot/resources/pride/flags/bisexual.png
new file mode 100644
index 00000000..2479bc8e
--- /dev/null
+++ b/bot/resources/pride/flags/bisexual.png
Binary files differ
diff --git a/bot/resources/pride/flags/demiboy.png b/bot/resources/pride/flags/demiboy.png
new file mode 100644
index 00000000..95f68717
--- /dev/null
+++ b/bot/resources/pride/flags/demiboy.png
Binary files differ
diff --git a/bot/resources/pride/flags/demigirl.png b/bot/resources/pride/flags/demigirl.png
new file mode 100644
index 00000000..6df49bce
--- /dev/null
+++ b/bot/resources/pride/flags/demigirl.png
Binary files differ
diff --git a/bot/resources/pride/flags/demisexual.png b/bot/resources/pride/flags/demisexual.png
new file mode 100644
index 00000000..5339330e
--- /dev/null
+++ b/bot/resources/pride/flags/demisexual.png
Binary files differ
diff --git a/bot/resources/pride/flags/gay.png b/bot/resources/pride/flags/gay.png
new file mode 100644
index 00000000..5a454ca3
--- /dev/null
+++ b/bot/resources/pride/flags/gay.png
Binary files differ
diff --git a/bot/resources/pride/flags/genderfluid.png b/bot/resources/pride/flags/genderfluid.png
new file mode 100644
index 00000000..ac22f093
--- /dev/null
+++ b/bot/resources/pride/flags/genderfluid.png
Binary files differ
diff --git a/bot/resources/pride/flags/genderqueer.png b/bot/resources/pride/flags/genderqueer.png
new file mode 100644
index 00000000..4652c7e6
--- /dev/null
+++ b/bot/resources/pride/flags/genderqueer.png
Binary files differ
diff --git a/bot/resources/pride/flags/intersex.png b/bot/resources/pride/flags/intersex.png
new file mode 100644
index 00000000..c58a3bfe
--- /dev/null
+++ b/bot/resources/pride/flags/intersex.png
Binary files differ
diff --git a/bot/resources/pride/flags/lesbian.png b/bot/resources/pride/flags/lesbian.png
new file mode 100644
index 00000000..824b9a89
--- /dev/null
+++ b/bot/resources/pride/flags/lesbian.png
Binary files differ
diff --git a/bot/resources/pride/flags/nonbinary.png b/bot/resources/pride/flags/nonbinary.png
new file mode 100644
index 00000000..ee3c50e2
--- /dev/null
+++ b/bot/resources/pride/flags/nonbinary.png
Binary files differ
diff --git a/bot/resources/pride/flags/omnisexual.png b/bot/resources/pride/flags/omnisexual.png
new file mode 100644
index 00000000..2527051d
--- /dev/null
+++ b/bot/resources/pride/flags/omnisexual.png
Binary files differ
diff --git a/bot/resources/pride/flags/pangender.png b/bot/resources/pride/flags/pangender.png
new file mode 100644
index 00000000..38004654
--- /dev/null
+++ b/bot/resources/pride/flags/pangender.png
Binary files differ
diff --git a/bot/resources/pride/flags/pansexual.png b/bot/resources/pride/flags/pansexual.png
new file mode 100644
index 00000000..0e56b534
--- /dev/null
+++ b/bot/resources/pride/flags/pansexual.png
Binary files differ
diff --git a/bot/resources/pride/flags/polyamory.png b/bot/resources/pride/flags/polyamory.png
new file mode 100644
index 00000000..b41f061f
--- /dev/null
+++ b/bot/resources/pride/flags/polyamory.png
Binary files differ
diff --git a/bot/resources/pride/flags/polysexual.png b/bot/resources/pride/flags/polysexual.png
new file mode 100644
index 00000000..b2aba22c
--- /dev/null
+++ b/bot/resources/pride/flags/polysexual.png
Binary files differ
diff --git a/bot/resources/pride/flags/transgender.png b/bot/resources/pride/flags/transgender.png
new file mode 100644
index 00000000..73f01043
--- /dev/null
+++ b/bot/resources/pride/flags/transgender.png
Binary files differ
diff --git a/bot/resources/pride/flags/trigender.png b/bot/resources/pride/flags/trigender.png
new file mode 100644
index 00000000..06ff0f7c
--- /dev/null
+++ b/bot/resources/pride/flags/trigender.png
Binary files differ
diff --git a/bot/seasons/pride/pride_avatar.py b/bot/seasons/pride/pride_avatar.py
new file mode 100644
index 00000000..925c0ebf
--- /dev/null
+++ b/bot/seasons/pride/pride_avatar.py
@@ -0,0 +1,135 @@
+import logging
+from io import BytesIO
+from pathlib import Path
+
+import discord
+from PIL import Image, ImageDraw
+from discord.ext import commands
+
+log = logging.getLogger(__name__)
+
+OPTIONS = {
+ "agender": "agender",
+ "androgyne": "androgyne",
+ "androgynous": "androgyne",
+ "aromantic": "aromantic",
+ "aro": "aromantic",
+ "ace": "asexual",
+ "asexual": "asexual",
+ "bigender": "bigender",
+ "bisexual": "bisexual",
+ "bi": "bisexual",
+ "demiboy": "demiboy",
+ "demigirl": "demigirl",
+ "demi": "demisexual",
+ "demisexual": "demisexual",
+ "gay": "gay",
+ "lgbt": "gay",
+ "queer": "gay",
+ "homosexual": "gay",
+ "fluid": "genderfluid",
+ "genderfluid": "genderfluid",
+ "genderqueer": "genderqueer",
+ "intersex": "intersex",
+ "lesbian": "lesbian",
+ "non-binary": "nonbinary",
+ "enby": "nonbinary",
+ "nb": "nonbinary",
+ "nonbinary": "nonbinary",
+ "omnisexual": "omnisexual",
+ "omni": "omnisexual",
+ "pansexual": "pansexual",
+ "pan": "pansexual",
+ "pangender": "pangender",
+ "poly": "polysexual",
+ "polysexual": "polysexual",
+ "polyamory": "polyamory",
+ "polyamorous": "polyamory",
+ "transgender": "transgender",
+ "trans": "transgender",
+ "trigender": "trigender"
+}
+
+
+class PrideAvatar(commands.Cog):
+ """Put an LGBT spin on your avatar!"""
+
+ def __init__(self, bot):
+ self.bot = bot
+
+ @staticmethod
+ def crop_avatar(avatar):
+ """This crops the avatar into a circle."""
+
+ mask = Image.new("L", avatar.size, 0)
+ draw = ImageDraw.Draw(mask)
+ draw.ellipse((0, 0) + avatar.size, fill=255)
+ avatar.putalpha(mask)
+ return avatar
+
+ @staticmethod
+ def crop_ring(ring, px):
+ """This crops the ring into a circle."""
+
+ mask = Image.new("L", ring.size, 0)
+ draw = ImageDraw.Draw(mask)
+ draw.ellipse((0, 0) + ring.size, fill=255)
+ draw.ellipse((px, px, 1024-px, 1024-px), fill=0)
+ ring.putalpha(mask)
+ return ring
+
+ @commands.command(aliases=["avatarpride", "pridepfp", "prideprofile"])
+ async def prideavatar(self, ctx, option="lgbt", pixels: int = 64):
+ """
+ This surrounds an avatar with a border of a specified LGBT flag.
+
+ This defaults to the LGBT rainbow flag if none is given.
+ The amount of pixels can be given which determines the thickness of the flag border.
+ This has a maximum of 512px and defaults to a 64px border.
+ The full image is 1024x1024.
+ """
+
+ pixels = 0 if pixels < 0 else 512 if pixels > 512 else pixels
+
+ option = option.lower()
+
+ if option not in OPTIONS.keys():
+ return await ctx.send("I don't have that flag!")
+
+ flag = OPTIONS[option]
+
+ async with ctx.typing():
+
+ # Get avatar bytes
+ image_bytes = ctx.author.avatar_url.read()
+ avatar = Image.open(BytesIO(image_bytes))
+ avatar = avatar.convert("RGBA").resize((1024, 1024))
+
+ print(avatar.size)
+
+ avatar = self.crop_avatar(avatar)
+
+ ring = Image.open(Path("bot", "resources", "pride", "flags", f"{flag}.png")).resize((1024, 1024))
+ ring = self.crop_ring(ring, pixels)
+ print(ring.size)
+ avatar.alpha_composite(ring, (0, 0))
+ bufferedio = BytesIO()
+ avatar.save(bufferedio, format="PNG")
+ bufferedio.seek(0)
+
+ file = discord.File(bufferedio, filename="pride_avatar.png") # Creates file to be used in embed
+ embed = discord.Embed(
+ name="Your Lovely Pride Avatar",
+ description=f"Here is your lovely avatar, surrounded by\n a beautiful {option} flag. Enjoy :D"
+ )
+ embed.set_image(url="attachment://pride_avatar.png")
+ embed.set_footer(text=f"Made by {ctx.author.display_name}", icon_url=ctx.author.avatar_url)
+
+ await ctx.send(file=file, embed=embed)
+
+
+def setup(bot):
+ """Cog load."""
+
+ bot.add_cog(PrideAvatar(bot))
+ log.info("PrideAvatar cog loaded")