def get_race_data(): host = "http://eu.battle.net" try: races = JsonData.objects.get(description='races') except JsonData.DoesNotExist: races = None if races is None or races.date <= timezone.now() - datetime.timedelta(hours=12): print "Updating races in DB" # Fetch class info from blizzard url = host + "/api/wow/data/character/races" response = urllib2.urlopen(url).read() try: old = JsonData.objects.get(description='races') old.delete() except JsonData.DoesNotExist: pass jsonData = JsonData(description='races', json=response) jsonData.save() else: print "Using races classes from DB" response = races.json racedata = json.loads(response) races = racedata['races'] rl = {} # Construct a dictionary to be able to lookup classes for r in races: rl[r['id']] = r['name'] return rl
def get_member_data(): host = "http://eu.battle.net" # Check if we have recently updated data in DB try: members = JsonData.objects.get(description='members') except JsonData.DoesNotExist: members = None print members # If we dont have an entry for members, or if its too old, fetch new data from blizzard if members is None or members.date <= timezone.now() - datetime.timedelta(minutes=15): # Fetch guild members print "Updating members in DB" url = host + "/api/wow/guild/" + REALM_URL + "/" + GUILD_NAME_URL + "?fields=members" response = urllib2.urlopen(url).read() # Remove old entry if one exists try: old = JsonData.objects.get(description='members') old.delete() except JsonData.DoesNotExist: pass jsonData = JsonData(description='members', json=response) jsonData.save() else: response = members.json print "Using existing members from DB" guild = json.loads(response) return guild['members'] # members = guild['members']