Skip to content

Instantly share code, notes, and snippets.

@amscotti
Last active September 27, 2015 07:57
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amscotti/1236553 to your computer and use it in GitHub Desktop.
Save amscotti/1236553 to your computer and use it in GitHub Desktop.
Code to use battle.net's RESTful API for pulling World of Warcraft guild rosters - http://www.128bitstudios.com/2011/09/22/updated-world-of-warcraft-armory-code/
http = require 'http'
rest = require 'restler'
realm = escape "Staghelm"
guild = escape "Controlled Chaos"
type = {
1: "Warrior", 2: "Paladin", 3: "Hunter",
4: "Rogue", 5: "Priest", 6: "Death Knight",
7: "Shaman", 8: "Mage", 9: "Warlock",
10: "Monk", 11: "Druid"
}
rest.get("http://us.battle.net/api/wow/guild/#{realm}/#{guild}?fields=members").on('complete', (data) ->
data.members.sort( (a,b) ->
if a.character.name > b.character.name
return 1
if a.character.name < b.character.name
return -1
return 0
)
console.log "#{data.members.length} Characters Found!"
console.log "--------"
for char in data.members
console.log "#{char.character.name} #{char.character.level} #{type[char.character.class]}"
console.log "--------"
)
import 'dart:json' as JSON;
import 'package:http/http.dart' as http;
import 'dart:uri';
final Map type = {
"1": "Warrior", "2": "Paladin", "3": "Hunter",
"4": "Rogue", "5": "Priest", "6": "Death Knight",
"7": "Shaman", "8": "Mage", "9": "Warlock",
"10": "Monk", "11": "Druid"
};
void main() {
String realm = encodeUri("Lothar");
String guild_name = encodeUri("Controlled Chaos").replaceAll("+", "%20");
String url = "http://us.battle.net/api/wow/guild/${realm}/${guild_name}?fields=members";
http.read(url).then(JSON.parse).then((data){
data["members"].sort((a,b) => Comparable.compare(a["character"]["name"], b["character"]["name"]));
print("${data["members"].length} Characters Found!");
print("--------");
for(var char in data["members"]){
print("${char["character"]["name"]} ${char["character"]["level"]} ${type[char["character"]["class"].toString()]}");
}
print("--------");
});
}
import groovy.json.*
def realm = URLEncoder.encode("Staghelm")
def guild = URLEncoder.encode("Controlled Chaos").replace("+", "%20")
def url = "http://us.battle.net/api/wow/guild/${realm}/${guild}?fields=members".toURL()
def type = [
1: "Warrior", 2: "Paladin", 3: "Hunter",
4: "Rogue", 5: "Priest", 6: "Death Knight",
7: "Shaman", 8: "Mage", 9: "Warlock",
10: "Monk", 11: "Druid"].withDefault { key -> "unknown" }
url.openConnection().with {
inputStream.withReader { reader ->
def characters = new JsonSlurper().parse(reader)
println "${characters.members.size} Characters Found!"
println "-" * 50
characters.members.character.sort{ it.name }.each { t ->
printf "%-20s%-10s%s\n", t.name, t.level, type[t.class]
}
println "-" * 50
}
}
require 'rubygems'
require 'httparty'
type = {
1 => "Warrior", 2 => "Paladin", 3 => "Hunter",
4 => "Rogue", 5 => "Priest", 6 => "Death Knight",
7 => "Shaman", 8 => "Mage", 9 => "Warlock",
10 => "Monk", 11 => "Druid"
}
type.default = "unknown"
strRealm = "Staghelm"
strGuildName = "Controlled Chaos"
data = HTTParty.get("http://us.battle.net/api/wow/guild/#{URI.escape(strRealm)}/#{URI.escape(strGuildName)}?fields=members").parsed_response
puts "#{data["members"].count} Characters Found!"
puts "-" * 50
data["members"].sort{|a,b| a["character"]['name'] <=> b["character"]['name']}.each do |member|
c = member["character"]
puts "%-20s%-10s%s" %[c['name'],c['level'],type[c['class']]]
end
puts "-" * 50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment