Thursday, 18 December 2008

The return of the Realm balance reports...

My spider software is still hurtling through lists of guilds and whatnot looking specifically for level 80 characters. Currently there are 260,389 level 80 characters used to generate the reports but this is ticking up by the second. I still have 50,464 guilds in the 'pending' queue waiting to be checked. Eventually the 71-79 characters will be refreshed as I expect a large number will have levelled by the time I return to them.

In other news, I have released a lot more information on the reports page. Each realm now has a separate 'Realm Balance' report showing the balance of classes for both Alliance and Horde on that realm. There is also a complete list of Guilds known on that realm. Don't panic if your realm report is a little on the empty side, your realm and its guilds are likely still somewhere in the 50,000+ TODO queue.

Lastly, I have released some sample data from 3,000 level 80 characters in both CSV and XML formats on the Developers page for you to play with. Limits on the size of files in Google App Engine has made it tricky to release larger data-sets but I have something planned.

Refreshed automagically every 6 hours:

Thursday, 4 December 2008

Armory XML: permanentenchant attribute decoded

Something that really bothered me with the previous reports was the mysterious "permanentenchant" attribute on each 'slot' element in the Armory's XML. It didn't correlate to anything useful on the usual fan sites, as far as I could tell it wasn't an 'item', 'spell' or 'object' ID as far as WowHead was concerned.

This morning I wrote a really simple script that does the following:
  • Collate a list of all the permanentenchant attribute values from my database.

  • For each permanentenchant ID:

    - Locate a character (realm & name) with that enchant in the correct slot in my database

    - Fetch the item tooltip for that character's enchanted slot and parse the 'enchant' element

Now I had a list mapping the permanentenchant ID to the text displayed in the tooltip '2669' -> '+40 Spell Power'. Pretty neat start, but not quite what I wanted - I needed to figure out that '+40 Spell Power' on a Weapon actually means 'Enchant Weapon - Major Spellpower'.

  • Next, I try a pretty dumb lookup on WowHead '+40 Spell Power' didn't work but others like 'Unholy Weapon' were correctly identified.

  • For anything that's left, I compare the '+40 Spell Power' to the huge enchantment list on WoWWiki and then return to WowHead with the name of the enchant as seen on WowWiki.

One clever thing I did add is the distinction between enchantments that are spells (by Enchanters) and enchantments that are items (Spellthread).

Thirty seconds later the script has finished and my list now maps:
permanentenchant:'2669' -> tooltip:'+40 Spell Power' -> spell:'27975'

The result of all this is I now publish an XML file from my database with all the permanentenchant ID's mapped either to a 'spell' or 'item' ID suitable for WowHead. There are a few in the list where both 'spell' and 'item' are 0 - these haven't been figured out and will require manual attention to update.

This XML File is published under a Creative Commons Attribution 3.0 License, you are free to copy, distribute and adapt the data provided credit is given to the source of the data (i.e. a link to my site).

New Dataz!

Monday, 1 December 2008

New Website, New Data, Daily Updates

I'm pleased to announce the launch of my new Armory Musings... project website. Information is updated (at least) daily direct from my spider database. The format of the reports will be improved over the next few days but all the data is under a Creative Commons license meaning you can copy, distribute and adapt the data in my reports as long as you link back to the original source (my site).