From b1d8d173a2dab21571e34b7d01247d344862f4c1 Mon Sep 17 00:00:00 2001 From: KnugiHK <24708955+KnugiHK@users.noreply.github.com> Date: Wed, 17 May 2023 01:06:31 +0800 Subject: [PATCH] Bug fix on too long vCard file name --- Whatsapp_Chat_Exporter/extract.py | 3 ++- Whatsapp_Chat_Exporter/extract_iphone.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Whatsapp_Chat_Exporter/extract.py b/Whatsapp_Chat_Exporter/extract.py index f17e964..3fcc269 100644 --- a/Whatsapp_Chat_Exporter/extract.py +++ b/Whatsapp_Chat_Exporter/extract.py @@ -489,7 +489,8 @@ def vcard(db, data): for index, row in enumerate(rows): media_name = row["media_name"] if row["media_name"] is not None else "" file_name = "".join(x for x in media_name if x.isalnum()) - file_path = f"{base}/{file_name}.vcf" + file_name = file_name.encode('utf-8')[:251].decode('utf-8', 'ignore') + file_path = os.path.join(base, f"{file_name}.vcf") if not os.path.isfile(file_path): with open(file_path, "w", encoding="utf-8") as f: f.write(row["vcard"]) diff --git a/Whatsapp_Chat_Exporter/extract_iphone.py b/Whatsapp_Chat_Exporter/extract_iphone.py index 5b01d25..2e98c37 100644 --- a/Whatsapp_Chat_Exporter/extract_iphone.py +++ b/Whatsapp_Chat_Exporter/extract_iphone.py @@ -199,7 +199,8 @@ def vcard(db, data): Path(base).mkdir(parents=True, exist_ok=True) for index, row in enumerate(rows): file_name = "".join(x for x in row[3] if x.isalnum()) - file_path = f"{base}/{file_name[:200]}.vcf" + file_name = file_name.encode('utf-8')[:251].decode('utf-8', 'ignore') + file_path = os.path.join(base, f"{file_name}.vcf") if not os.path.isfile(file_path): with open(file_path, "w", encoding="utf-8") as f: f.write(row[4])