def get_character(self, character): try: if type(character) in (unicode, str) and not character.isdigit(): try: character = Character.objects.get(name=character).pk except Character.DoesNotExist: characterid = get_names_to_ids(character)[character] else: characterid = character except: raise Character.DoesNotExist try: char = self.get_query_set().get(pk=characterid) cache_time = (datetime.now()-char.timestamp).total_seconds() if cache_time > 24*60*60: try: char = self.update_from_api(char) except: char.save() return char else: return char except Character.DoesNotExist: try: char = Character(id=characterid) char = self.update_from_api(char) return char except Exception, ex: print format_exc(ex) raise Character.DoesNotExist
def get_corporation(self, corporation): try: if type(corporation) in (unicode, str) and not corporation.isdigit(): try: corporationid = Corporation.objects.get(name=corporation).pk except Corporation.DoesNotExist: corporationid = get_names_to_ids(corporation)[corporation] else: corporationid = corporation except: raise Corporation.DoesNotExist try: corp = self.get_query_set().get(pk=corporationid) cache_time = (datetime.now()-corp.timestamp).total_seconds() if cache_time > 24*60*60: corp.status = 'Dissolved' try: corp = self.update_from_api(corp) except: corp.save() return corp else: return corp except Corporation.DoesNotExist: try: corp = Corporation(id=corporationid) corp = self.update_from_api(corp) return corp except Exception, ex: raise Corporation.DoesNotExist