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)) logger.error('Error retrieving SkillInTraining.xml.aspx for User ID %s, Character ID %s - %s' % (user_id, character_id, exc))
else: else:
queuedoc = basic_xml_parse_doc(skillqueue) queuedoc = basic_xml_parse_doc(skillqueue)
queuedoc = queuedoc['eveapi']['result'] if 'error' in queuedoc['eveapi'] and 'result' in queuedoc['eveapi']:
EVEPlayerCharacterSkill.objects.filter(character=pchar).update(in_training=0) queuedoc = queuedoc['eveapi']['result']
if int(queuedoc['skillInTraining']): EVEPlayerCharacterSkill.objects.filter(character=pchar).update(in_training=0)
skillobj, created = EVESkill.objects.get_or_create(id=queuedoc['trainingTypeID']) if int(queuedoc['skillInTraining']):
charskillobj, created = EVEPlayerCharacterSkill.objects.get_or_create(skill=skillobj, character=pchar) skillobj, created = EVESkill.objects.get_or_create(id=queuedoc['trainingTypeID'])
charskillobj.in_training = queuedoc['trainingToLevel'] charskillobj, created = EVEPlayerCharacterSkill.objects.get_or_create(skill=skillobj, character=pchar)
charskillobj.save() charskillobj.in_training = queuedoc['trainingToLevel']
charskillobj.save()
# Process the character's roles # Process the character's roles
pchar.roles.clear() pchar.roles.clear()

View File

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