Bot pro KSP Discord
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.5 KiB

10 months ago
import discord
from discord.ext import commands
from discord.utils import get
import hrochobot.utils.data as data
MAILS_JSON = "mails"
class Mail(commands.Cog):
def __init__(self, bot):
self.bot = bot
@discord.message_command()
async def mail(self, ctx: discord.Interaction, message: discord.Message):
mails_json = data.load_data(MAILS_JSON)
if str(ctx.author.id) not in mails_json:
return await ctx.respond(f"Mail not set.", ephemeral=True)
mail = mails_json[str(ctx.author.id)]
if message.author.nick:
header = f"{message.author.nick} ({message.author})"
else:
header = f"{message.author}"
time = message.created_at.strftime("%Y-%m-%d %H:%M:%S")
header += f" wrote on {time} in channel '{message.channel}' server '{message.guild}':"
# TODO: Send mail here
print(mail)
print(f"{header}\n{message.jump_url}\n\n{message.content}")
return await ctx.respond("Message sent to email.", ephemeral=True)
@discord.slash_command(description="Sets mail for sending emails.")
@discord.option("mail", str, description="Mail to set.")
async def set_mail(self, ctx: discord.Interaction, mail: str):
mails_json = data.load_data(MAILS_JSON)
mails_json[ctx.author.id] = mail
data.dump_data(MAILS_JSON, mails_json)
return await ctx.respond(f"Mail set to ``{mail}``.", ephemeral=True)
def setup(bot):
bot.add_cog(Mail(bot))