diff options
Diffstat (limited to 'code/cogs/newaccount.py')
-rw-r--r-- | code/cogs/newaccount.py | 70 |
1 files changed, 52 insertions, 18 deletions
diff --git a/code/cogs/newaccount.py b/code/cogs/newaccount.py index db5abd0..b341147 100644 --- a/code/cogs/newaccount.py +++ b/code/cogs/newaccount.py @@ -3,8 +3,12 @@ from discord import app_commands from discord.ext import commands import sqlite3 -from func.jellyfin import create_jellyfin_account -from global_variables import JELLYFIN_URL, ENABLE_JELLYFIN_TEMP_ACCOUNTS, ACCOUNT_TIME +from utils.jellyfin_create import create_jellyfin_account +from utils.config import ( + JELLYFIN_URL, + JELLYFIN_ENABLED, + ACCOUNT_TIME, +) class NewAccount(commands.Cog): @@ -12,47 +16,77 @@ class NewAccount(commands.Cog): self.bot = bot @app_commands.command() - @app_commands.check(lambda inter: ENABLE_JELLYFIN_TEMP_ACCOUNTS) - async def newaccount(self, interaction: discord.Interaction): - "Create a new temporary Jellyfin account" + @app_commands.check(lambda inter: JELLYFIN_ENABLED) + async def newaccount(self, interaction: discord.Interaction) -> None: + """Create a new temporary Jellyfin account""" # Make sure the user doesn't already have an account db = sqlite3.connect("cordarr.db") cursor = db.cursor() cursor.execute( - "SELECT * FROM jellyfin_accounts WHERE user_id = ?", (interaction.user.id,) + "SELECT * FROM jellyfin_accounts WHERE user_id = ?", + (interaction.user.id,), ) - if cursor.fetchone(): + account = cursor.fetchone() + db.close() + # Account already allocated + if account: embed = discord.Embed( title="Account Already Exists", - description="Look at your previous DMs with me to find your account information. You will be permitted to create a new account after your current one expires.", - color=0xD01B86 + description=( + "Look at your previous DMs with me to find your account" + " information. You will be permitted to create a new" + " account after your current one expires." + ), + color=0xD01B86, + ) + return await interaction.response.send_message( + embed=embed, ephemeral=True ) - return await interaction.response.send_message(embed=embed, ephemeral=True) # Create a new Jellyfin account for the user response = create_jellyfin_account(interaction.user.id) if response: embed = discord.Embed( title="Account Created", - description="Your account has been successfully created. Check your DMs for your account information.", - color=0xD01B86 + description=( + "Your account has been successfully created. Check your" + " DMs for your account information." + ), + color=0xD01B86, + ) + await interaction.response.send_message( + embed=embed, ephemeral=True ) - await interaction.response.send_message(embed=embed, ephemeral=True) # Send the user their account information embed = discord.Embed( title="Jellyfin Account Information", - description=f"Here is your temporary account information. You will need this to access the Jellyfin server.\n\n**Server URL:** `{JELLYFIN_URL}`\n**Username:** `{response[0]}`\n**Password:** `{response[1]}`\n\nYour account will be automatically deleted in {ACCOUNT_TIME} hours.", - color=0xD01B86 + description=( + # fmt: off + "Here is your temporary account information.\n\n" + f"**Server URL:** `{JELLYFIN_URL}`\n" + f"**Username:** `{response[0]}`\n" + f"**Password:** `{response[1]}`\n\n" + "Your account will be automatically deleted in" + f" {ACCOUNT_TIME} hours." + # fmt: on + ), + color=0xD01B86, ) await interaction.user.send(embed=embed) + # If account not created for some reason else: embed = discord.Embed( title="Unknown Error Occured", - description="Error creating Jellyfin account. Please try again. If the error persists, contact an administrator.", - color=0xD01B86 + description=( + "Error creating Jellyfin account. Please try again. If the" + " error persists, contact an administrator." + ), + color=0xD01B86, + ) + return await interaction.response.send_message( + embed=embed, ephemeral=True ) - return await interaction.response.send_message(embed=embed, ephemeral=True) async def setup(bot): |