Ruby-Cogs/referrals/common/utils.py
2025-05-23 02:30:00 -04:00

62 lines
2.3 KiB
Python

from datetime import datetime
import discord
from redbot.core.i18n import Translator
_ = Translator("Referrals", __file__)
def chunk(obj_list: list, chunk_size: int):
for i in range(0, len(obj_list), chunk_size):
yield obj_list[i : i + chunk_size]
def referral_embed(
referrer: discord.Member, # The member who referred the user
referred: discord.Member, # The member who was referred
referrer_reward: int, # Reward for person who referred the user
referred_reward: int, # Reward for the person who was referred
currency: str,
channel: str,
):
referrer_name = f"{referrer.name} ({referrer.id})"
referred_name = f"{referred.name} ({referred.id})"
embed = discord.Embed(color=discord.Color.green(), timestamp=datetime.now())
embed.add_field(name=_("Referred User"), value=referred_name, inline=False)
embed.add_field(name=_("Channel"), value=channel, inline=False)
if referred_reward:
embed.add_field(
name=_("Referred Reward"),
value=f"`{referred_reward}` {currency} -> {referred_name}",
inline=False,
)
if referrer_reward:
embed.add_field(
name=_("Referrer Reward"),
value=f"`{referrer_reward}` {currency} -> {referrer_name}",
inline=False,
)
embed.set_author(name=_("Referral Claimed"), icon_url=referred.display_avatar)
embed.set_footer(text=_("Referred by {}").format(referrer_name), icon_url=referrer.display_avatar)
return embed
def referral_error(
referrer: discord.Member, # The member who referred the user
referred: discord.Member, # The member who was referred
error: str,
channel: str,
):
referrer_name = f"{referrer.name} ({referrer.id})"
referred_name = f"{referred.name} ({referred.id})"
embed = discord.Embed(color=discord.Color.red(), timestamp=datetime.now())
embed.add_field(name=_("Referred User"), value=referred_name, inline=False)
embed.add_field(name=_("Channel"), value=channel, inline=False)
embed.add_field(
name=_("Error"),
value=error,
inline=False,
)
embed.set_author(name=_("Referral Error"), icon_url=referred.display_avatar)
embed.set_footer(text=_("Referred by {}").format(referrer_name), icon_url=referrer.display_avatar)
return embed