def __init__(self, *args, **kwargs): if kwargs: key = kwargs['method'].lower() + kwargs['url'].lower() self.response = HarvesterResponse(key=key, *args, **kwargs) else: self.response = args[0]
class HarvesterResponseModel(BaseHarvesterResponse): response = None def __init__(self, *args, **kwargs): if kwargs: key = kwargs['method'].lower() + kwargs['url'].lower() self.response = HarvesterResponse(key=key, *args, **kwargs) else: self.response = args[0] @property def method(self): return str(self.response.method) @property def url(self): return str(self.response.url) @property def ok(self): return bool(self.response.ok) @property def content(self): if isinstance(self.response.content, memoryview): return self.response.content.tobytes() if isinstance(self.response.content, bytes): return self.response.content return str(self.response.content) @property def encoding(self): return str(self.response.encoding) @property def headers_str(self): return str(self.response.headers_str) @property def status_code(self): return int(self.response.status_code) @property def time_made(self): return str(self.response.time_made) def save(self, *args, **kwargs): self.response.save() return self def update(self, **kwargs): for k, v in kwargs.items(): setattr(self.response, k, v) return self.save() @classmethod def get(cls, url=None, method=None): key = method.lower() + url.lower() try: return cls(HarvesterResponse.objects.get(key=key)) except HarvesterResponse.DoesNotExist: raise cls.DoesNotExist