kopia lustrzana https://github.com/bellingcat/auto-archiver
Merge branch 'load_modules' into add_module_tests
# Conflicts: # src/auto_archiver/modules/gsheet_feeder/gsheet_feeder.py # src/auto_archiver/utils/misc.pypull/189/head
commit
8d894066f2
|
@ -1,6 +1,6 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from abc import abstractmethod
|
from abc import abstractmethod
|
||||||
from typing import IO, Optional
|
from typing import IO
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
|
|
@ -30,10 +30,10 @@ class HashEnricher(Enricher):
|
||||||
to_enrich.media[i].set("hash", f"{self.algorithm}:{hd}")
|
to_enrich.media[i].set("hash", f"{self.algorithm}:{hd}")
|
||||||
|
|
||||||
def calculate_hash(self, filename) -> str:
|
def calculate_hash(self, filename) -> str:
|
||||||
hash = None
|
hash_algo = None
|
||||||
if self.algorithm == "SHA-256":
|
if self.algorithm == "SHA-256":
|
||||||
hash = hashlib.sha256()
|
hash_algo = hashlib.sha256
|
||||||
elif self.algorithm == "SHA3-512":
|
elif self.algorithm == "SHA3-512":
|
||||||
hash = hashlib.sha3_512()
|
hash_algo = hashlib.sha3_512
|
||||||
else: return ""
|
else: return ""
|
||||||
return calculate_file_hash(filename, hash, self.chunksize)
|
return calculate_file_hash(filename, hash_algo, self.chunksize)
|
||||||
|
|
|
@ -63,13 +63,14 @@ def json_loader(cli_val):
|
||||||
return json.loads(cli_val)
|
return json.loads(cli_val)
|
||||||
|
|
||||||
|
|
||||||
def calculate_file_hash(filename: str, hash_algo = hashlib.sha256(), chunksize: int = 16000000) -> str:
|
def calculate_file_hash(filename: str, hash_algo = hashlib.sha256, chunksize: int = 16000000) -> str:
|
||||||
|
hash = hash_algo()
|
||||||
with open(filename, "rb") as f:
|
with open(filename, "rb") as f:
|
||||||
while True:
|
while True:
|
||||||
buf = f.read(chunksize)
|
buf = f.read(chunksize)
|
||||||
if not buf: break
|
if not buf: break
|
||||||
hash_algo.update(buf)
|
hash.update(buf)
|
||||||
return hash_algo.hexdigest()
|
return hash.hexdigest()
|
||||||
|
|
||||||
def get_current_datetime_iso() -> str:
|
def get_current_datetime_iso() -> str:
|
||||||
return datetime.now(timezone.utc).replace(tzinfo=timezone.utc).isoformat()
|
return datetime.now(timezone.utc).replace(tzinfo=timezone.utc).isoformat()
|
||||||
|
|
Ładowanie…
Reference in New Issue