kopia lustrzana https://github.com/bellingcat/auto-archiver
html preview improvements
rodzic
6d41c3d4e8
commit
c31c14bf80
|
@ -4,7 +4,8 @@ import mimetypes, os, pathlib
|
||||||
from jinja2 import Environment, FileSystemLoader
|
from jinja2 import Environment, FileSystemLoader
|
||||||
from urllib.parse import quote
|
from urllib.parse import quote
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
import minify_html
|
import minify_html, json
|
||||||
|
import base64
|
||||||
|
|
||||||
from ..version import __version__
|
from ..version import __version__
|
||||||
from ..core import Metadata, Media, ArchivingContext
|
from ..core import Metadata, Media, ArchivingContext
|
||||||
|
@ -92,3 +93,8 @@ class JinjaHelpers:
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def quote(s: str) -> str:
|
def quote(s: str) -> str:
|
||||||
return quote(s)
|
return quote(s)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def json_dump_b64(d: dict) -> str:
|
||||||
|
j = json.dumps(d, indent=4, default=str)
|
||||||
|
return base64.b64encode(j.encode()).decode()
|
||||||
|
|
|
@ -180,13 +180,16 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ key }}</td>
|
<td>{{ key }}</td>
|
||||||
<td>
|
<td>
|
||||||
|
{% if metadata[key] is mapping %}
|
||||||
|
<div class="center copy" copy-value64='{{metadata[key] | json_dump_b64}}'>Copy as JSON</div>
|
||||||
|
{% endif %}
|
||||||
{{ macros.copy_urlize(metadata[key]) }}
|
{{ macros.copy_urlize(metadata[key]) }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<p style="text-align:center;">Made with <a
|
<p class="center">Made with <a
|
||||||
href="https://github.com/bellingcat/auto-archiver">bellingcat/auto-archiver</a> v{{ version }}</p>
|
href="https://github.com/bellingcat/auto-archiver">bellingcat/auto-archiver</a> v{{ version }}</p>
|
||||||
</body>
|
</body>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/forge/0.10.0/forge.min.js" defer></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/forge/0.10.0/forge.min.js" defer></script>
|
||||||
|
@ -194,7 +197,7 @@
|
||||||
// partial decode of SSL certificates
|
// partial decode of SSL certificates
|
||||||
function decodeCertificate(sslCert) {
|
function decodeCertificate(sslCert) {
|
||||||
var cert = forge.pki.certificateFromPem(sslCert);
|
var cert = forge.pki.certificateFromPem(sslCert);
|
||||||
return `PREVIEW:<br/><ul>
|
return `SSL CERTIFICATE PREVIEW:<br/><ul>
|
||||||
<li><b>Subject:</b> <span class="copy">${cert.subject.attributes.map(attr => `${attr.shortName}: ${attr.value}`).join(", ")}</span></li>
|
<li><b>Subject:</b> <span class="copy">${cert.subject.attributes.map(attr => `${attr.shortName}: ${attr.value}`).join(", ")}</span></li>
|
||||||
<li><b>Issuer:</b> <span class="copy">${cert.issuer.attributes.map(attr => `${attr.shortName}: ${attr.value}`).join(", ")}</span></li>
|
<li><b>Issuer:</b> <span class="copy">${cert.issuer.attributes.map(attr => `${attr.shortName}: ${attr.value}`).join(", ")}</span></li>
|
||||||
<li><b>Valid From:</b> <span class="copy">${cert.validity.notBefore}</span></li>
|
<li><b>Valid From:</b> <span class="copy">${cert.validity.notBefore}</span></li>
|
||||||
|
@ -252,6 +255,9 @@
|
||||||
if (e.clipboardData) {
|
if (e.clipboardData) {
|
||||||
if (el.hasAttribute("copy-value")) {
|
if (el.hasAttribute("copy-value")) {
|
||||||
e.clipboardData.setData("text/plain", el.getAttribute("copy-value"));
|
e.clipboardData.setData("text/plain", el.getAttribute("copy-value"));
|
||||||
|
} else if (el.hasAttribute("copy-value64")) {
|
||||||
|
// TODO: figure out how to decode unicode chars into utf-8
|
||||||
|
e.clipboardData.setData("text/plain", new String(atob(el.getAttribute("copy-value64"))));
|
||||||
} else {
|
} else {
|
||||||
e.clipboardData.setData("text/plain", el.textContent);
|
e.clipboardData.setData("text/plain", el.textContent);
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue