From 5f6b764bb95b99915a525bda1166e0723c0d2d14 Mon Sep 17 00:00:00 2001 From: KnugiHK <24708955+KnugiHK@users.noreply.github.com> Date: Wed, 14 Jun 2023 21:53:23 +0800 Subject: [PATCH] Add fallback to iOS contact name Fallback = the name set by the contact --- Whatsapp_Chat_Exporter/extract_iphone.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Whatsapp_Chat_Exporter/extract_iphone.py b/Whatsapp_Chat_Exporter/extract_iphone.py index 707015b..ddc2185 100644 --- a/Whatsapp_Chat_Exporter/extract_iphone.py +++ b/Whatsapp_Chat_Exporter/extract_iphone.py @@ -19,10 +19,22 @@ def messages(db, data, media_folder): total_row_number = c.fetchone()[0] print(f"Processing contacts...({total_row_number})") - c.execute("""SELECT ZCONTACTJID, ZPARTNERNAME FROM ZWACHATSESSION; """) + c.execute( + """SELECT ZCONTACTJID, + ZPARTNERNAME, + ZPUSHNAME + FROM ZWACHATSESSION + LEFT JOIN ZWAPROFILEPUSHNAME + ON ZWACHATSESSION.ZCONTACTJID = ZWAPROFILEPUSHNAME.ZJID;""" + ) content = c.fetchone() while content is not None: - data[content["ZCONTACTJID"]] = ChatStore(Device.IOS, content["ZPARTNERNAME"], media_folder) + is_phone = content["ZPARTNERNAME"].replace("+", "").replace(" ", "").isdigit() + if content["ZPUSHNAME"] is None or (content["ZPUSHNAME"] and not is_phone): + contact_name = content["ZPARTNERNAME"] + else: + contact_name = content["ZPUSHNAME"] + data[content["ZCONTACTJID"]] = ChatStore(Device.IOS, contact_name, media_folder) path = f'{media_folder}/Media/Profile/{content["ZCONTACTJID"].split("@")[0]}' avatars = glob(f"{path}*") if 0 < len(avatars) <= 1: