Commit inicial

This commit is contained in:
lastdragon
2026-09-10 09:24:22 -06:00
parent 202164a0da
commit 6e11482d36
14 changed files with 1634 additions and 1 deletions
+17
View File
@@ -0,0 +1,17 @@
"""Cálculo de huellas (fingerprints) para detectar mensajes ya migrados.
Los UID de IMAP no son estables entre servidores, así que la identidad de un
mensaje se basa preferentemente en su ``Message-ID``. Cuando el mensaje no
tiene ``Message-ID`` (raro, pero ocurre con correo mal formado), se recurre a
una combinación de tamaño y fecha interna.
"""
import hashlib
def compute_fingerprint(message_id: str | None, size: int, internaldate_raw: str, extra: str | None = None) -> str:
if message_id:
return "mid:" + message_id.strip()
base = f"{size}:{internaldate_raw}:{extra or ''}"
digest = hashlib.sha256(base.encode("utf-8", "replace")).hexdigest()
return "nomid:" + digest