move to pc
This commit is contained in:
parent
8a5dc238a1
commit
b7590e30db
103
json_creator/json_creator.py
Normal file
103
json_creator/json_creator.py
Normal file
@ -0,0 +1,103 @@
|
||||
import os
|
||||
import json
|
||||
|
||||
def generate_root_json(directory):
|
||||
data = {
|
||||
"metadata": {
|
||||
"page": "main",
|
||||
"author": "Benjamyn Love + JMH"
|
||||
},
|
||||
"roms": {},
|
||||
"utilities": []
|
||||
}
|
||||
excluded_dirs = ["emulation", "@recycle", "poobs"] # Add your excluded directory names here
|
||||
for dir_name in os.listdir(directory):
|
||||
dir_path = os.path.join(directory, dir_name)
|
||||
uri = "/" + dir_name.lower().replace(" ", "-")
|
||||
if os.path.isdir(dir_path):
|
||||
if dir_name in excluded_dirs:
|
||||
utilities_entry = {
|
||||
"name": dir_name,
|
||||
"uri": uri
|
||||
}
|
||||
data["utilities"].append(utilities_entry)
|
||||
else:
|
||||
console_name = dir_name
|
||||
subdirectories = 0
|
||||
files = 0
|
||||
for entry in os.scandir(dir_path):
|
||||
if entry.is_dir():
|
||||
subdirectories += 1
|
||||
elif entry.is_file():
|
||||
files += 1
|
||||
|
||||
uri = "/" + console_name.lower().replace(" ", "-")
|
||||
|
||||
console = {
|
||||
"name": console_name,
|
||||
"uri": uri,
|
||||
"subdirectories": subdirectories,
|
||||
"files": files
|
||||
}
|
||||
data["roms"][console_name.lower()] = console
|
||||
# Save the JSON data to a file
|
||||
with open('game_consoles2.json', 'w') as json_file:
|
||||
json.dump(data, json_file, indent=4)
|
||||
|
||||
directory = '/Users/jordanmartin/stuff/rm_site_dir_test/10.6.9.5/'
|
||||
json_data = generate_root_json(directory)
|
||||
|
||||
def generate_roms_json(directories):
|
||||
'''NEEDS WORK!'''
|
||||
data = {
|
||||
"roms": []
|
||||
}
|
||||
|
||||
for directory in directories:
|
||||
dir_name = directory["name"]
|
||||
dir_path = directory["path"]
|
||||
console_entry = {
|
||||
"name": dir_name,
|
||||
"uri": "/" + dir_name.lower().replace(" ", "-"),
|
||||
"contents": {
|
||||
"base": {},
|
||||
"updates": [],
|
||||
"dlc": []
|
||||
}
|
||||
}
|
||||
base_rom = None
|
||||
updates = []
|
||||
dlc = []
|
||||
|
||||
for entry in os.scandir(dir_path):
|
||||
if entry.is_file():
|
||||
file_name = entry.name
|
||||
file_path = entry.path
|
||||
file_size = os.path.getsize(file_path)
|
||||
|
||||
if file_name.lower().endswith(".nsp"):
|
||||
if "[v0]" in file_name:
|
||||
base_rom = {
|
||||
"name": file_name,
|
||||
"size": file_size
|
||||
}
|
||||
elif "[v" in file_name:
|
||||
updates.append({
|
||||
"name": file_name,
|
||||
"size": file_size
|
||||
})
|
||||
else:
|
||||
dlc.append({
|
||||
"name": file_name,
|
||||
"size": file_size
|
||||
})
|
||||
|
||||
console_entry["contents"]["base"] = base_rom
|
||||
console_entry["contents"]["updates"] = updates
|
||||
console_entry["contents"]["dlc"] = dlc
|
||||
|
||||
data["roms"].append(console_entry)
|
||||
|
||||
return data
|
||||
|
||||
|
||||
547
json_creator/testing.ipynb
Normal file
547
json_creator/testing.ipynb
Normal file
@ -0,0 +1,547 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"ename": "TypeError",
|
||||
"evalue": "'module' object is not callable",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
|
||||
"Cell \u001b[0;32mIn [2], line 27\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[39mreturn\u001b[39;00m data\n\u001b[1;32m 26\u001b[0m directory \u001b[39m=\u001b[39m \u001b[39m'\u001b[39m\u001b[39m/Users/jordanmartin/stuff/rm_site_dir_test/10.6.9.5/\u001b[39m\u001b[39m'\u001b[39m\n\u001b[0;32m---> 27\u001b[0m json_data \u001b[39m=\u001b[39m generate_json(directory)\n\u001b[1;32m 29\u001b[0m \u001b[39m# Save the JSON data to a file\u001b[39;00m\n\u001b[1;32m 30\u001b[0m \u001b[39mwith\u001b[39;00m \u001b[39mopen\u001b[39m(\u001b[39m'\u001b[39m\u001b[39mgame_consoles.json\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39mw\u001b[39m\u001b[39m'\u001b[39m) \u001b[39mas\u001b[39;00m json_file:\n",
|
||||
"Cell \u001b[0;32mIn [2], line 12\u001b[0m, in \u001b[0;36mgenerate_json\u001b[0;34m(directory)\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mgenerate_json\u001b[39m(directory):\n\u001b[1;32m 5\u001b[0m data \u001b[39m=\u001b[39m {\n\u001b[1;32m 6\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mmetadata\u001b[39m\u001b[39m\"\u001b[39m: {\n\u001b[1;32m 7\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mpage\u001b[39m\u001b[39m\"\u001b[39m: \u001b[39m\"\u001b[39m\u001b[39mmain\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mroms\u001b[39m\u001b[39m\"\u001b[39m: {}\n\u001b[1;32m 11\u001b[0m }\n\u001b[0;32m---> 12\u001b[0m \u001b[39mfor\u001b[39;00m root, dirs, files \u001b[39min\u001b[39;00m os\u001b[39m.\u001b[39;49mpath(directory):\n\u001b[1;32m 13\u001b[0m console_name \u001b[39m=\u001b[39m os\u001b[39m.\u001b[39mpath\u001b[39m.\u001b[39mbasename(root)\n\u001b[1;32m 14\u001b[0m rom_count \u001b[39m=\u001b[39m \u001b[39mlen\u001b[39m(files)\n",
|
||||
"\u001b[0;31mTypeError\u001b[0m: 'module' object is not callable"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import os\n",
|
||||
"import json\n",
|
||||
"\n",
|
||||
"def generate_json(directory):\n",
|
||||
" data = {\n",
|
||||
" \"metadata\": {\n",
|
||||
" \"page\": \"main\",\n",
|
||||
" \"author\": \"Benjamyn Love\"\n",
|
||||
" },\n",
|
||||
" \"roms\": {}\n",
|
||||
" }\n",
|
||||
" for root, dirs, files in os.walk(directory):\n",
|
||||
" console_name = os.path.basename(root)\n",
|
||||
" rom_count = len(files)\n",
|
||||
" uri = \"/\" + console_name.lower().replace(\" \", \"-\")\n",
|
||||
" \n",
|
||||
" console = {\n",
|
||||
" \"name\": console_name,\n",
|
||||
" \"uri\": uri,\n",
|
||||
" \"count\": rom_count\n",
|
||||
" }\n",
|
||||
" data[\"roms\"][console_name.lower()] = console\n",
|
||||
" \n",
|
||||
" return data\n",
|
||||
"\n",
|
||||
"directory = '/Users/jordanmartin/stuff/rm_site_dir_test/10.6.9.5/'\n",
|
||||
"json_data = generate_json(directory)\n",
|
||||
"\n",
|
||||
"# Save the JSON data to a file\n",
|
||||
"with open('game_consoles.json', 'w') as json_file:\n",
|
||||
" json.dump(json_data, json_file, indent=4)\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import os\n",
|
||||
"import json\n",
|
||||
"\n",
|
||||
"def generate_json(directory):\n",
|
||||
" data = {\n",
|
||||
" \"metadata\": {\n",
|
||||
" \"page\": \"main\",\n",
|
||||
" \"author\": \"Benjamyn Love\"\n",
|
||||
" },\n",
|
||||
" \"roms\": {}\n",
|
||||
" }\n",
|
||||
" for root, dirs, files in os.walk(directory):\n",
|
||||
" for dir_name in dirs:\n",
|
||||
" console_name = dir_name\n",
|
||||
" dir_path = os.path.join(root, dir_name)\n",
|
||||
" rom_count = len(os.listdir(dir_path))\n",
|
||||
" uri = \"/\" + console_name.lower().replace(\" \", \"-\")\n",
|
||||
" \n",
|
||||
" console = {\n",
|
||||
" \"name\": console_name,\n",
|
||||
" \"uri\": uri,\n",
|
||||
" \"count\": rom_count\n",
|
||||
" }\n",
|
||||
" data[\"roms\"][console_name.lower()] = console\n",
|
||||
" \n",
|
||||
" return data\n",
|
||||
"\n",
|
||||
"directory = '/Users/jordanmartin/stuff/rm_site_dir_test/10.6.9.5/'\n",
|
||||
"json_data = generate_json(directory)\n",
|
||||
"\n",
|
||||
"# Save the JSON data to a file\n",
|
||||
"with open('game_consoles.json', 'w') as json_file:\n",
|
||||
" json.dump(json_data, json_file, indent=4)\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import os\n",
|
||||
"import json\n",
|
||||
"\n",
|
||||
"def generate_json(directory):\n",
|
||||
" data = {\n",
|
||||
" \"metadata\": {\n",
|
||||
" \"page\": \"main\",\n",
|
||||
" \"author\": \"Benjamyn Love\"\n",
|
||||
" },\n",
|
||||
" \"roms\": {}\n",
|
||||
" }\n",
|
||||
" for dir_name in os.listdir(directory):\n",
|
||||
" dir_path = os.path.join(directory, dir_name)\n",
|
||||
" if os.path.isdir(dir_path):\n",
|
||||
" console_name = dir_name\n",
|
||||
" subdirectories = 0\n",
|
||||
" files = 0\n",
|
||||
" for entry in os.scandir(dir_path):\n",
|
||||
" if entry.is_dir():\n",
|
||||
" subdirectories += 1\n",
|
||||
" elif entry.is_file():\n",
|
||||
" files += 1\n",
|
||||
"\n",
|
||||
" uri = \"/\" + console_name.lower().replace(\" \", \"-\")\n",
|
||||
" \n",
|
||||
" console = {\n",
|
||||
" \"name\": console_name,\n",
|
||||
" \"uri\": uri,\n",
|
||||
" \"subdirectories\": subdirectories,\n",
|
||||
" \"files\": files\n",
|
||||
" }\n",
|
||||
" data[\"roms\"][console_name.lower()] = console\n",
|
||||
" \n",
|
||||
" return data\n",
|
||||
"\n",
|
||||
"directory = '/Users/jordanmartin/stuff/rm_site_dir_test/10.6.9.5/'\n",
|
||||
"json_data = generate_json(directory)\n",
|
||||
"\n",
|
||||
"# Save the JSON data to a file\n",
|
||||
"with open('game_consoles.json', 'w') as json_file:\n",
|
||||
" json.dump(json_data, json_file, indent=4)\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import os\n",
|
||||
"import json\n",
|
||||
"\n",
|
||||
"def generate_json(directory):\n",
|
||||
" data = {\n",
|
||||
" \"metadata\": {\n",
|
||||
" \"page\": \"main\",\n",
|
||||
" \"author\": \"Benjamyn Love\"\n",
|
||||
" },\n",
|
||||
" \"roms\": {}\n",
|
||||
" }\n",
|
||||
" excluded_dirs = [\"excluded_dir1\", \"excluded_dir2\"] # Add your excluded directory names here\n",
|
||||
" for dir_name in os.listdir(directory):\n",
|
||||
" if dir_name in excluded_dirs:\n",
|
||||
" continue\n",
|
||||
"\n",
|
||||
" dir_path = os.path.join(directory, dir_name)\n",
|
||||
" if os.path.isdir(dir_path):\n",
|
||||
" console_name = dir_name\n",
|
||||
" subdirectories = 0\n",
|
||||
" files = 0\n",
|
||||
" for entry in os.scandir(dir_path):\n",
|
||||
" if entry.is_dir():\n",
|
||||
" subdirectories += 1\n",
|
||||
" elif entry.is_file():\n",
|
||||
" files += 1\n",
|
||||
"\n",
|
||||
" uri = \"/\" + console_name.lower().replace(\" \", \"-\")\n",
|
||||
"\n",
|
||||
" console = {\n",
|
||||
" \"name\": console_name,\n",
|
||||
" \"uri\": uri,\n",
|
||||
" \"subdirectories\": subdirectories,\n",
|
||||
" \"files\": files\n",
|
||||
" }\n",
|
||||
" data[\"roms\"][console_name.lower()] = console\n",
|
||||
"\n",
|
||||
" return data\n",
|
||||
"\n",
|
||||
"directory = '/path/to/your/directory'\n",
|
||||
"json_data = generate_json(directory)\n",
|
||||
"\n",
|
||||
"# Save the JSON data to a file\n",
|
||||
"with open('game_consoles.json', 'w') as json_file:\n",
|
||||
" json.dump(json_data, json_file, indent=4)\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import os\n",
|
||||
"import json\n",
|
||||
"\n",
|
||||
"def generate_json(directory):\n",
|
||||
" data = {\n",
|
||||
" \"metadata\": {\n",
|
||||
" \"page\": \"main\",\n",
|
||||
" \"author\": \"Benjamyn Love + JMH\"\n",
|
||||
" },\n",
|
||||
" \"roms\": {},\n",
|
||||
" \"utilities\": []\n",
|
||||
" }\n",
|
||||
" excluded_dirs = [\"emulation\", \"@recycle\", \"poobs\"] # Add your excluded directory names here\n",
|
||||
" for dir_name in os.listdir(directory):\n",
|
||||
" dir_path = os.path.join(directory, dir_name)\n",
|
||||
" uri = \"/\" + dir_name.lower().replace(\" \", \"-\")\n",
|
||||
" if os.path.isdir(dir_path):\n",
|
||||
" if dir_name in excluded_dirs:\n",
|
||||
" utilities_entry = {\n",
|
||||
" \"name\": dir_name,\n",
|
||||
" \"uri\": uri\n",
|
||||
" }\n",
|
||||
" data[\"utilities\"].append(utilities_entry)\n",
|
||||
" else:\n",
|
||||
" console_name = dir_name\n",
|
||||
" subdirectories = 0\n",
|
||||
" files = 0\n",
|
||||
" for entry in os.scandir(dir_path):\n",
|
||||
" if entry.is_dir():\n",
|
||||
" subdirectories += 1\n",
|
||||
" elif entry.is_file():\n",
|
||||
" files += 1\n",
|
||||
"\n",
|
||||
" uri = \"/\" + console_name.lower().replace(\" \", \"-\")\n",
|
||||
"\n",
|
||||
" console = {\n",
|
||||
" \"name\": console_name,\n",
|
||||
" \"uri\": uri,\n",
|
||||
" \"subdirectories\": subdirectories,\n",
|
||||
" \"files\": files\n",
|
||||
" }\n",
|
||||
" data[\"roms\"][console_name.lower()] = console\n",
|
||||
"\n",
|
||||
" return data\n",
|
||||
"\n",
|
||||
"directory = '/Users/jordanmartin/stuff/rm_site_dir_test/10.6.9.5/'\n",
|
||||
"json_data = generate_json(directory)\n",
|
||||
"\n",
|
||||
"# Save the JSON data to a file\n",
|
||||
"with open('game_consoles2.json', 'w') as json_file:\n",
|
||||
" json.dump(json_data, json_file, indent=4)\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import os\n",
|
||||
"import json\n",
|
||||
"\n",
|
||||
"def generate_json(directory):\n",
|
||||
" data = {\n",
|
||||
" \"roms\": []\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" for dir_name in os.listdir(directory):\n",
|
||||
" dir_path = os.path.join(directory, dir_name)\n",
|
||||
" if os.path.isdir(dir_path):\n",
|
||||
" console_entry = {\n",
|
||||
" \"name\": dir_name,\n",
|
||||
" \"uri\": \"/\" + dir_name.lower().replace(\" \", \"-\"),\n",
|
||||
" \"contents\": {\n",
|
||||
" \"base\": {},\n",
|
||||
" \"updates\": [],\n",
|
||||
" \"dlc\": []\n",
|
||||
" }\n",
|
||||
" }\n",
|
||||
" base_rom = None\n",
|
||||
" updates = []\n",
|
||||
" dlc = []\n",
|
||||
" \n",
|
||||
" for entry in os.scandir(dir_path):\n",
|
||||
" if entry.is_file():\n",
|
||||
" file_name = entry.name\n",
|
||||
" file_path = entry.path\n",
|
||||
" file_size = os.path.getsize(file_path)\n",
|
||||
"\n",
|
||||
" if file_name.lower().endswith(\".nsp\"):\n",
|
||||
" if \"[v0]\" in file_name:\n",
|
||||
" base_rom = {\n",
|
||||
" \"name\": file_name,\n",
|
||||
" \"size\": file_size\n",
|
||||
" }\n",
|
||||
" elif \"[v\" in file_name:\n",
|
||||
" updates.append({\n",
|
||||
" \"name\": file_name,\n",
|
||||
" \"size\": file_size\n",
|
||||
" })\n",
|
||||
" else:\n",
|
||||
" dlc.append({\n",
|
||||
" \"name\": file_name,\n",
|
||||
" \"size\": file_size\n",
|
||||
" })\n",
|
||||
"\n",
|
||||
" console_entry[\"contents\"][\"base\"] = base_rom\n",
|
||||
" console_entry[\"contents\"][\"updates\"] = updates\n",
|
||||
" console_entry[\"contents\"][\"dlc\"] = dlc\n",
|
||||
"\n",
|
||||
" data[\"roms\"].append(console_entry)\n",
|
||||
"\n",
|
||||
" return data\n",
|
||||
"\n",
|
||||
"directory = '/path/to/your/directory'\n",
|
||||
"json_data = generate_json(directory)\n",
|
||||
"\n",
|
||||
"# Save the JSON data to a file\n",
|
||||
"with open('roms.json', 'w') as json_file:\n",
|
||||
" json.dump(json_data, json_file, indent=4)\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"[{'name': 'ps4', 'path': '/ps4'}, {'name': '@recycle', 'path': '/@recycle'}, {'name': 'switch', 'path': '/switch'}]\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import json\n",
|
||||
"\n",
|
||||
"def generate_directory_list(json_file):\n",
|
||||
" directories = []\n",
|
||||
"\n",
|
||||
" with open(json_file, 'r') as file:\n",
|
||||
" data = json.load(file)\n",
|
||||
"\n",
|
||||
" roms_data = data.get('roms', {})\n",
|
||||
" for console_name, console_entry in roms_data.items():\n",
|
||||
" console_path = console_entry.get('uri', '')\n",
|
||||
"\n",
|
||||
" directory = {\n",
|
||||
" 'name': console_name,\n",
|
||||
" 'path': console_path\n",
|
||||
" }\n",
|
||||
" directories.append(directory)\n",
|
||||
"\n",
|
||||
" return directories\n",
|
||||
"\n",
|
||||
"json_file = 'game_consoles2.json' # Replace with the path to your JSON file\n",
|
||||
"directory_list = generate_directory_list(json_file)\n",
|
||||
"\n",
|
||||
"print(directory_list)\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import os\n",
|
||||
"import json\n",
|
||||
"\n",
|
||||
"def generate_json(directories):\n",
|
||||
" data = {\n",
|
||||
" \"roms\": []\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" for directory in directories:\n",
|
||||
" dir_name = directory[\"name\"]\n",
|
||||
" dir_path = directory[\"path\"]\n",
|
||||
" console_entry = {\n",
|
||||
" \"name\": dir_name,\n",
|
||||
" \"uri\": \"/\" + dir_name.lower().replace(\" \", \"-\"),\n",
|
||||
" \"contents\": {\n",
|
||||
" \"base\": {},\n",
|
||||
" \"updates\": [],\n",
|
||||
" \"dlc\": []\n",
|
||||
" }\n",
|
||||
" }\n",
|
||||
" base_rom = None\n",
|
||||
" updates = []\n",
|
||||
" dlc = []\n",
|
||||
"\n",
|
||||
" for entry in os.scandir(dir_path):\n",
|
||||
" if entry.is_file():\n",
|
||||
" file_name = entry.name\n",
|
||||
" file_path = entry.path\n",
|
||||
" file_size = os.path.getsize(file_path)\n",
|
||||
"\n",
|
||||
" if file_name.lower().endswith(\".nsp\"):\n",
|
||||
" if \"[v0]\" in file_name:\n",
|
||||
" base_rom = {\n",
|
||||
" \"name\": file_name,\n",
|
||||
" \"size\": file_size\n",
|
||||
" }\n",
|
||||
" elif \"[v\" in file_name:\n",
|
||||
" updates.append({\n",
|
||||
" \"name\": file_name,\n",
|
||||
" \"size\": file_size\n",
|
||||
" })\n",
|
||||
" else:\n",
|
||||
" dlc.append({\n",
|
||||
" \"name\": file_name,\n",
|
||||
" \"size\": file_size\n",
|
||||
" })\n",
|
||||
"\n",
|
||||
" console_entry[\"contents\"][\"base\"] = base_rom\n",
|
||||
" console_entry[\"contents\"][\"updates\"] = updates\n",
|
||||
" console_entry[\"contents\"][\"dlc\"] = dlc\n",
|
||||
"\n",
|
||||
" data[\"roms\"].append(console_entry)\n",
|
||||
"\n",
|
||||
" return data\n",
|
||||
"\n",
|
||||
"# List of directories obtained from previous JSON file\n",
|
||||
"directories = [\n",
|
||||
" {\n",
|
||||
" \"name\": \"Shin Megami Tensai V\",\n",
|
||||
" \"path\": \"/path/to/Shin Megami Tensai V\"\n",
|
||||
" },\n",
|
||||
" {\n",
|
||||
" \"name\": \"Astral Chain\",\n",
|
||||
" \"path\": \"/path/to/Astral Chain\"\n",
|
||||
" },\n",
|
||||
" {\n",
|
||||
" \"name\": \"Dead Cells\",\n",
|
||||
" \"path\": \"/path/to/Dead Cells\"\n",
|
||||
" }\n",
|
||||
"]\n",
|
||||
"\n",
|
||||
"json_data = directory_list\n",
|
||||
"\n",
|
||||
"# Save the JSON data to a file\n",
|
||||
"with open('roms.json', 'w') as json_file:\n",
|
||||
" json.dump(json_data, json_file, indent=4)\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import os\n",
|
||||
"import json\n",
|
||||
"\n",
|
||||
"def generate_json(directory):\n",
|
||||
" data = {\n",
|
||||
" \"roms\": []\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" for dir_name in os.listdir(directory):\n",
|
||||
" dir_path = os.path.join(directory, dir_name)\n",
|
||||
" if os.path.isdir(dir_path):\n",
|
||||
" console_entry = {\n",
|
||||
" \"name\": dir_name,\n",
|
||||
" \"uri\": \"/\" + dir_name.lower().replace(\" \", \"-\"),\n",
|
||||
" \"contents\": {\n",
|
||||
" \"base\": {},\n",
|
||||
" \"updates\": [],\n",
|
||||
" \"dlc\": []\n",
|
||||
" }\n",
|
||||
" }\n",
|
||||
" base_rom = None\n",
|
||||
" updates = []\n",
|
||||
" dlc = []\n",
|
||||
" \n",
|
||||
" for entry in os.scandir(dir_path):\n",
|
||||
" if entry.is_file():\n",
|
||||
" file_name = entry.name\n",
|
||||
" file_path = entry.path\n",
|
||||
" file_size = os.path.getsize(file_path)\n",
|
||||
"\n",
|
||||
" if file_name.lower().endswith(\".nsp\"):\n",
|
||||
" if \"[v0]\" in file_name:\n",
|
||||
" base_rom = {\n",
|
||||
" \"name\": file_name,\n",
|
||||
" \"size\": file_size\n",
|
||||
" }\n",
|
||||
" elif \"[v\" in file_name:\n",
|
||||
" updates.append({\n",
|
||||
" \"name\": file_name,\n",
|
||||
" \"size\": file_size\n",
|
||||
" })\n",
|
||||
" else:\n",
|
||||
" dlc.append({\n",
|
||||
" \"name\": file_name,\n",
|
||||
" \"size\": file_size\n",
|
||||
" })\n",
|
||||
"\n",
|
||||
" console_entry[\"contents\"][\"base\"] = base_rom\n",
|
||||
" console_entry[\"contents\"][\"updates\"] = updates\n",
|
||||
" console_entry[\"contents\"][\"dlc\"] = dlc\n",
|
||||
"\n",
|
||||
" data[\"roms\"].append(console_entry)\n",
|
||||
"\n",
|
||||
" return data\n",
|
||||
"\n",
|
||||
"directory = '/Users/jordanmartin/stuff/rm_site_dir_test/10.6.9.5/'\n",
|
||||
"json_data = generate_json(directory)\n",
|
||||
"\n",
|
||||
"# Save the JSON data to a file\n",
|
||||
"with open('roms.json', 'w') as json_file:\n",
|
||||
" json.dump(json_data, json_file, indent=4)\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.0"
|
||||
},
|
||||
"orig_nbformat": 4,
|
||||
"vscode": {
|
||||
"interpreter": {
|
||||
"hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user