From 136152dc184d1fa1aa7239868b9933d9e516ffa0 Mon Sep 17 00:00:00 2001 From: KnugiHK <24708955+KnugiHK@users.noreply.github.com> Date: Tue, 20 Jun 2023 14:07:42 +0800 Subject: [PATCH] Add contact's status if present (Android) --- Whatsapp_Chat_Exporter/data_model.py | 2 ++ Whatsapp_Chat_Exporter/extract.py | 13 +++++++++---- Whatsapp_Chat_Exporter/utility.py | 6 ++++-- Whatsapp_Chat_Exporter/whatsapp.html | 8 +++++++- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/Whatsapp_Chat_Exporter/data_model.py b/Whatsapp_Chat_Exporter/data_model.py index 53d9bb6..6c912a5 100644 --- a/Whatsapp_Chat_Exporter/data_model.py +++ b/Whatsapp_Chat_Exporter/data_model.py @@ -22,6 +22,7 @@ class ChatStore(): self.my_avatar = None self.their_avatar = None self.their_avatar_thumb = None + self.status = None def add_message(self, id, message): if not isinstance(message, Message): @@ -40,6 +41,7 @@ class ChatStore(): 'my_avatar': self.my_avatar, 'their_avatar': self.their_avatar, 'their_avatar_thumb': self.their_avatar_thumb, + 'status': self.status, 'messages': serialized_msgs } diff --git a/Whatsapp_Chat_Exporter/extract.py b/Whatsapp_Chat_Exporter/extract.py index 6ee7c27..6da5c06 100644 --- a/Whatsapp_Chat_Exporter/extract.py +++ b/Whatsapp_Chat_Exporter/extract.py @@ -155,10 +155,12 @@ def contacts(db, data): total_row_number = c.fetchone()[0] print(f"Processing contacts...({total_row_number})") - c.execute("""SELECT jid, COALESCE(display_name, wa_name) as display_name FROM wa_contacts; """) + c.execute("""SELECT jid, COALESCE(display_name, wa_name) as display_name, status FROM wa_contacts; """) row = c.fetchone() while row is not None: data[row["jid"]] = ChatStore(Device.ANDROID, row["display_name"]) + if row["status"] is not None: + data[row["jid"]].status = row["status"] row = c.fetchone() @@ -702,7 +704,8 @@ def create_html( f"{safe_file_name}-{current_page + 1}.html", chat.my_avatar, chat.their_avatar, - chat.their_avatar_thumb + chat.their_avatar_thumb, + chat.status ) render_box = [message] current_size = 0 @@ -723,7 +726,8 @@ def create_html( False, chat.my_avatar, chat.their_avatar, - chat.their_avatar_thumb + chat.their_avatar_thumb, + chat.status ) else: render_box.append(message) @@ -739,7 +743,8 @@ def create_html( False, chat.my_avatar, chat.their_avatar, - chat.their_avatar_thumb + chat.their_avatar_thumb, + chat.status ) if current % 10 == 0: print(f"Generating chats...({current}/{total_row_number})", end="\r") diff --git a/Whatsapp_Chat_Exporter/utility.py b/Whatsapp_Chat_Exporter/utility.py index d05cda3..e2b6c8f 100644 --- a/Whatsapp_Chat_Exporter/utility.py +++ b/Whatsapp_Chat_Exporter/utility.py @@ -71,7 +71,8 @@ def rendering( next, my_avatar, their_avatar, - their_avatar_thumb + their_avatar_thumb, + status ): if their_avatar_thumb is None and their_avatar is not None: their_avatar_thumb = their_avatar @@ -84,7 +85,8 @@ def rendering( their_avatar=their_avatar, their_avatar_thumb=their_avatar_thumb, w3css=w3css, - next=next + next=next, + status=status, ) ) diff --git a/Whatsapp_Chat_Exporter/whatsapp.html b/Whatsapp_Chat_Exporter/whatsapp.html index a873f79..dfa5763 100644 --- a/Whatsapp_Chat_Exporter/whatsapp.html +++ b/Whatsapp_Chat_Exporter/whatsapp.html @@ -89,7 +89,13 @@
-