Script to translate rb colors to bl colors
This commit is contained in:
parent
c9a0be4a66
commit
18814e37c7
59
rb2bl_colors.py
Normal file
59
rb2bl_colors.py
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import json
|
||||||
|
from pprint import pprint
|
||||||
|
from typing import Optional, List
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
def read_color_data(color_id: str) -> Optional[str]:
|
||||||
|
"""
|
||||||
|
Read BrickLink color ID from a JSON file for a given color ID.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
color_id: The color ID to look up
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The BrickLink ID if found, None otherwise
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
with open(f"colors/{color_id}.json", 'r') as file:
|
||||||
|
data = json.load(file)
|
||||||
|
bricklink_data = data['external_ids'].get('BrickLink', {})
|
||||||
|
return bricklink_data.get('ext_ids', [None])[0] if bricklink_data else None
|
||||||
|
except (FileNotFoundError, KeyError, json.JSONDecodeError):
|
||||||
|
return None
|
||||||
|
|
||||||
|
def process_colors_file(input_file: str, output_file: str) -> None:
|
||||||
|
"""
|
||||||
|
Process the colors.csv file and create a new combined file with BrickLink IDs.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
input_file: Path to the input colors.csv file
|
||||||
|
output_file: Path to write the output file
|
||||||
|
"""
|
||||||
|
new_file: List[str] = []
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(input_file) as file:
|
||||||
|
lines = file.readlines()
|
||||||
|
|
||||||
|
# Process header
|
||||||
|
new_file.append('id,name,rgb,is_trans,BrickLink\n')
|
||||||
|
|
||||||
|
# Process data lines
|
||||||
|
for line in lines[1:]:
|
||||||
|
id, name, rgb, is_trans = line.strip().split(',')
|
||||||
|
bricklink_id = read_color_data(id)
|
||||||
|
new_file.append(f"{id},{name},{rgb},{is_trans},{bricklink_id}\n")
|
||||||
|
|
||||||
|
# Write output file
|
||||||
|
with open(output_file, "w") as f:
|
||||||
|
f.writelines(new_file)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error processing file: {e}")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
input_file = "colors.csv"
|
||||||
|
output_file = "colors_combined.csv"
|
||||||
|
process_colors_file(input_file, output_file)
|
Loading…
x
Reference in New Issue
Block a user