ErrorNoCord/utils.py

52 lines
1.4 KiB
Python

import disnake
import constants
def format_duration(duration: int):
format_plural = lambda noun, count: noun if count == 1 else noun + "s"
segments = []
weeks, duration = divmod(duration, 604800)
if weeks > 0:
segments.append(f"{weeks} {format_plural('week', weeks)}")
days, duration = divmod(duration, 86400)
if days > 0:
segments.append(f"{days} {format_plural('day', days)}")
hours, duration = divmod(duration, 3600)
if hours > 0:
segments.append(f"{hours} {format_plural('hour', hours)}")
minutes, duration = divmod(duration, 60)
if minutes > 0:
segments.append(f"{minutes} {format_plural('minute', minutes)}")
if duration > 0:
segments.append(f"{duration} {format_plural('second', duration)}")
return ", ".join(segments)
async def add_check_reaction(message):
await message.add_reaction("")
async def reply(message, *args):
await message.reply(*args, allowed_mentions=disnake.AllowedMentions.none())
async def invalid_user_handler(interaction):
await interaction.response.send_message(
"You are not the intended receiver of this message!", ephemeral=True
)
def filter_secrets(text: str) -> str:
for secret_name, secret in constants.SECRETS.items():
if not secret:
continue
text = text.replace(secret, f"<{secret_name}>")
return text