wow-gear-finder/scripts
2025-08-25 10:10:35 -07:00
..
blizzard-api.js Fetches better item data, adds spec selector 2025-08-25 10:10:35 -07:00
fetch-item-data.js Fetches better item data, adds spec selector 2025-08-25 10:10:35 -07:00
fetch-items-enhanced.js Fetches better item data, adds spec selector 2025-08-25 10:10:35 -07:00
README.md Fetches better item data, adds spec selector 2025-08-25 10:10:35 -07:00

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:

  1. Create an application at https://develop.battle.net/
  2. Get your Client ID and Client Secret
  3. 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 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

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.