Files
TuneBot/utils/EmbedGenerator.py
T
2021-10-30 17:19:31 +02:00

49 lines
1.7 KiB
Python

from typing import Optional
import discord
from discord import Embed
from discord.ext.commands import Context
class EmbedGenerator:
@staticmethod
async def Error(ctx: Context, message: str, **kwargs):
color = ctx.bot.colors["embed"]
em = Embed(title='Error:', description=message, color=color)
return await EmbedGenerator.SendWithFooter(ctx, em, **kwargs)
@staticmethod
async def Message(ctx: Context,
title: str,
message: Optional[str] = '',
**kwargs):
color = ctx.bot.colors["embed"]
em = Embed(title=title, description=message, color=color)
return await EmbedGenerator.SendWithFooter(ctx, em, **kwargs)
@staticmethod
async def Image(ctx: Context,
title: str,
url: str,
message: Optional[str] = '',
**kwargs):
color = ctx.bot.colors["embed"]
em = Embed(title=title, description=message, url=url, color=color)
em.set_image(url=url)
return await EmbedGenerator.SendWithFooter(ctx, em, **kwargs)
@staticmethod
async def Title(ctx: Context, title: str, **kwargs):
color = ctx.bot.colors["embed"]
em = Embed(title=title, color=color)
return await EmbedGenerator.SendWithFooter(ctx, em, **kwargs)
@staticmethod
async def SendWithFooter(ctx: Context, em: Embed,
**kwargs) -> discord.Message:
avatar = ctx.author.avatar_url_as()
em.set_footer(text=f'Requested by: {ctx.author}', icon_url=avatar)
if kwargs.get('no_send', False):
return em
return await ctx.send(embed=em, **kwargs)