bundle.discord.embeds

Reusable Discord embed builders for the Discord bot.

EmbedFactory holds the bot brand context (name + avatar) so callers don’t have to pass bot_name / bot_avatar_url on every call.

Standalone module-level functions are kept as thin convenience wrappers.

Classes

Color

Discord embed sidebar colors.

EmbedFactory

Brand-aware embed builder. Create one per bot and reuse everywhere.

Module Contents

class bundle.discord.embeds.Color

Discord embed sidebar colors.

ONLINE = 5763719
OFFLINE = 15548997
WELCOME = 5793266
INFO = 3447003
PROGRESS = 16705372
SUCCESS = 5763719
ERROR = 15548997
MUSIC = 65280
class bundle.discord.embeds.EmbedFactory(bot_name: str = 'Discord Bot', bot_avatar_url: str = '')

Brand-aware embed builder. Create one per bot and reuse everywhere.

bot_name = 'Discord Bot'
bot_avatar_url = ''
online(bot_user: discord.User, guild_count: int, latency_ms: int) discord.Embed
offline() discord.Embed
welcome(member: discord.Member) discord.Embed
progress(*, title: str, status: str, percent: int = 0, fields: dict[str, str] | None = None, thumbnail_url: str | None = None) discord.Embed
success(*, title: str, description: str, fields: dict[str, str] | None = None, thumbnail_url: str | None = None) discord.Embed
error(*, title: str, description: str) discord.Embed
info(*, title: str, description: str, fields: dict[str, str] | None = None, thumbnail_url: str | None = None) discord.Embed
now_playing(*, title: str, author: str, duration_secs: int, elapsed_secs: int = 0, status: str = 'Playing', queue_pos: str | None = None, thumbnail_url: str | None = None) discord.Embed