forked from cswimr/SeaCogs
feat(backup): changed export format
This commit is contained in:
parent
abc9927dea
commit
7fa6cd5922
1 changed files with 21 additions and 6 deletions
|
@ -10,6 +10,7 @@ import itertools
|
|||
|
||||
from redbot.core import commands
|
||||
from redbot.core.bot import Red
|
||||
from redbot.core.utils.chat_formatting import text_to_file
|
||||
|
||||
class Backup(commands.Cog):
|
||||
"""A utility to make reinstalling repositories and cogs after migrating the bot far easier."""
|
||||
|
@ -34,10 +35,24 @@ class Backup(commands.Cog):
|
|||
if downloader is None:
|
||||
await ctx.send(f"You do not have the `Downloader` cog loaded.\nPlease run `{ctx.prefix}load downloader` and try again.")
|
||||
return
|
||||
|
||||
all_repos = list(downloader._repo_manager.repos)
|
||||
repos_list = [[f"{i.name}", i.url] for i in all_repos]
|
||||
|
||||
export_data = []
|
||||
|
||||
for repo in all_repos:
|
||||
repo_dict = {
|
||||
"name": repo.name,
|
||||
"url": repo.url,
|
||||
"cogs": []
|
||||
}
|
||||
|
||||
cogs = await downloader.installed_cogs()
|
||||
for cog, r in itertools.product(cogs, repos_list):
|
||||
if cog.repo_name == list(r)[0]:
|
||||
r.append(cog.name)
|
||||
await ctx.send(json.dumps(repos_list, indent=4))
|
||||
|
||||
for cog in cogs:
|
||||
if cog.repo_name == repo.name:
|
||||
repo_dict["cogs"].append(cog.name)
|
||||
|
||||
export_data.append(repo_dict)
|
||||
|
||||
await ctx.send(file=text_to_file(json.dumps(export_data, indent=4), 'backup.json'))
|
||||
|
|
Loading…
Reference in a new issue