LegoScripts/README.md

117 lines
2.8 KiB
Markdown

# Lego Scripts
Collection of various Lego related scripts
## Rebrickable Color Data Processing Scripts
1. `rb_colorgrabber.py` - Downloads color data from Rebrickable API
2. `rb2bl_colors.py` - Processes downloaded color data to extract IDs
### Prerequisites
- Python 3.7+
- Required Python packages:
```
requests
```
- Rebrickable API key (get one from https://rebrickable.com/api/)
- Input file: `colors.csv` from https://rebrickable.com/downloads/
### Script Details
#### rb_colorgrabber.py
Downloads color data from Rebrickable API and saves it as individual JSON files.
##### Features:
- Fetches color data from Rebrickable API
- Caches results in JSON files
- Implements rate limiting (10-second delay between requests)
- Handles corrupted cache files
- Provides detailed logging
##### Usage:
1. Set your API key in the script
2. Ensure `colors.csv` is in the same directory
3. Run:
```bash
python rb_colorgrabber.py
```
The script will create a `colors` directory and save individual JSON files for each color ID.
#### process_colors.py
Processes the downloaded JSON files to extract BrickLink IDs and create a combined dataset.
##### Features:
- Reads color data from JSON files
- Extracts BrickLink IDs
- Creates a combined output file
- Handles missing or corrupt data
##### Usage:
1. Ensure you have run `rb_colorgrabber.py` first
2. Run:
```bash
python rb2bl_colors.py
```
The script will create `colors_combined.csv` with the processed data.
### File Structure
```
.
├── colors/ # Directory containing JSON files (created by fetch_colors.py)
│ ├── 1.json
│ ├── 2.json
│ └── ...
├── colors.csv # Input file from Rebrickable
├── fetch_colors.py # Script to fetch data from API
├── process_colors.py # Script to process JSON files
└── colors_combined.txt # Output file (created by process_colors.py)
```
### Error Handling
Both scripts include comprehensive error handling:
- API connection errors
- File read/write errors
- JSON parsing errors
- Missing data handling
### Logging
The scripts provide detailed logging information:
- API request status
- File operations
- Error messages
- Processing progress
### Best Practices
When using these scripts:
1. Don't modify the JSON files manually
2. Keep the API key secure
3. Respect Rebrickable's rate limits
4. Back up your data before processing
### Troubleshooting
Common issues and solutions:
1. API Key errors:
- Verify your API key is correct
- Check your API key permissions
2. Missing files:
- Ensure `colors.csv` is present
- Run `rb_colorgrabber.py` before `rb2bl_colors.py`
3. Rate limiting:
- The scripts include a 10-second delay between requests
- Don't modify this unless you have permission from Rebrickable
### License
These scripts are provided as-is under the MIT License.