1. #1

    [WoW Armory API]Character Audit

    Greetings!

    First of all, I'm not sure if this is the correct subforum for it, so apologies if this is not the case. I had a small question regarding the API but I wasn't sure where to put it, so I figured the nice people of MMO-Champion might be able to help me.

    I wanted to write a simple script that checked a list of people's armory (it would be about 25 people, 4ish times a week) and let me know whether the character passed the audit or not and, if not, what they're still missing. At first I thought about simply downloading the armory page of every person and then filtering out the information I need, but I remembered reading about people getting blocked from certain services/sites because they requested and downloaded too many pages, and I didn't want that to happen, so I (for now) abandoned that idea. Then I had a look at the API provided by Blizzard, but after some quick looking around and googling, I realized that Blizzard has simply not implemented a simple API to support the character audit. So I was wondering how exactly I could implement the API to write the (formerly easy) script I was thinking about.

    TL;DR:
    1) Can I download ~100 Armory pages a week, or would that strain the servers too much?
    2) How can I get something similar to the character audit on the Armory while only using the API provided by Blizzard?

    P.S.: I'm still a fresh beginner at writing scripts, so please keep that in mind!

  2. #2
    What exactly are you trying to do? Or rather, what do you need that /character does not provide?

    - - - Updated - - -

    Also, 100 requests per week is easily within limitations.
    UI & AddOns expert | Interface & Macros moderator - My work

  3. #3
    I had a look at items as well, but unfortunately, that doesn't show if there is a gem missing in a gem slot (unless I completely looked over it). It merely states that there is a gem, if there is one. I could probably find a work-around for the enchants.

    What I'm trying to do is seeing if people's items are fully gemmed and enchanted.

    - - - Updated - - -

    Ah, I did not see the throttling thing before, so it's good to know that the limit is as high as 3.000 per day. However, that limit is for the API (I think?) and does not say anything for the Armory page itself it seems.

  4. #4
    Quote Originally Posted by APIStarter View Post
    Ah, I did not see the throttling thing before, so it's good to know that the limit is as high as 3.000 per day. However, that limit is for the API (I think?) and does not say anything for the Armory page itself it seems.
    I'm pretty sure you'd get throttled rather quickly if you requested more than 3000 Armory pages in a single day, API or no API.

  5. #5
    My current idea would have peaks of approximately 25 on a day, so I'd have a lot of margin left.

  6. #6
    I'd suggest you check against the /item API for the amount of gems an item can hold. Remember to cache return values from this call, as it's unlikely to change frequently.

    PS: Batch pulling armory pages will likely get your server's IP blacklisted very quickly. There's a reason Blizzard created the community API.
    UI & AddOns expert | Interface & Macros moderator - My work

  7. #7
    Quote Originally Posted by Treeston View Post
    I'd suggest you check against the /item API for the amount of gems an item can hold. Remember to cache return values from this call, as it's unlikely to change frequently.
    Hmm, guess I'll have to do that after all, then.

    Quote Originally Posted by Treeston View Post
    Batch pulling armory pages will likely get your server's IP blacklisted very quickly. There's a reason Blizzard created the community API.
    That's what I was afraid of, thank you for confirming my suspicions.


    Thanks for the help, Treeston!

  8. #8
    You might also want to check up on http://wowcheck.com

    It might do what you're looking for. And if not, you could certainly borrow some ideas from it and improve upon them.

    Best of luck to you in your endeavor!
    Virtualize <Solution> @ Greymane | virtual#1157 | Web | YouTube | Twitter | Facebook
    Hermes - Share cooldown status with raid/party.
    Skada: Survivability - Show when a character died during a specific attempt.
    AffDots - Track the potency of your DoTs on a target.

  9. #9
    Main - Spirál - Hunter - 11/14 10H SoO - 13/13 10H ToT (Retired)
    Alt - Rerolling - BrM Monk

    Ex-GM of <Convicted>/<Ginyu Force> on US-Stormreaver
    http://www.sr-ginyuforce.com/home - Kill Videos
    Hunter Simcraft Profile Generator web tool

  10. #10
    odd question...is it possible to use multiple servers making requests and redirecting the data to the page OP is making?
    so instead of 3k, goes up multiplicatively?
    Still I cry, tears like pouring rain, Innocent is my lurid pain.

  11. #11
    Quote Originally Posted by Christan View Post
    odd question...is it possible to use multiple servers making requests and redirecting the data to the page OP is making?
    so instead of 3k, goes up multiplicatively?
    If you were really concerned about it, you could have the requests come from the client side (javascript). That way all the requests are spread out across the individual machines. However, it seems pretty YAGNI, in my opinion.
    Virtualize <Solution> @ Greymane | virtual#1157 | Web | YouTube | Twitter | Facebook
    Hermes - Share cooldown status with raid/party.
    Skada: Survivability - Show when a character died during a specific attempt.
    AffDots - Track the potency of your DoTs on a target.

  12. #12
    odd question...is it possible to use multiple servers making requests and redirecting the data to the page OP is making?
    so instead of 3k, goes up multiplicatively?
    You could, but you'd be breaking the TOS. These rules aren't supposed to be technical restrictions - they're things you agree to in order to use the service.
    Given the alternative (we all have to screen scrape and work around the much stricter limits on the HTML version) it's better to just play by the rules because abusing the service is a good way to get it shut down for everyone.

    It's not like you're forbidden to make > 3k requests per day, you just have to justify them. If you can, then blizzard will give you an API key that increases or removes the limit.

    PS: Batch pulling armory pages will likely get your server's IP blacklisted very quickly. There's a reason Blizzard created the community API.
    I did a quick check to see if they do any sort of concurrent connection throttling and it doesn't seem like they do. 24 threads pulling random character data didn't seem to get funnelled at all. So long as you aren't going over the limits for the type of request you're doing it'll probably be fine (at least, that what the community docs lead me to believe).
    A new UI series for 5.2Steal my old UILearn about WeakAuras • Nobody to raid with right now so no PVE videos.

  13. #13

  14. #14
    Quote Originally Posted by evn View Post
    I did a quick check to see if they do any sort of concurrent connection throttling and it doesn't seem like they do. 24 threads pulling random character data didn't seem to get funnelled at all. So long as you aren't going over the limits for the type of request you're doing it'll probably be fine (at least, that what the community docs lead me to believe).
    Armory pages - the actual armory, not the API.
    UI & AddOns expert | Interface & Macros moderator - My work

  15. #15
    Quote Originally Posted by virtual View Post
    You might also want to check up on http:[slash]/wowcheck[dot]com

    It might do what you're looking for. And if not, you could certainly borrow some ideas from it and improve upon them.
    It is a nice (and minimalist) tool, but unfortunately too minimalist because it only takes enchants into account and not gems.

    Quote Originally Posted by virtual View Post
    Best of luck to you in your endeavor!
    Thank you!

    Quote Originally Posted by Spiralphoenix View Post
    Why not just use

    http:[slash]/www[dot]curse[dot]com/addons/wow/idiotcheck

    ?
    The addon states in the description that inspecting others might be a bit buggy. Even if we ignore that, my goal is checking everyone's armory page ~15 minutes before a raid to see whether their gear is in order. With the addon, I'd have to wait until we're all in a group and inside till I can start checking. It works, but it's unfortunately not really what I'm looking for. Thanks for the help, though!

    Quote Originally Posted by Music View Post
    http:[slash]/audit[dot]drotain[dot]com/
    Ah, this is a great suggestion! The only issue that I'm having with this is that the people whose armory I want to track are spread across multiple (4+) guilds, some of which are rather large, and the website doesn't really seem to support that (apart from checking the guilds manually, but that rather defeats the purpose of automating it).

  16. #16
    High Overlord Pelf's Avatar
    Join Date
    Mar 2008
    Location
    US-Sargeras
    Posts
    108
    My guild currently uses a Google Spreadsheet that has an attached script that performs the Armory API queries and dumps the results into the spreadsheet. Additional tabs are used for different sorts on the initial data and to add conditional formatting. I could easily see making a spreadsheet that does what you're looking for.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •