Files
wow-gear-finder/scripts/README.md

118 lines
3.2 KiB
Markdown

# WoW Item Data Fetching Scripts
This directory contains scripts to fetch World of Warcraft item data from various APIs.
## Scripts
### `fetch-item-data.js` - Basic Item Fetcher
A simple script that fetches item information from Wowhead API.
**Usage:**
```bash
# Fetch specific items by ID
npm run fetch-items 242494 242495 242481
# Fetch data for all existing items in drop files
npm run fetch-items --existing
```
**Features:**
- Fetches item name, slot, icon from Wowhead
- Supports both XML and JSON Wowhead APIs
- Rate limiting to avoid overwhelming servers
- Saves results to JSON file
### `fetch-items-enhanced.js` - Advanced Item Fetcher
Enhanced script with multiple API sources and additional features.
**Usage:**
```bash
# Basic usage
npm run fetch-items-enhanced 242494 242495 242481
# Fetch and validate existing items
npm run fetch-items-enhanced --existing --validate
# Generate TypeScript code for new dungeon
npm run fetch-items-enhanced --generate "new-dungeon" 123456 123457
# Use only specific API
npm run fetch-items-enhanced --wowhead-only 242494
npm run fetch-items-enhanced --blizzard-only 242494
```
**Features:**
- Multiple API sources (Wowhead + Blizzard)
- Data validation against existing project data
- TypeScript code generation
- Detailed reporting and analysis
- Fallback mechanisms
### `blizzard-api.js` - Blizzard API Client
Handles authentication and data fetching from Blizzard's official API.
**Setup for Blizzard API:**
1. Create an application at https://develop.battle.net/
2. Get your Client ID and Client Secret
3. Set environment variables:
```bash
export BLIZZARD_CLIENT_ID="your_client_id"
export BLIZZARD_CLIENT_SECRET="your_client_secret"
```
**Features:**
- OAuth2 token management
- Item data and media fetching
- Detailed item metadata
## Data Sources
### Wowhead API
- **Pros:** Reliable, no authentication required, good icon data
- **Cons:** Unofficial API, rate limiting needed
- **Best for:** Basic item info, icons, quick lookups
### Blizzard API
- **Pros:** Official API, detailed metadata, reliable
- **Cons:** Requires authentication setup, more complex
- **Best for:** Detailed item data, official information
## Output Files
- `fetched-items.json` - Basic fetch results
- `fetched-items-detailed-{timestamp}.json` - Enhanced fetch results with all API responses
- `{source-name}.ts` - Generated TypeScript code for new item sources
## Examples
### Fetch a few specific items
```bash
npm run fetch-items 242494 242495 242481
```
### Validate all existing project items
```bash
npm run fetch-items-enhanced --existing --validate
```
### Create a new dungeon data file
```bash
npm run fetch-items-enhanced --generate "mists-of-tirna-scithe" 178692 178693 178694
```
### Use only Wowhead (no Blizzard setup needed)
```bash
npm run fetch-items-enhanced --wowhead-only --existing
```
## Rate Limiting
Both scripts include rate limiting (1 second between requests) to be respectful to the APIs. For large batches of items, expect the process to take some time.
## Error Handling
The scripts will continue processing even if individual items fail to fetch. Check the console output and generated files for detailed results and any errors encountered.