So last night I was browsing around doing god-know's-what, and I had this urge to figure out how people were coming up with forum signatures that showed their WoW stats. They were really simplistic (name/server/level/race/class) and figured they were just scraping some page somewhere, perhaps even a service provided by someone so long as they updated it. Having recently setup the wowhead xml scraper for a newer version of the deceased itemlinks, I got to thinking if there's some way to apply that to the armory.

My initial attempt to find out said no. Bummed, I almost dropped the idea, but did some more google-fu and found out that the armory is actually xml. It's just that some browsers show the transformed xml, and/or if an unapproved agent string is sent, you get the transformed xml back. ie, no way to parse it. Turns out, Safari is one such browser. Loaded up Firefox and lo and behold, raw xml in view source. My mind went reeling. So as usual, I slept on it.

Woke up, looked at it some more and IM'd Brent and asked what he thought of polling the armory to display every facet of information possible on the guild site for the member pages. He said sure and then proceeded to ask questions I hadn't thought of, like remove the entire guild roster and build it dynamically from the guild tab of the armory since it is so wildly out of date because it relies on people to update it. Sure enough, that was possible too. So now I had a project to rebuild the interface for displaying members and their individual data, while retaining any custom info they may have already entered.

A few hours later we have success. Well, not complete, but it's a matter of preference for me. I wanted to show equipment information linked up to wowhead as well (I was shocked, the blizzard id's for items are the exact same as wowhead… maybe there's something obvious i missed there, but it was news to me), but that turned out to be about a 5-10second parse job for each page hit using the method I had already implemented for parsing text. I need to come up with a way to store that info in a local db and only reparse if it has changed. That'll probably be soon enough. Otherwise, for those who are in the dg crew, feel free to tell me how you'd rather see it laid out or what to show.