mirror of https://github.com/sgoudham/Enso-Bot.git
Adding the homies command
parent
ecef131060
commit
b96a267e5a
@ -0,0 +1,81 @@
|
||||
import textwrap
|
||||
|
||||
import discord
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
from discord.ext import commands
|
||||
from discord.ext.commands import command, cooldown, BucketType
|
||||
|
||||
|
||||
def generate_meme(image_path, top_text, bottom_text='', font_path='homies/impact/impacted.ttf', font_size=9):
|
||||
get_image = Image.open(image_path)
|
||||
draw = ImageDraw.Draw(get_image)
|
||||
image_width, image_height = get_image.size
|
||||
|
||||
# Load font
|
||||
font = ImageFont.truetype(font=font_path, size=int(image_height * font_size) // 100)
|
||||
|
||||
# Convert text to uppercase
|
||||
top_text = top_text.upper()
|
||||
bottom_text = bottom_text.upper()
|
||||
|
||||
# Text wrapping
|
||||
char_width, char_height = font.getsize('A')
|
||||
chars_per_line = image_width // char_width
|
||||
top_lines = textwrap.wrap(top_text, width=chars_per_line)
|
||||
bottom_lines = textwrap.wrap(bottom_text, width=chars_per_line)
|
||||
|
||||
# Draw top lines
|
||||
y = 10
|
||||
for line in top_lines:
|
||||
line_width, line_height = font.getsize(line)
|
||||
x = (image_width - line_width) / 2
|
||||
draw.text((x, y), line, fill='white', font=font)
|
||||
y += line_height
|
||||
|
||||
# Draw bottom lines
|
||||
y = image_height - char_height * len(bottom_lines) - 15
|
||||
for line in bottom_lines:
|
||||
line_width, line_height = font.getsize(line)
|
||||
x = (image_width - line_width) / 2
|
||||
draw.text((x, y), line, fill='white', font=font)
|
||||
y += line_height
|
||||
|
||||
# Save meme
|
||||
get_image.save('meme-' + get_image.filename.split('/')[-1])
|
||||
|
||||
|
||||
# Set up the cog
|
||||
class Fun(commands.Cog):
|
||||
def __init__(self, bot):
|
||||
self.bot = bot
|
||||
|
||||
@command(name="homies", aliases=["Homies", "homie", "Homie"])
|
||||
@cooldown(1, 180, BucketType.channel)
|
||||
async def homies(self, ctx, *, user_word):
|
||||
"""Allows people to summon the homies"""
|
||||
|
||||
if len(user_word) >= 20:
|
||||
await ctx.send("Please make sure the prompt is below **20** characters!")
|
||||
return
|
||||
else:
|
||||
|
||||
top_text = f"Ayo fuck {user_word}"
|
||||
bottom_text = f"All my homies hate {user_word}"
|
||||
|
||||
generate_meme('homies/AllMyHomies.jpg', top_text=top_text, bottom_text=bottom_text)
|
||||
|
||||
await ctx.send(file=discord.File('meme-AllMyHomies.jpg'))
|
||||
|
||||
|
||||
def setup(bot):
|
||||
bot.add_cog(Fun(bot))
|
||||
|
||||
|
||||
""" # Set up the embed to display a random kissing gif
|
||||
embed = Embed(
|
||||
title=f"**The Homies**",
|
||||
colour=Colour(int(random.choice(settings.colour_list))),
|
||||
timestamp=datetime.datetime.utcnow())
|
||||
embed.set_image(url=f"{image}")
|
||||
embed.set_footer(text=f"Requested by {ctx.author}", icon_url='{}'.format(ctx.author.avatar_url))
|
||||
"""
|
Loading…
Reference in New Issue