November 28, 2008
I’m just taking my armoury crawler out for a test-drive to see how it copes with the WotLK XML. It looks like there have been a few subtle changes to how things work. I’ll add to this post as I find things.
1. How to get enchant data on items.
When a character has an item to which an enchant has been applied (“permanent enchants” in the blizz vernacular), information about that enchant is obtained by asking the armoury for the tooltip XML, and adding to the tooltip URL details of the specific character.
So, for character “toon” on realm “realm”, who has item “666” in slot “1”, if there is no enchant on the item, we just ask for a generic item tooltip:
If the character’s item is enchanted we ask for the tooltip and provide character information:
The server will add extra information about the enchant to the XML. The WotLK change is in bold; now you have to supply the slot number of the item (“&s=“). You will not get any enchant data in the XML unless you add this slot number; you will just get the generic item tooltip.
I’m guessing this is a bug fix since it is quite possible for a character to have two of the same item (eg in the ring or trinket slots) but have different enchants on each item.
2. The armoury is filtering out stale characters.
I read somewhere (WoW Insider, from memory) that Blizz planned to remove from the armoury characters who haven’t been played since the WotLK expansion. It looks like they’ve done that – but in a slightly awkward way. A request for a one of these characters doesn’t fail but returns a fragment of XML that contains almost no data.
So if you are doing searches of the armoury based on guild rosters and other character name lists, you need to check the lastLoginDate for each character as soon as you get a piece of XML that contains that bit of information. Otherwise you can waste quite a bit of bandwidth if you go on to ask for character sheets for the toon, since XML will come back from the server but it won’t contain anything useful.
Judging from last week’s test run, there are a lot of characters that haven’t been updated post-WotLK.
From my perspective this change is a good thing. I was going to add my own filter to get rid of pre-WotLK characters from my data set since we are only really interested in the effects of the expansion now.
November 27, 2008
A quick post for any other dataminers who want to look at the new achievements/character-stats XML from the US armoury.
As an example, let’s assume a toon called “toon” on realm “realm”.
There are two new character pages which you fetch in the normal way:
When you get each page, you find that it is a sort of stub, which just gives achievement categories and not much detailed data. I can’t show the XML because wordpress doesn’t like the angle brackets, but basically you get something like this:
category id="130" name="Character"
category id="141" name="Combat"
category id="128" name="Kills"
To get the detailed data, just attach each category ID to the main URL (with a “&c=”) and ask for the page again. Do this for every category ID on the page.
The three categories above are from the stats page. The URLs to get that data look like this:
The real armoury page is doing async ajax-like calls back to the server when you expand a category tab on either page. Behind the scenes, the page is just forming up these sorts of URLs.