Last active
March 31, 2026 14:09
-
-
Save branneman/684767197dc50b932e6f4a6ba38b3bf2 to your computer and use it in GitHub Desktop.
Blizzard WoW Classic API
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| node_modules | |
| .token.json | |
| .env |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 24.14.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import qs from 'node:querystring' | |
| const REGION = 'eu' | |
| const LOCALE = 'en_GB' // 'en_GB' only exists in region 'eu' | |
| const API_BASE_URL = `https://${REGION}.api.blizzard.com` | |
| const GAMEVERSION = 'ann' // Era: '1x', Progression: '', Anniversary: 'ann' | |
| const NAMESPACE = { | |
| STATIC: `static-classic${GAMEVERSION}-${REGION}`, | |
| DYNAMIC: `dynamic-classic${GAMEVERSION}-${REGION}`, | |
| PROFILE: `profile-classic${GAMEVERSION}-${REGION}`, | |
| } | |
| export async function _getFromAPI({ access_token, method, queryParams }) { | |
| const _queryParams = { | |
| namespace: NAMESPACE.STATIC, | |
| locale: LOCALE, | |
| ...(queryParams || {}), | |
| } | |
| const url = `${API_BASE_URL}${method}?${qs.stringify(_queryParams)}` | |
| const headers = { | |
| Authorization: `Bearer ${access_token}`, | |
| } | |
| console.log('url', url) | |
| const response = await fetch(url, { headers }) | |
| if (!response.ok || response.status !== 200) { | |
| return console.error(response) | |
| } | |
| return response.json() | |
| } | |
| export async function getItemClassesIndex({ access_token }) { | |
| // 2 = Weapon | |
| // 4 = Armor | |
| const method = `/data/wow/item-class/index` | |
| return _getFromAPI({ access_token, method }) | |
| } | |
| export async function getItemClass({ access_token, itemClassId }) { | |
| const method = `/data/wow/item-class/${itemClassId}` | |
| return _getFromAPI({ access_token, method }) | |
| } | |
| export async function getItemSubClass({ | |
| access_token, | |
| itemClassId, | |
| itemSubclassId, | |
| }) { | |
| // 0 = Miscellaneous | |
| // 1 = Cloth | |
| // 2 = Leather | |
| // 8 = Idol | |
| const method = `/data/wow/item-class/${itemClassId}/item-subclass/${itemSubclassId}` | |
| return _getFromAPI({ access_token, method }) | |
| } | |
| export async function getItem({ access_token, itemId }) { | |
| // era 19019 = Thunderfury | |
| // tbc 29183 = Bindings of the Timewalker | |
| const method = `/data/wow/item/${itemId}` | |
| return _getFromAPI({ access_token, method }) | |
| } | |
| export async function itemSearch({ access_token, name }) { | |
| const method = `/data/wow/search/item` | |
| const queryParams = { | |
| orderby: 'id', | |
| _page: 1, | |
| } | |
| if (name) queryParams[`name.en_US`] = name | |
| // First request: not sure how many results will come in | |
| const res = await _getFromAPI({ access_token, method, queryParams }) | |
| if (res.pageCount === 1) return res.results | |
| if (typeof res.pageCount !== 'number') { | |
| console.log(res) | |
| throw new Error('pageCount is not a number') | |
| } | |
| // Got multiple pages of results, requesting the rest | |
| console.log(`itemSearch returned ${res.pageCount} pages`) | |
| const results = res.results | |
| for (let page = 2; page <= res.pageCount; page++) { | |
| console.log(` requesting page ${page}`) | |
| const res = await _getFromAPI({ access_token, method, queryParams }) | |
| results.push(...res.results) | |
| } | |
| console.log(` total results: ${results.length}`) | |
| return results | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import fs from 'node:fs/promises' | |
| import 'dotenv/config' | |
| import 'temporal-polyfill/global' | |
| import { getOAuthToken } from './login.js' | |
| import * as api from './classic-game-data.js' | |
| main().catch(console.error) | |
| async function main() { | |
| const access_token = await getOAuthToken() | |
| const itemIds = [ | |
| 28348, 30377, 28647, 28582, 29087, 29183, 29090, 28398, 30543, 28752, 29169, | |
| 29291, 29376, 25634, 29175, 29274, 27886, | |
| ] | |
| const items = await getMultipleItems({ access_token, itemIds }) | |
| // await fs.writeFile('./results.json', JSON.stringify(res, null, 2)) | |
| // console.log(res) | |
| const stats = getTotalStats({ items }) | |
| } | |
| async function getMultipleItems({ access_token, itemIds }) { | |
| const results = [] | |
| for (const itemId of itemIds) { | |
| const res = await api.getItem({ | |
| access_token, | |
| itemId, | |
| }) | |
| results.push(res) | |
| } | |
| return results | |
| } | |
| async function getItemsByCharacter() {} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [ | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/28348?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 28348, | |
| "name": "Moonglade Cowl", | |
| "quality": { | |
| "type": "RARE", | |
| "name": "Rare" | |
| }, | |
| "level": 115, | |
| "required_level": 70, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/28348?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28348 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Leather", | |
| "id": 2 | |
| }, | |
| "inventory_type": { | |
| "type": "HEAD", | |
| "name": "Head" | |
| }, | |
| "purchase_price": 157911, | |
| "sell_price": 31582, | |
| "max_count": 0, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/28348?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28348 | |
| }, | |
| "quality": { | |
| "type": "RARE", | |
| "name": "Rare" | |
| }, | |
| "name": "Moonglade Cowl", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/28348?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28348 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Leather", | |
| "id": 2 | |
| }, | |
| "inventory_type": { | |
| "type": "HEAD", | |
| "name": "Head" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "armor": { | |
| "value": 237, | |
| "display": { | |
| "display_string": "237 Armor", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| "stats": [ | |
| { | |
| "type": { | |
| "type": "STRENGTH", | |
| "name": "Strength" | |
| }, | |
| "value": 24, | |
| "display": { | |
| "display_string": "+24 Strength", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "AGILITY", | |
| "name": "Agility" | |
| }, | |
| "value": 8, | |
| "display": { | |
| "display_string": "+8 Agility", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "STAMINA", | |
| "name": "Stamina" | |
| }, | |
| "value": 18, | |
| "display": { | |
| "display_string": "+18 Stamina", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "INTELLECT", | |
| "name": "Intellect" | |
| }, | |
| "value": 25, | |
| "display": { | |
| "display_string": "+25 Intellect", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "SPIRIT", | |
| "name": "Spirit" | |
| }, | |
| "value": 13, | |
| "display": { | |
| "display_string": "+13 Spirit", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| } | |
| ], | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/15696?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 53", | |
| "id": 15696 | |
| }, | |
| "description": "Equip: Increases healing done by up to 53 and damage done by up to 18 for all magical spells and effects." | |
| } | |
| ], | |
| "sell_price": { | |
| "value": 31582, | |
| "display_strings": { | |
| "header": "Sell Price:", | |
| "gold": "3", | |
| "silver": "15", | |
| "copper": "82" | |
| } | |
| }, | |
| "requirements": { | |
| "level": { | |
| "value": 70, | |
| "display_string": "Requires Level 70" | |
| } | |
| }, | |
| "set": { | |
| "item_set": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-set/637?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Moonglade Raiment", | |
| "id": 637 | |
| }, | |
| "items": [ | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/28348?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Moonglade Cowl", | |
| "id": 28348 | |
| } | |
| }, | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/27468?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Moonglade Handwraps", | |
| "id": 27468 | |
| } | |
| }, | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/27873?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Moonglade Pants", | |
| "id": 27873 | |
| } | |
| }, | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/28202?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Moonglade Robe", | |
| "id": 28202 | |
| } | |
| }, | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/27737?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Moonglade Shoulders", | |
| "id": 27737 | |
| } | |
| } | |
| ], | |
| "effects": [ | |
| { | |
| "display_string": "(2) Set: Your Rejuvenation spell now also grants 35 dodge rating.", | |
| "required_count": 2 | |
| }, | |
| { | |
| "display_string": "(4) Set: Reduces the mana cost of all shapeshifting by 25%.", | |
| "required_count": 4 | |
| } | |
| ], | |
| "display_string": "Moonglade Raiment (0/5)" | |
| }, | |
| "durability": { | |
| "value": 60, | |
| "display_string": "Durability 60 / 60" | |
| } | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/30377?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 30377, | |
| "name": "Karja's Medallion", | |
| "quality": { | |
| "type": "RARE", | |
| "name": "Rare" | |
| }, | |
| "level": 109, | |
| "required_level": 0, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/30377?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 30377 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Miscellaneous", | |
| "id": 0 | |
| }, | |
| "inventory_type": { | |
| "type": "NECK", | |
| "name": "Neck" | |
| }, | |
| "purchase_price": 28347, | |
| "sell_price": 7086, | |
| "max_count": 0, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/30377?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 30377 | |
| }, | |
| "quality": { | |
| "type": "RARE", | |
| "name": "Rare" | |
| }, | |
| "name": "Karja's Medallion", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/30377?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 30377 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Miscellaneous", | |
| "id": 0 | |
| }, | |
| "inventory_type": { | |
| "type": "NECK", | |
| "name": "Neck" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "stats": [ | |
| { | |
| "type": { | |
| "type": "INTELLECT", | |
| "name": "Intellect" | |
| }, | |
| "value": 15, | |
| "display": { | |
| "display_string": "+15 Intellect", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "SPIRIT", | |
| "name": "Spirit" | |
| }, | |
| "value": 10, | |
| "display": { | |
| "display_string": "+10 Spirit", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| } | |
| ], | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/18036?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 55", | |
| "id": 18036 | |
| }, | |
| "description": "Equip: Increases healing done by up to 55 and damage done by up to 19 for all magical spells and effects." | |
| } | |
| ], | |
| "sell_price": { | |
| "value": 7086, | |
| "display_strings": { | |
| "header": "Sell Price:", | |
| "gold": "0", | |
| "silver": "70", | |
| "copper": "86" | |
| } | |
| }, | |
| "is_subclass_hidden": true | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/28647?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 28647, | |
| "name": "Forest Wind Shoulderpads", | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "level": 115, | |
| "required_level": 70, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/28647?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28647 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Leather", | |
| "id": 2 | |
| }, | |
| "inventory_type": { | |
| "type": "SHOULDER", | |
| "name": "Shoulder" | |
| }, | |
| "purchase_price": 210614, | |
| "sell_price": 42122, | |
| "max_count": 0, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/28647?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28647 | |
| }, | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "name": "Forest Wind Shoulderpads", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/28647?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28647 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Leather", | |
| "id": 2 | |
| }, | |
| "inventory_type": { | |
| "type": "SHOULDER", | |
| "name": "Shoulder" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "armor": { | |
| "value": 273, | |
| "display": { | |
| "display_string": "273 Armor", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| "stats": [ | |
| { | |
| "type": { | |
| "type": "STAMINA", | |
| "name": "Stamina" | |
| }, | |
| "value": 22, | |
| "display": { | |
| "display_string": "+22 Stamina", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "INTELLECT", | |
| "name": "Intellect" | |
| }, | |
| "value": 28, | |
| "display": { | |
| "display_string": "+28 Intellect", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "SPIRIT", | |
| "name": "Spirit" | |
| }, | |
| "value": 24, | |
| "display": { | |
| "display_string": "+24 Spirit", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| } | |
| ], | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/18041?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 66", | |
| "id": 18041 | |
| }, | |
| "description": "Equip: Increases healing done by up to 66 and damage done by up to 22 for all magical spells and effects." | |
| } | |
| ], | |
| "sell_price": { | |
| "value": 42122, | |
| "display_strings": { | |
| "header": "Sell Price:", | |
| "gold": "4", | |
| "silver": "21", | |
| "copper": "22" | |
| } | |
| }, | |
| "requirements": { | |
| "level": { | |
| "value": 70, | |
| "display_string": "Requires Level 70" | |
| } | |
| }, | |
| "durability": { | |
| "value": 70, | |
| "display_string": "Durability 70 / 70" | |
| } | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/28582?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 28582, | |
| "name": "Red Riding Hood's Cloak", | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "level": 115, | |
| "required_level": 70, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/28582?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28582 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/1?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Cloth", | |
| "id": 1 | |
| }, | |
| "inventory_type": { | |
| "type": "CLOAK", | |
| "name": "Back" | |
| }, | |
| "purchase_price": 178274, | |
| "sell_price": 35654, | |
| "max_count": 0, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/28582?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28582 | |
| }, | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "name": "Red Riding Hood's Cloak", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/28582?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28582 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/1?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Cloth", | |
| "id": 1 | |
| }, | |
| "inventory_type": { | |
| "type": "CLOAK", | |
| "name": "Back" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "armor": { | |
| "value": 97, | |
| "display": { | |
| "display_string": "97 Armor", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| "stats": [ | |
| { | |
| "type": { | |
| "type": "STAMINA", | |
| "name": "Stamina" | |
| }, | |
| "value": 16, | |
| "display": { | |
| "display_string": "+16 Stamina", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "INTELLECT", | |
| "name": "Intellect" | |
| }, | |
| "value": 22, | |
| "display": { | |
| "display_string": "+22 Intellect", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| } | |
| ], | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/18034?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 48", | |
| "id": 18034 | |
| }, | |
| "description": "Equip: Increases healing done by up to 48 and damage done by up to 16 for all magical spells and effects." | |
| }, | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/21364?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increased Mana Regen", | |
| "id": 21364 | |
| }, | |
| "description": "Equip: Restores 7 mana per 5 sec." | |
| } | |
| ], | |
| "sell_price": { | |
| "value": 35654, | |
| "display_strings": { | |
| "header": "Sell Price:", | |
| "gold": "3", | |
| "silver": "56", | |
| "copper": "54" | |
| } | |
| }, | |
| "requirements": { | |
| "level": { | |
| "value": 70, | |
| "display_string": "Requires Level 70" | |
| } | |
| }, | |
| "is_subclass_hidden": true | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29087?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 29087, | |
| "name": "Chestguard of Malorne", | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "level": 120, | |
| "required_level": 70, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29087?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29087 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Leather", | |
| "id": 2 | |
| }, | |
| "inventory_type": { | |
| "type": "CHEST", | |
| "name": "Chest" | |
| }, | |
| "purchase_price": 0, | |
| "sell_price": 0, | |
| "max_count": 0, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29087?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29087 | |
| }, | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "name": "Chestguard of Malorne", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29087?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29087 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Leather", | |
| "id": 2 | |
| }, | |
| "inventory_type": { | |
| "type": "CHEST", | |
| "name": "Chest" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "armor": { | |
| "value": 379, | |
| "display": { | |
| "display_string": "379 Armor", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| "stats": [ | |
| { | |
| "type": { | |
| "type": "STAMINA", | |
| "name": "Stamina" | |
| }, | |
| "value": 28, | |
| "display": { | |
| "display_string": "+28 Stamina", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "INTELLECT", | |
| "name": "Intellect" | |
| }, | |
| "value": 29, | |
| "display": { | |
| "display_string": "+29 Intellect", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "SPIRIT", | |
| "name": "Spirit" | |
| }, | |
| "value": 25, | |
| "display": { | |
| "display_string": "+25 Spirit", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| } | |
| ], | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/33820?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 88", | |
| "id": 33820 | |
| }, | |
| "description": "Equip: Increases healing done by up to 88 and damage done by up to 30 for all magical spells and effects." | |
| } | |
| ], | |
| "requirements": { | |
| "level": { | |
| "value": 70, | |
| "display_string": "Requires Level 70" | |
| }, | |
| "playable_classes": { | |
| "links": [ | |
| { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/playable-class/11?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Druid", | |
| "id": 11 | |
| } | |
| ], | |
| "display_string": "Classes: Druid" | |
| } | |
| }, | |
| "set": { | |
| "item_set": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-set/638?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Malorne Raiment", | |
| "id": 638 | |
| }, | |
| "items": [ | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29087?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Chestguard of Malorne", | |
| "id": 29087 | |
| } | |
| }, | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29086?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Crown of Malorne", | |
| "id": 29086 | |
| } | |
| }, | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29090?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Handguards of Malorne", | |
| "id": 29090 | |
| } | |
| }, | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29088?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Legguards of Malorne", | |
| "id": 29088 | |
| } | |
| }, | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29089?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Shoulderguards of Malorne", | |
| "id": 29089 | |
| } | |
| } | |
| ], | |
| "effects": [ | |
| { | |
| "display_string": "(2) Set: Your helpful spells have a chance to restore up to 120 mana.", | |
| "required_count": 2 | |
| }, | |
| { | |
| "display_string": "(4) Set: Reduces the cooldown on your Nature's Swiftness ability by 24 sec.", | |
| "required_count": 4 | |
| } | |
| ], | |
| "display_string": "Malorne Raiment (0/5)" | |
| }, | |
| "durability": { | |
| "value": 120, | |
| "display_string": "Durability 120 / 120" | |
| } | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29183?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 29183, | |
| "name": "Bindings of the Timewalker", | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "level": 105, | |
| "required_level": 70, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29183?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29183 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/1?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Cloth", | |
| "id": 1 | |
| }, | |
| "inventory_type": { | |
| "type": "WRIST", | |
| "name": "Wrist" | |
| }, | |
| "purchase_price": 431396, | |
| "sell_price": 86279, | |
| "max_count": 1, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29183?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29183 | |
| }, | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "name": "Bindings of the Timewalker", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29183?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29183 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/1?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Cloth", | |
| "id": 1 | |
| }, | |
| "inventory_type": { | |
| "type": "WRIST", | |
| "name": "Wrist" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "unique_equipped": "Unique", | |
| "armor": { | |
| "value": 78, | |
| "display": { | |
| "display_string": "78 Armor", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| "stats": [ | |
| { | |
| "type": { | |
| "type": "STAMINA", | |
| "name": "Stamina" | |
| }, | |
| "value": 24, | |
| "display": { | |
| "display_string": "+24 Stamina", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "INTELLECT", | |
| "name": "Intellect" | |
| }, | |
| "value": 12, | |
| "display": { | |
| "display_string": "+12 Intellect", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| } | |
| ], | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/18040?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 64", | |
| "id": 18040 | |
| }, | |
| "description": "Equip: Increases healing done by up to 64 and damage done by up to 22 for all magical spells and effects." | |
| } | |
| ], | |
| "sell_price": { | |
| "value": 86279, | |
| "display_strings": { | |
| "header": "Sell Price:", | |
| "gold": "8", | |
| "silver": "62", | |
| "copper": "79" | |
| } | |
| }, | |
| "requirements": { | |
| "level": { | |
| "value": 70, | |
| "display_string": "Requires Level 70" | |
| }, | |
| "reputation": { | |
| "faction": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/reputation-faction/989?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Keepers of Time", | |
| "id": 989 | |
| }, | |
| "min_reputation_level": 7, | |
| "display_string": "Requires Keepers of Time - Exalted" | |
| } | |
| }, | |
| "durability": { | |
| "value": 35, | |
| "display_string": "Durability 35 / 35" | |
| } | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29090?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 29090, | |
| "name": "Handguards of Malorne", | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "level": 120, | |
| "required_level": 70, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29090?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29090 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Leather", | |
| "id": 2 | |
| }, | |
| "inventory_type": { | |
| "type": "HAND", | |
| "name": "Hands" | |
| }, | |
| "purchase_price": 0, | |
| "sell_price": 0, | |
| "max_count": 0, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29090?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29090 | |
| }, | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "name": "Handguards of Malorne", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29090?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29090 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Leather", | |
| "id": 2 | |
| }, | |
| "inventory_type": { | |
| "type": "HAND", | |
| "name": "Hands" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "armor": { | |
| "value": 237, | |
| "display": { | |
| "display_string": "237 Armor", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| "stats": [ | |
| { | |
| "type": { | |
| "type": "STAMINA", | |
| "name": "Stamina" | |
| }, | |
| "value": 22, | |
| "display": { | |
| "display_string": "+22 Stamina", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "INTELLECT", | |
| "name": "Intellect" | |
| }, | |
| "value": 25, | |
| "display": { | |
| "display_string": "+25 Intellect", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "SPIRIT", | |
| "name": "Spirit" | |
| }, | |
| "value": 24, | |
| "display": { | |
| "display_string": "+24 Spirit", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| } | |
| ], | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/18039?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 62", | |
| "id": 18039 | |
| }, | |
| "description": "Equip: Increases healing done by up to 62 and damage done by up to 21 for all magical spells and effects." | |
| }, | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/21628?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increased Mana Regen", | |
| "id": 21628 | |
| }, | |
| "description": "Equip: Restores 7 mana per 5 sec." | |
| } | |
| ], | |
| "requirements": { | |
| "level": { | |
| "value": 70, | |
| "display_string": "Requires Level 70" | |
| }, | |
| "playable_classes": { | |
| "links": [ | |
| { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/playable-class/11?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Druid", | |
| "id": 11 | |
| } | |
| ], | |
| "display_string": "Classes: Druid" | |
| } | |
| }, | |
| "set": { | |
| "item_set": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-set/638?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Malorne Raiment", | |
| "id": 638 | |
| }, | |
| "items": [ | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29087?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Chestguard of Malorne", | |
| "id": 29087 | |
| } | |
| }, | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29086?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Crown of Malorne", | |
| "id": 29086 | |
| } | |
| }, | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29090?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Handguards of Malorne", | |
| "id": 29090 | |
| } | |
| }, | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29088?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Legguards of Malorne", | |
| "id": 29088 | |
| } | |
| }, | |
| { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29089?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Shoulderguards of Malorne", | |
| "id": 29089 | |
| } | |
| } | |
| ], | |
| "effects": [ | |
| { | |
| "display_string": "(2) Set: Your helpful spells have a chance to restore up to 120 mana.", | |
| "required_count": 2 | |
| }, | |
| { | |
| "display_string": "(4) Set: Reduces the cooldown on your Nature's Swiftness ability by 24 sec.", | |
| "required_count": 4 | |
| } | |
| ], | |
| "display_string": "Malorne Raiment (0/5)" | |
| }, | |
| "durability": { | |
| "value": 40, | |
| "display_string": "Durability 40 / 40" | |
| } | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/28398?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 28398, | |
| "name": "The Sleeper's Cord", | |
| "quality": { | |
| "type": "RARE", | |
| "name": "Rare" | |
| }, | |
| "level": 115, | |
| "required_level": 70, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/28398?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28398 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Leather", | |
| "id": 2 | |
| }, | |
| "inventory_type": { | |
| "type": "WAIST", | |
| "name": "Waist" | |
| }, | |
| "purchase_price": 112202, | |
| "sell_price": 22440, | |
| "max_count": 0, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/28398?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28398 | |
| }, | |
| "quality": { | |
| "type": "RARE", | |
| "name": "Rare" | |
| }, | |
| "name": "The Sleeper's Cord", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/28398?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28398 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Leather", | |
| "id": 2 | |
| }, | |
| "inventory_type": { | |
| "type": "WAIST", | |
| "name": "Waist" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "armor": { | |
| "value": 164, | |
| "display": { | |
| "display_string": "164 Armor", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| "stats": [ | |
| { | |
| "type": { | |
| "type": "STAMINA", | |
| "name": "Stamina" | |
| }, | |
| "value": 18, | |
| "display": { | |
| "display_string": "+18 Stamina", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "INTELLECT", | |
| "name": "Intellect" | |
| }, | |
| "value": 24, | |
| "display": { | |
| "display_string": "+24 Intellect", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "SPIRIT", | |
| "name": "Spirit" | |
| }, | |
| "value": 21, | |
| "display": { | |
| "display_string": "+21 Spirit", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| } | |
| ], | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/15696?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 53", | |
| "id": 15696 | |
| }, | |
| "description": "Equip: Increases healing done by up to 53 and damage done by up to 18 for all magical spells and effects." | |
| } | |
| ], | |
| "sell_price": { | |
| "value": 22440, | |
| "display_strings": { | |
| "header": "Sell Price:", | |
| "gold": "2", | |
| "silver": "24", | |
| "copper": "40" | |
| } | |
| }, | |
| "requirements": { | |
| "level": { | |
| "value": 70, | |
| "display_string": "Requires Level 70" | |
| } | |
| }, | |
| "durability": { | |
| "value": 35, | |
| "display_string": "Durability 35 / 35" | |
| } | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/30543?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 30543, | |
| "name": "Pontifex Kilt", | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "level": 110, | |
| "required_level": 70, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/30543?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 30543 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/1?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Cloth", | |
| "id": 1 | |
| }, | |
| "inventory_type": { | |
| "type": "LEGS", | |
| "name": "Legs" | |
| }, | |
| "purchase_price": 234234, | |
| "sell_price": 46846, | |
| "max_count": 0, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/30543?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 30543 | |
| }, | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "name": "Pontifex Kilt", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/30543?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 30543 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/1?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Cloth", | |
| "id": 1 | |
| }, | |
| "inventory_type": { | |
| "type": "LEGS", | |
| "name": "Legs" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "armor": { | |
| "value": 163, | |
| "display": { | |
| "display_string": "163 Armor", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| "stats": [ | |
| { | |
| "type": { | |
| "type": "STAMINA", | |
| "name": "Stamina" | |
| }, | |
| "value": 25, | |
| "display": { | |
| "display_string": "+25 Stamina", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "INTELLECT", | |
| "name": "Intellect" | |
| }, | |
| "value": 29, | |
| "display": { | |
| "display_string": "+29 Intellect", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "SPIRIT", | |
| "name": "Spirit" | |
| }, | |
| "value": 27, | |
| "display": { | |
| "display_string": "+27 Spirit", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| } | |
| ], | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/18041?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 66", | |
| "id": 18041 | |
| }, | |
| "description": "Equip: Increases healing done by up to 66 and damage done by up to 22 for all magical spells and effects." | |
| } | |
| ], | |
| "sell_price": { | |
| "value": 46846, | |
| "display_strings": { | |
| "header": "Sell Price:", | |
| "gold": "4", | |
| "silver": "68", | |
| "copper": "46" | |
| } | |
| }, | |
| "requirements": { | |
| "level": { | |
| "value": 70, | |
| "display_string": "Requires Level 70" | |
| } | |
| }, | |
| "durability": { | |
| "value": 75, | |
| "display_string": "Durability 75 / 75" | |
| } | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/28752?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 28752, | |
| "name": "Forestlord Striders", | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "level": 115, | |
| "required_level": 70, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/28752?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28752 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Leather", | |
| "id": 2 | |
| }, | |
| "inventory_type": { | |
| "type": "FEET", | |
| "name": "Feet" | |
| }, | |
| "purchase_price": 220336, | |
| "sell_price": 44067, | |
| "max_count": 0, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/28752?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28752 | |
| }, | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "name": "Forestlord Striders", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/28752?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 28752 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/2?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Leather", | |
| "id": 2 | |
| }, | |
| "inventory_type": { | |
| "type": "FEET", | |
| "name": "Feet" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "armor": { | |
| "value": 250, | |
| "display": { | |
| "display_string": "250 Armor", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| "stats": [ | |
| { | |
| "type": { | |
| "type": "STAMINA", | |
| "name": "Stamina" | |
| }, | |
| "value": 24, | |
| "display": { | |
| "display_string": "+24 Stamina", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "INTELLECT", | |
| "name": "Intellect" | |
| }, | |
| "value": 27, | |
| "display": { | |
| "display_string": "+27 Intellect", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "SPIRIT", | |
| "name": "Spirit" | |
| }, | |
| "value": 16, | |
| "display": { | |
| "display_string": "+16 Spirit", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| } | |
| ], | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/18036?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 55", | |
| "id": 18036 | |
| }, | |
| "description": "Equip: Increases healing done by up to 55 and damage done by up to 19 for all magical spells and effects." | |
| } | |
| ], | |
| "sell_price": { | |
| "value": 44067, | |
| "display_strings": { | |
| "header": "Sell Price:", | |
| "gold": "4", | |
| "silver": "40", | |
| "copper": "67" | |
| } | |
| }, | |
| "requirements": { | |
| "level": { | |
| "value": 70, | |
| "display_string": "Requires Level 70" | |
| } | |
| }, | |
| "durability": { | |
| "value": 60, | |
| "display_string": "Durability 60 / 60" | |
| } | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29169?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 29169, | |
| "name": "Ring of Convalescence", | |
| "quality": { | |
| "type": "RARE", | |
| "name": "Rare" | |
| }, | |
| "level": 115, | |
| "required_level": 70, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29169?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29169 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Miscellaneous", | |
| "id": 0 | |
| }, | |
| "inventory_type": { | |
| "type": "FINGER", | |
| "name": "Finger" | |
| }, | |
| "purchase_price": 175952, | |
| "sell_price": 43988, | |
| "max_count": 1, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29169?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29169 | |
| }, | |
| "quality": { | |
| "type": "RARE", | |
| "name": "Rare" | |
| }, | |
| "name": "Ring of Convalescence", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29169?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29169 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Miscellaneous", | |
| "id": 0 | |
| }, | |
| "inventory_type": { | |
| "type": "FINGER", | |
| "name": "Finger" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "unique_equipped": "Unique", | |
| "stats": [ | |
| { | |
| "type": { | |
| "type": "INTELLECT", | |
| "name": "Intellect" | |
| }, | |
| "value": 15, | |
| "display": { | |
| "display_string": "+15 Intellect", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| } | |
| ], | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/18037?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 57", | |
| "id": 18037 | |
| }, | |
| "description": "Equip: Increases healing done by up to 57 and damage done by up to 19 for all magical spells and effects." | |
| }, | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/21618?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increased Mana Regen", | |
| "id": 21618 | |
| }, | |
| "description": "Equip: Restores 4 mana per 5 sec." | |
| } | |
| ], | |
| "sell_price": { | |
| "value": 43988, | |
| "display_strings": { | |
| "header": "Sell Price:", | |
| "gold": "4", | |
| "silver": "39", | |
| "copper": "88" | |
| } | |
| }, | |
| "requirements": { | |
| "level": { | |
| "value": 70, | |
| "display_string": "Requires Level 70" | |
| }, | |
| "reputation": { | |
| "faction": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/reputation-faction/946?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Honor Hold", | |
| "id": 946 | |
| }, | |
| "min_reputation_level": 6, | |
| "display_string": "Requires Honor Hold - Revered" | |
| } | |
| }, | |
| "is_subclass_hidden": true | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29291?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 29291, | |
| "name": "Violet Signet", | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "level": 120, | |
| "required_level": 0, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29291?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29291 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Miscellaneous", | |
| "id": 0 | |
| }, | |
| "inventory_type": { | |
| "type": "FINGER", | |
| "name": "Finger" | |
| }, | |
| "purchase_price": 0, | |
| "sell_price": 0, | |
| "max_count": 1, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29291?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29291 | |
| }, | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "name": "Violet Signet", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29291?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29291 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Miscellaneous", | |
| "id": 0 | |
| }, | |
| "inventory_type": { | |
| "type": "FINGER", | |
| "name": "Finger" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "unique_equipped": "Unique", | |
| "limit_category": "Unique-Equipped: Violet Signet (1)", | |
| "stats": [ | |
| { | |
| "type": { | |
| "type": "STAMINA", | |
| "name": "Stamina" | |
| }, | |
| "value": 24, | |
| "display": { | |
| "display_string": "+24 Stamina", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "INTELLECT", | |
| "name": "Intellect" | |
| }, | |
| "value": 22, | |
| "display": { | |
| "display_string": "+22 Intellect", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "SPIRIT", | |
| "name": "Spirit" | |
| }, | |
| "value": 17, | |
| "display": { | |
| "display_string": "+17 Spirit", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| } | |
| ], | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/18035?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 51", | |
| "id": 18035 | |
| }, | |
| "description": "Equip: Increases healing done by up to 51 and damage done by up to 17 for all magical spells and effects." | |
| } | |
| ], | |
| "is_subclass_hidden": true | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29376?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 29376, | |
| "name": "Essence of the Martyr", | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "level": 110, | |
| "required_level": 70, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29376?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29376 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Miscellaneous", | |
| "id": 0 | |
| }, | |
| "inventory_type": { | |
| "type": "TRINKET", | |
| "name": "Trinket" | |
| }, | |
| "purchase_price": 0, | |
| "sell_price": 0, | |
| "max_count": 1, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29376?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29376 | |
| }, | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "name": "Essence of the Martyr", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29376?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29376 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Miscellaneous", | |
| "id": 0 | |
| }, | |
| "inventory_type": { | |
| "type": "TRINKET", | |
| "name": "Trinket" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "unique_equipped": "Unique", | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/17320?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 84", | |
| "id": 17320 | |
| }, | |
| "description": "Equip: Increases healing done by up to 84 and damage done by up to 28 for all magical spells and effects." | |
| }, | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/35165?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Essence of the Martyr", | |
| "id": 35165 | |
| }, | |
| "description": "Use: Increases healing done by spells by up to 297 and damage done by spells by up to 99 for 20 sec. (2 Mins Cooldown)" | |
| } | |
| ], | |
| "requirements": { | |
| "level": { | |
| "value": 70, | |
| "display_string": "Requires Level 70" | |
| } | |
| }, | |
| "is_subclass_hidden": true | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/25634?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 25634, | |
| "name": "Oshu'gun Relic", | |
| "quality": { | |
| "type": "UNCOMMON", | |
| "name": "Uncommon" | |
| }, | |
| "level": 105, | |
| "required_level": 0, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/25634?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 25634 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Miscellaneous", | |
| "id": 0 | |
| }, | |
| "inventory_type": { | |
| "type": "TRINKET", | |
| "name": "Trinket" | |
| }, | |
| "purchase_price": 28000, | |
| "sell_price": 7000, | |
| "max_count": 0, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/25634?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 25634 | |
| }, | |
| "quality": { | |
| "type": "UNCOMMON", | |
| "name": "Uncommon" | |
| }, | |
| "name": "Oshu'gun Relic", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/25634?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 25634 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Miscellaneous", | |
| "id": 0 | |
| }, | |
| "inventory_type": { | |
| "type": "TRINKET", | |
| "name": "Trinket" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/15696?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 53", | |
| "id": 15696 | |
| }, | |
| "description": "Equip: Increases healing done by up to 53 and damage done by up to 18 for all magical spells and effects." | |
| }, | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/32367?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Power of Prayer", | |
| "id": 32367 | |
| }, | |
| "description": "Use: Increases healing done by spells and effects by up to 213 and damage done by spells by up to 71 for 20 sec. (2 Mins Cooldown)" | |
| } | |
| ], | |
| "sell_price": { | |
| "value": 7000, | |
| "display_strings": { | |
| "header": "Sell Price:", | |
| "gold": "0", | |
| "silver": "70", | |
| "copper": "0" | |
| } | |
| }, | |
| "is_subclass_hidden": true | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29175?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 29175, | |
| "name": "Gavel of Pure Light", | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "level": 100, | |
| "required_level": 70, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29175?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29175 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/2?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Weapon", | |
| "id": 2 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/2/item-subclass/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Mace", | |
| "id": 4 | |
| }, | |
| "inventory_type": { | |
| "type": "WEAPONMAINHAND", | |
| "name": "Main Hand" | |
| }, | |
| "purchase_price": 2003650, | |
| "sell_price": 400730, | |
| "max_count": 1, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29175?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29175 | |
| }, | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "name": "Gavel of Pure Light", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29175?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29175 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/2?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Weapon", | |
| "id": 2 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/2/item-subclass/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Mace", | |
| "id": 4 | |
| }, | |
| "inventory_type": { | |
| "type": "WEAPONMAINHAND", | |
| "name": "Main Hand" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "unique_equipped": "Unique", | |
| "weapon": { | |
| "damage": { | |
| "min_value": 108, | |
| "max_value": 201, | |
| "display_string": "108 - 201 Damage", | |
| "damage_class": { | |
| "type": "PHYSICAL", | |
| "name": "Physical" | |
| } | |
| }, | |
| "attack_speed": { | |
| "value": 1900, | |
| "display_string": "Speed 1.90" | |
| }, | |
| "dps": { | |
| "value": 81.31579, | |
| "display_string": "(81.3 damage per second)" | |
| } | |
| }, | |
| "stats": [ | |
| { | |
| "type": { | |
| "type": "STAMINA", | |
| "name": "Stamina" | |
| }, | |
| "value": 12, | |
| "display": { | |
| "display_string": "+12 Stamina", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| }, | |
| { | |
| "type": { | |
| "type": "INTELLECT", | |
| "name": "Intellect" | |
| }, | |
| "value": 12, | |
| "display": { | |
| "display_string": "+12 Intellect", | |
| "color": { | |
| "r": 255, | |
| "g": 255, | |
| "b": 255, | |
| "a": 1 | |
| } | |
| } | |
| } | |
| ], | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/34495?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 299", | |
| "id": 34495 | |
| }, | |
| "description": "Equip: Increases healing done by up to 299 and damage done by up to 100 for all magical spells and effects." | |
| }, | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/21630?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increased Mana Regen", | |
| "id": 21630 | |
| }, | |
| "description": "Equip: Restores 8 mana per 5 sec." | |
| } | |
| ], | |
| "sell_price": { | |
| "value": 400730, | |
| "display_strings": { | |
| "header": "Sell Price:", | |
| "gold": "40", | |
| "silver": "7", | |
| "copper": "30" | |
| } | |
| }, | |
| "requirements": { | |
| "level": { | |
| "value": 70, | |
| "display_string": "Requires Level 70" | |
| }, | |
| "reputation": { | |
| "faction": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/reputation-faction/935?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "The Sha'tar", | |
| "id": 935 | |
| }, | |
| "min_reputation_level": 7, | |
| "display_string": "Requires The Sha'tar - Exalted" | |
| } | |
| }, | |
| "durability": { | |
| "value": 105, | |
| "display_string": "Durability 105 / 105" | |
| } | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29274?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 29274, | |
| "name": "Tears of Heaven", | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "level": 110, | |
| "required_level": 70, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29274?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29274 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Miscellaneous", | |
| "id": 0 | |
| }, | |
| "inventory_type": { | |
| "type": "HOLDABLE", | |
| "name": "Held In Off-hand" | |
| }, | |
| "purchase_price": 0, | |
| "sell_price": 0, | |
| "max_count": 0, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/29274?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29274 | |
| }, | |
| "quality": { | |
| "type": "EPIC", | |
| "name": "Epic" | |
| }, | |
| "name": "Tears of Heaven", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/29274?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 29274 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/0?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Miscellaneous", | |
| "id": 0 | |
| }, | |
| "inventory_type": { | |
| "type": "HOLDABLE", | |
| "name": "Held In Off-hand" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/18045?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increase Healing 75", | |
| "id": 18045 | |
| }, | |
| "description": "Equip: Increases healing done by up to 75 and damage done by up to 25 for all magical spells and effects." | |
| }, | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/18379?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increased Mana Regen", | |
| "id": 18379 | |
| }, | |
| "description": "Equip: Restores 6 mana per 5 sec." | |
| } | |
| ], | |
| "requirements": { | |
| "level": { | |
| "value": 70, | |
| "display_string": "Requires Level 70" | |
| } | |
| }, | |
| "is_subclass_hidden": true | |
| }, | |
| "purchase_quantity": 1 | |
| }, | |
| { | |
| "_links": { | |
| "self": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/27886?namespace=static-2.5.5_65000-classicann-eu" | |
| } | |
| }, | |
| "id": 27886, | |
| "name": "Idol of the Emerald Queen", | |
| "quality": { | |
| "type": "RARE", | |
| "name": "Rare" | |
| }, | |
| "level": 112, | |
| "required_level": 68, | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/27886?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 27886 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/8?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Idol", | |
| "id": 8 | |
| }, | |
| "inventory_type": { | |
| "type": "RELIC", | |
| "name": "Relic" | |
| }, | |
| "purchase_price": 128088, | |
| "sell_price": 25617, | |
| "max_count": 1, | |
| "is_equippable": true, | |
| "is_stackable": false, | |
| "preview_item": { | |
| "item": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item/27886?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 27886 | |
| }, | |
| "quality": { | |
| "type": "RARE", | |
| "name": "Rare" | |
| }, | |
| "name": "Idol of the Emerald Queen", | |
| "media": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/media/item/27886?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "id": 27886 | |
| }, | |
| "item_class": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Armor", | |
| "id": 4 | |
| }, | |
| "item_subclass": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/item-class/4/item-subclass/8?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Idol", | |
| "id": 8 | |
| }, | |
| "inventory_type": { | |
| "type": "RELIC", | |
| "name": "Relic" | |
| }, | |
| "binding": { | |
| "type": "ON_ACQUIRE", | |
| "name": "Binds when picked up" | |
| }, | |
| "unique_equipped": "Unique", | |
| "spells": [ | |
| { | |
| "spell": { | |
| "key": { | |
| "href": "https://eu.api.blizzard.com/data/wow/spell/34246?namespace=static-2.5.5_65000-classicann-eu" | |
| }, | |
| "name": "Increased Lifebloom Periodic", | |
| "id": 34246 | |
| }, | |
| "description": "Equip: Increases the periodic healing of your Lifebloom by up to 88." | |
| } | |
| ], | |
| "sell_price": { | |
| "value": 25617, | |
| "display_strings": { | |
| "header": "Sell Price:", | |
| "gold": "2", | |
| "silver": "56", | |
| "copper": "17" | |
| } | |
| }, | |
| "requirements": { | |
| "level": { | |
| "value": 68, | |
| "display_string": "Requires Level 68" | |
| } | |
| } | |
| }, | |
| "purchase_quantity": 1 | |
| } | |
| ] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import fs from 'node:fs/promises' | |
| import 'dotenv/config' | |
| import 'temporal-polyfill/global' | |
| const FILENAME = './.token.json' | |
| export async function getOAuthToken() { | |
| const tokenFromDisk = await getOAuthTokenFromDisk() | |
| if (tokenFromDisk !== null) { | |
| console.log('Using cached OAuth token') | |
| return tokenFromDisk.access_token | |
| } | |
| console.log('Fetching new OAuth token') | |
| const dataFromNetwork = await getOAuthTokenFromNetwork() | |
| dataFromNetwork.generated_on = Temporal.Now.zonedDateTimeISO().toString() | |
| await fs.writeFile(FILENAME, JSON.stringify(dataFromNetwork, null, 2)) | |
| return dataFromNetwork.access_token | |
| } | |
| async function getOAuthTokenFromNetwork() { | |
| const OAUTH_TOKEN_URL = 'https://oauth.battle.net/token' | |
| const base64Credentials = Buffer.from( | |
| process.env.CLIENT_ID + ':' + process.env.CLIENT_SECRET, | |
| ).toString('base64') | |
| const headers = { | |
| Authorization: `Basic ${base64Credentials}`, | |
| 'Content-Type': 'application/x-www-form-urlencoded', | |
| } | |
| const body = 'grant_type=client_credentials' | |
| const response = await fetch(OAUTH_TOKEN_URL, { | |
| method: 'POST', | |
| headers, | |
| body, | |
| }) | |
| const data = await response.json() | |
| if (typeof data.access_token !== 'string' || data.access_token.length === 0) | |
| throw new Error("Didn't get Access Token!") | |
| return data | |
| } | |
| async function getOAuthTokenFromDisk() { | |
| const FILENAME = './.token.json' | |
| const { default: data } = await import(FILENAME, { with: { type: 'json' } }) | |
| const now = Temporal.Now.zonedDateTimeISO() | |
| const generated_on = Temporal.ZonedDateTime.from(data.generated_on) | |
| const expires_in = Temporal.Duration.from({ seconds: data.expires_in }) | |
| const expires_on = generated_on.add(expires_in) | |
| // -1 = `expires_on` comes before `now` | |
| // 0 = `expires_on` is the same as `now` | |
| // 1 = `expires_on` comes after `now` | |
| if (Temporal.ZonedDateTime.compare(expires_on, now) !== 1) return null | |
| return data | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| main().catch(console.error) | |
| async function main() { | |
| const FILENAME = './items-dassz.json' | |
| const { default: items } = await import(FILENAME, { with: { type: 'json' } }) | |
| const stats = getTotalStats({ items }) | |
| console.log(stats) | |
| } | |
| function getTotalStats({ items }) { | |
| const stats = {} | |
| const spells = [] | |
| items.forEach((item) => { | |
| // console.log(item.preview_item.name) | |
| // Collect stats, sum on-the-go | |
| if (!item.preview_item.stats) return | |
| item.preview_item.stats.forEach((stat) => { | |
| if (!stats[stat.type.name]) { | |
| stats[stat.type.name] = 0 | |
| } | |
| stats[stat.type.name] += stat.value | |
| }) | |
| // Collect spells | |
| if (!item.preview_item.spells) return | |
| item.preview_item.spells.forEach((spell) => { | |
| spells.push(spell) | |
| }) | |
| }) | |
| // Sum spells | |
| // todo: have a db of all spells, pick the numbers from there | |
| spells.forEach((spell) => { | |
| if (/Increase Healing \d+/.test(spell.spell.name)) { | |
| if (!stats['Increase Healing']) stats['Increase Healing'] = 0 | |
| stats['Increase Healing'] += Number(spell.spell.name.match(/\d+/)[0]) | |
| } | |
| if (/Increased Mana Regen/.test(spell.spell.name)) { | |
| if (!stats['Increased Mana Regen']) stats['Increased Mana Regen'] = 0 | |
| const mp5 = Number(spell.description.match(/(\d+) mana per 5 sec/)[1]) | |
| stats['Increased Mana Regen'] += mp5 | |
| } | |
| }) | |
| return stats | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment