mirror of https://github.com/CIRCL/lookyloo
fix: Properly cache URL, fix mypy issue
Related https://github.com/Lookyloo/PyLookyloo/issues/32pull/746/head
parent
158d52fb42
commit
8cd6f5490a
|
@ -58,6 +58,12 @@ class CaptureCache():
|
||||||
self.logger = LookylooCacheLogAdapter(logger, {'uuid': self.uuid})
|
self.logger = LookylooCacheLogAdapter(logger, {'uuid': self.uuid})
|
||||||
|
|
||||||
self.capture_dir: Path = Path(cache_entry['capture_dir'])
|
self.capture_dir: Path = Path(cache_entry['capture_dir'])
|
||||||
|
if not self.capture_dir.exists():
|
||||||
|
raise MissingCaptureDirectory(f'The capture {self.uuid} does not exists in {self.capture_dir}.')
|
||||||
|
|
||||||
|
if url := cache_entry.get('url'):
|
||||||
|
# This entry *should* be present even if there is an error.
|
||||||
|
self.url: str = url
|
||||||
|
|
||||||
if all(key in cache_entry.keys() for key in __default_cache_keys):
|
if all(key in cache_entry.keys() for key in __default_cache_keys):
|
||||||
self.title: str = cache_entry['title']
|
self.title: str = cache_entry['title']
|
||||||
|
@ -66,14 +72,11 @@ class CaptureCache():
|
||||||
except ValueError:
|
except ValueError:
|
||||||
# If the microsecond is missing (0), it fails
|
# If the microsecond is missing (0), it fails
|
||||||
self.timestamp = datetime.strptime(cache_entry['timestamp'], '%Y-%m-%dT%H:%M:%S%z')
|
self.timestamp = datetime.strptime(cache_entry['timestamp'], '%Y-%m-%dT%H:%M:%S%z')
|
||||||
self.url: str = cache_entry['url']
|
|
||||||
if cache_entry.get('redirects'):
|
if cache_entry.get('redirects'):
|
||||||
self.redirects: List[str] = json.loads(cache_entry['redirects'])
|
self.redirects: List[str] = json.loads(cache_entry['redirects'])
|
||||||
else:
|
else:
|
||||||
self.logger.debug('No redirects in cache')
|
self.logger.debug('No redirects in cache')
|
||||||
self.redirects = []
|
self.redirects = []
|
||||||
if not self.capture_dir.exists():
|
|
||||||
raise MissingCaptureDirectory(f'The capture {self.uuid} does not exists in {self.capture_dir}.')
|
|
||||||
elif not cache_entry.get('error'):
|
elif not cache_entry.get('error'):
|
||||||
missing = set(__default_cache_keys) - set(cache_entry.keys())
|
missing = set(__default_cache_keys) - set(cache_entry.keys())
|
||||||
raise LookylooException(f'Missing keys ({missing}), no error message. It should not happen.')
|
raise LookylooException(f'Missing keys ({missing}), no error message. It should not happen.')
|
||||||
|
|
|
@ -247,13 +247,13 @@ class Lookyloo():
|
||||||
|
|
||||||
to_return = {'uuid': cache.uuid,
|
to_return = {'uuid': cache.uuid,
|
||||||
'url': cache.url if hasattr(cache, 'url') else 'Unable to get URL for the capture'}
|
'url': cache.url if hasattr(cache, 'url') else 'Unable to get URL for the capture'}
|
||||||
if hasattr(cache, 'error'):
|
if hasattr(cache, 'error') and cache.error:
|
||||||
to_return['error'] = cache.error
|
to_return['error'] = cache.error
|
||||||
if hasattr(cache, 'title'):
|
if hasattr(cache, 'title'):
|
||||||
to_return['title'] = cache.title
|
to_return['title'] = cache.title
|
||||||
if hasattr(cache, 'timestamp'):
|
if hasattr(cache, 'timestamp'):
|
||||||
to_return['capture_time'] = cache.timestamp.isoformat()
|
to_return['capture_time'] = cache.timestamp.isoformat()
|
||||||
if hasattr(cache, 'user_agent'):
|
if hasattr(cache, 'user_agent') and cache.user_agent:
|
||||||
to_return['user_agent'] = cache.user_agent
|
to_return['user_agent'] = cache.user_agent
|
||||||
if hasattr(cache, 'referer'):
|
if hasattr(cache, 'referer'):
|
||||||
to_return['referer'] = cache.referer if cache.referer else ''
|
to_return['referer'] = cache.referer if cache.referer else ''
|
||||||
|
|
Loading…
Reference in New Issue