| .. | ||
| blizzard-api.js | ||
| fetch-item-data.js | ||
| fetch-items-enhanced.js | ||
| README.md | ||
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:
# 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:
# 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:
- Create an application at https://develop.battle.net/
- Get your Client ID and Client Secret
- Set environment variables:
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 resultsfetched-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
npm run fetch-items 242494 242495 242481
Validate all existing project items
npm run fetch-items-enhanced --existing --validate
Create a new dungeon data file
npm run fetch-items-enhanced --generate "mists-of-tirna-scithe" 178692 178693 178694
Use only Wowhead (no Blizzard setup needed)
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.