Update list.py

*Updated list.py to sort the list before saving
This commit is contained in:
izawartka 2025-07-23 03:08:12 +02:00
parent 7578202e18
commit ec29f33835

View File

@ -2,11 +2,12 @@ import os
import argparse
import json
import sys
import locale
#
# [ TD2 SCENERIES JSON LIST GENERATOR ]
# by masuo
# v1.0
# v1.1
#
def parse_args():
@ -30,51 +31,47 @@ def parse_args():
)
return parser.parse_args()
def list_lite_sc_files(directory):
locale.setlocale(locale.LC_COLLATE, '')
try:
entries = [f for f in os.listdir(directory) if f.endswith('.lite.sc')]
except OSError as e:
print(f"Error reading directory: {e}")
sys.exit(1)
return sorted(entries, key=locale.strxfrm)
def write_output(path, data):
try:
with open(path, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=4)
print(f"Successfully wrote {len(data['list'])} entries to '{path}'")
except Exception as e:
print(f"Error writing to output file: {e}")
sys.exit(1)
def main():
args = parse_args()
# Prompt for version if not provided
version = args.save_version or input("Enter version: ")
version_date = args.save_version_date or input("Enter version date (YYYY-MM-DD): ")
directory = args.directory
if not os.path.isdir(directory):
print(f"Error: '{directory}' is not a valid directory.")
sys.exit(1)
collected = []
for fname in sorted(os.listdir(directory)):
files = list_lite_sc_files(directory)
for fname in list_lite_sc_files(directory):
full_path = os.path.join(directory, fname)
if not os.path.isfile(full_path):
print(f"Warning: Skipping '{fname}' (not a file)")
continue
if not fname.endswith('.sc'):
print(f"Warning: Skipping '{fname}' (does not end with .sc)")
continue
if not fname.endswith('.lite.sc'):
print(f"Warning: '{fname}' ends with .sc but not .lite.sc, skipping")
continue
collected.append(fname)
output = {
"info": {
"version": version,
"versionDate": version_date
},
"list": collected
"list": files
}
try:
with open(args.output_file, 'w', encoding='utf-8') as f:
json.dump(output, f, ensure_ascii=False, indent=4)
print(f"Successfully wrote {len(collected)} entries to '{args.output_file}'")
except Exception as e:
print(f"Error writing to output file: {e}")
sys.exit(1)
write_output(args.output_file, output)
if __name__ == '__main__':
main()