Better error handling on Skill checking, also fixes EVE Proxt blowing auth params out the window

This commit is contained in:
2011-05-31 13:41:10 +01:00
parent c75a8fbc1f
commit c9f5599500
2 changed files with 13 additions and 10 deletions

View File

@@ -130,13 +130,14 @@ def import_eve_character_func(character_id, api_key=None, user_id=None, logger=l
logger.error('Error retrieving SkillInTraining.xml.aspx for User ID %s, Character ID %s - %s' % (user_id, character_id, exc))
else:
queuedoc = basic_xml_parse_doc(skillqueue)
queuedoc = queuedoc['eveapi']['result']
EVEPlayerCharacterSkill.objects.filter(character=pchar).update(in_training=0)
if int(queuedoc['skillInTraining']):
skillobj, created = EVESkill.objects.get_or_create(id=queuedoc['trainingTypeID'])
charskillobj, created = EVEPlayerCharacterSkill.objects.get_or_create(skill=skillobj, character=pchar)
charskillobj.in_training = queuedoc['trainingToLevel']
charskillobj.save()
if 'error' in queuedoc['eveapi'] and 'result' in queuedoc['eveapi']:
queuedoc = queuedoc['eveapi']['result']
EVEPlayerCharacterSkill.objects.filter(character=pchar).update(in_training=0)
if int(queuedoc['skillInTraining']):
skillobj, created = EVESkill.objects.get_or_create(id=queuedoc['trainingTypeID'])
charskillobj, created = EVEPlayerCharacterSkill.objects.get_or_create(skill=skillobj, character=pchar)
charskillobj.in_training = queuedoc['trainingToLevel']
charskillobj.save()
# Process the character's roles
pchar.roles.clear()

View File

@@ -100,9 +100,11 @@ class CachedDocumentManager(models.Manager):
except:
pass
else:
for k in ['userid', 'apikey', 'vcode', 'keyid']:
if k in params: del params[k]
ApiAccessLog(userid=v, service='Unknown', time_access=doc.time_retrieved, document=self.construct_url(url_path, params)).save()
fparams = {}
for k in params:
if not k in ['userid', 'apikey', 'vcode', 'keyid']: fparams[k] = params[k]
ApiAccessLog(userid=v, service='Unknown', time_access=doc.time_retrieved, document=self.construct_url(url_path, fparams)).save()
return doc