mirror of https://github.com/CIRCL/lookyloo
fix: Do not display all the recent captures with the same hash in popup
parent
484a5d5d89
commit
9b4d56a0b6
|
@ -345,7 +345,7 @@ class Lookyloo():
|
|||
return self.redis.get(f'error_{capture_uuid}')
|
||||
|
||||
def capture_cache(self, capture_uuid: str, /) -> Optional[CaptureCache]:
|
||||
"""Get the cache from redis."""
|
||||
"""Get the cache from redis, rebuild the tree if the internal UUID changed => slow"""
|
||||
try:
|
||||
return self._captures_index[capture_uuid]
|
||||
except MissingCaptureDirectory as e:
|
||||
|
@ -641,6 +641,9 @@ class Lookyloo():
|
|||
captures_list['same_url'].append((h_capture_uuid, url_uuid, cache.title, cache.timestamp.isoformat(), url_hostname))
|
||||
else:
|
||||
captures_list['different_url'].append((h_capture_uuid, url_uuid, cache.title, cache.timestamp.isoformat(), url_hostname))
|
||||
# Sort by timestamp by default
|
||||
captures_list['same_url'].sort(key=lambda y: y[3])
|
||||
captures_list['different_url'].sort(key=lambda y: y[3])
|
||||
return total_captures, captures_list
|
||||
|
||||
def get_ressource(self, tree_uuid: str, /, urlnode_uuid: str, h: Optional[str]) -> Optional[Tuple[str, BytesIO, str]]:
|
||||
|
|
|
@ -72,17 +72,17 @@ python-versions = ">=3.6"
|
|||
|
||||
[[package]]
|
||||
name = "attrs"
|
||||
version = "21.4.0"
|
||||
version = "22.1.0"
|
||||
description = "Classes Without Boilerplate"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||
python-versions = ">=3.5"
|
||||
|
||||
[package.extras]
|
||||
dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"]
|
||||
dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"]
|
||||
docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
|
||||
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"]
|
||||
tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"]
|
||||
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"]
|
||||
tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"]
|
||||
|
||||
[[package]]
|
||||
name = "backcall"
|
||||
|
@ -1211,7 +1211,7 @@ types-urllib3 = "<1.27"
|
|||
|
||||
[[package]]
|
||||
name = "types-setuptools"
|
||||
version = "63.2.1"
|
||||
version = "63.2.2"
|
||||
description = "Typing stubs for setuptools"
|
||||
category = "dev"
|
||||
optional = false
|
||||
|
@ -1391,7 +1391,7 @@ misp = ["python-magic", "pydeep2"]
|
|||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = ">=3.8,<3.11"
|
||||
content-hash = "f3f02419df2a7962424ef429c83526964b734bc6524abaa4ce6b207884a30779"
|
||||
content-hash = "7e09622171c396fb616322d9f73dea9433d2b479137f13ec40abc9666c71a92e"
|
||||
|
||||
[metadata.files]
|
||||
aiohttp = [
|
||||
|
@ -1489,8 +1489,8 @@ async-timeout = [
|
|||
{file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"},
|
||||
]
|
||||
attrs = [
|
||||
{file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"},
|
||||
{file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"},
|
||||
{file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"},
|
||||
{file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"},
|
||||
]
|
||||
backcall = [
|
||||
{file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"},
|
||||
|
@ -2430,8 +2430,8 @@ types-requests = [
|
|||
{file = "types_requests-2.28.5-py3-none-any.whl", hash = "sha256:98ab647ae88b5e2c41d6d20cfcb5117da1bea561110000b6fdeeea07b3e89877"},
|
||||
]
|
||||
types-setuptools = [
|
||||
{file = "types-setuptools-63.2.1.tar.gz", hash = "sha256:2957a40addfca5c7125fd8d386a9efda5379098c6e66a08e02257fd1cea42131"},
|
||||
{file = "types_setuptools-63.2.1-py3-none-any.whl", hash = "sha256:eca7cbdd8db15e0ec37174a7dcfc9c8cbc87106f453066340e31729ec853cd63"},
|
||||
{file = "types-setuptools-63.2.2.tar.gz", hash = "sha256:a9aa0c01d5f3443cd544026d5ffc97b95ddadf731dab13419c393d43fd8617c0"},
|
||||
{file = "types_setuptools-63.2.2-py3-none-any.whl", hash = "sha256:a370df7a1e0dc856af9d998234f6e2ab04f30f25b8e1410f6db65910979f6252"},
|
||||
]
|
||||
types-urllib3 = [
|
||||
{file = "types-urllib3-1.26.17.tar.gz", hash = "sha256:73fd274524c3fc7cd8cd9ceb0cb67ed99b45f9cb2831013e46d50c1451044800"},
|
||||
|
|
|
@ -81,7 +81,7 @@ types-pkg-resources = "^0.1.3"
|
|||
types-Deprecated = "^1.2.9"
|
||||
types-python-dateutil = "^2.8.19"
|
||||
types-beautifulsoup4 = "^4.11.4"
|
||||
types-setuptools = "^63.2.1"
|
||||
types-setuptools = "^63.2.2"
|
||||
types-Pillow = "^9.2.0"
|
||||
|
||||
[build-system]
|
||||
|
|
|
@ -185,12 +185,12 @@
|
|||
{# Lists of other captures loading the same content... #}
|
||||
<div class="collapse" id="captureslist_{{ identifier_for_toggle }}">
|
||||
<div class="card card-body">
|
||||
Note that only the most recent captures are displayed here.
|
||||
Note that only the most recent 20 captures are displayed here.
|
||||
{% if other_captures['different_url']|length > 0 %}
|
||||
{# ... on other URLs #}
|
||||
<div>
|
||||
<p>The following captures get the same file from a <b>different URL</b></p>
|
||||
{{ other_captures_table(other_captures['different_url']) }}
|
||||
{{ other_captures_table(other_captures['different_url'], 20) }}
|
||||
</div>
|
||||
{% endif %}
|
||||
</br>
|
||||
|
@ -198,7 +198,7 @@
|
|||
{# ... on the same URL #}
|
||||
<div>
|
||||
<p>The following captures get the same file from the <b>same URL</b></p>
|
||||
{{ other_captures_table(other_captures['same_url']) }}
|
||||
{{ other_captures_table(other_captures['same_url'], 20) }}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
@ -206,7 +206,7 @@
|
|||
{% endif %}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro other_captures_table(entries) %}
|
||||
{% macro other_captures_table(entries, max_entries) %}
|
||||
<div class="table-responsive">
|
||||
<table id="table_other_captures" class="table">
|
||||
<thead>
|
||||
|
@ -217,7 +217,7 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for capture_uuid, urlnode_uuid, title, timestamp, hostname in entries %}
|
||||
{% for capture_uuid, urlnode_uuid, title, timestamp, hostname in entries[:max_entries] %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="#/" onclick="openTreeInNewTab('{{ capture_uuid }}', '{{ urlnode_uuid }}')">{{ title }}</a>
|
||||
|
|
Loading…
Reference in New Issue