117 lines
2.8 KiB
Markdown
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.
|