fix(backup): remove support for message content based json loading
Some checks failed
Actions / Lint Code (Pylint) (pull_request) Failing after 15s
Actions / Build Documentation (MkDocs) (pull_request) Successful in 11s

This commit is contained in:
Seaswimmer 2024-01-31 13:17:54 -05:00
parent c2aa674bff
commit c07c7317f4
Signed by: cswimr
GPG key ID: B8953EC01E5C4063
2 changed files with 4 additions and 11 deletions

View file

@ -22,4 +22,4 @@ Exports a JSON list of all of your added repositories, and their installed cogs.
- Usage: `[p]backup import [json]` - Usage: `[p]backup import [json]`
Imports, reinstalls, and reloads cogs from a valid export. Requires either the json export to be provided in the command's message content or to be attached to the command's message. Ignores itself and PyLav cogs. Imports, reinstalls, and reloads cogs from a valid export. Requires the JSON export to be attached to the invoking message as an attachment. Ignores itself and PyLav cogs.

View file

@ -59,12 +59,12 @@ class Backup(commands.Cog):
@backup.command(name='import') @backup.command(name='import')
@commands.is_owner() @commands.is_owner()
async def backup_import(self, ctx: commands.Context, *, export: str = None): async def backup_import(self, ctx: commands.Context):
"""Import your installed repositories and cogs from an export.""" """Import your installed repositories and cogs from an export file."""
if export is None and not len(ctx.message.attachments) == 0: if export is None and not len(ctx.message.attachments) == 0:
export = await ctx.message.attachments[0].read() export = await ctx.message.attachments[0].read()
try: try:
export = json.loads(self.extract_json_from_codeblock(export)) export = json.loads(export)
except json.JSONDecodeError: except json.JSONDecodeError:
await ctx.send(error("Please provide a valid JSON export.")) await ctx.send(error("Please provide a valid JSON export."))
return return
@ -73,10 +73,3 @@ class Backup(commands.Cog):
if downloader is None: if downloader is None:
await ctx.send(error(f"You do not have the `Downloader` cog loaded. Please run `{ctx.prefix}load downloader` and try again.")) await ctx.send(error(f"You do not have the `Downloader` cog loaded. Please run `{ctx.prefix}load downloader` and try again."))
return return
def extract_json_from_codeblock(self, text):
match = re.match(r"```(?:\w+)?\n(.*?)\n```", text, re.DOTALL)
if match:
return match.group(1).strip()
else:
return text