mirror of
https://github.com/KnugiHK/WhatsApp-Chat-Exporter.git
synced 2026-05-28 03:48:42 +00:00
I found that old schema also has such tables
This commit is contained in:
@@ -194,16 +194,30 @@ def messages(db, data, media_folder):
|
|||||||
messages_quotes.data as quoted_data,
|
messages_quotes.data as quoted_data,
|
||||||
messages.media_caption,
|
messages.media_caption,
|
||||||
missed_call_logs.video_call,
|
missed_call_logs.video_call,
|
||||||
chat.subject as chat_subject
|
chat.subject as chat_subject,
|
||||||
|
message_system.action_type,
|
||||||
|
message_system_group.is_me_joined,
|
||||||
|
jid_old.raw_string as old_jid,
|
||||||
|
jid_new.raw_string as new_jid
|
||||||
FROM messages
|
FROM messages
|
||||||
LEFT JOIN messages_quotes
|
LEFT JOIN messages_quotes
|
||||||
ON messages.quoted_row_id = messages_quotes._id
|
ON messages.quoted_row_id = messages_quotes._id
|
||||||
LEFT JOIN missed_call_logs
|
LEFT JOIN missed_call_logs
|
||||||
ON messages._id = missed_call_logs.message_row_id
|
ON messages._id = missed_call_logs.message_row_id
|
||||||
INNER JOIN jid
|
INNER JOIN jid jid_global
|
||||||
ON messages.key_remote_jid = jid.raw_string
|
ON messages.key_remote_jid = jid_global.raw_string
|
||||||
LEFT JOIN chat
|
LEFT JOIN chat
|
||||||
ON chat.jid_row_id = jid._id
|
ON chat.jid_row_id = jid_global._id
|
||||||
|
LEFT JOIN message_system
|
||||||
|
ON message_system.message_row_id = messages._id
|
||||||
|
LEFT JOIN message_system_group
|
||||||
|
ON message_system_group.message_row_id = messages._id
|
||||||
|
LEFT JOIN message_system_number_change
|
||||||
|
ON message_system_number_change.message_row_id = messages._id
|
||||||
|
LEFT JOIN jid jid_old
|
||||||
|
ON jid_old._id = message_system_number_change.old_jid_row_id
|
||||||
|
LEFT JOIN jid jid_new
|
||||||
|
ON jid_new._id = message_system_number_change.new_jid_row_id
|
||||||
WHERE messages.key_remote_jid <> '-1';"""
|
WHERE messages.key_remote_jid <> '-1';"""
|
||||||
)
|
)
|
||||||
except sqlite3.OperationalError:
|
except sqlite3.OperationalError:
|
||||||
@@ -338,52 +352,9 @@ def messages(db, data, media_folder):
|
|||||||
message.caption = None
|
message.caption = None
|
||||||
|
|
||||||
if content["status"] == 6: # 6 = Metadata, otherwise assume a message
|
if content["status"] == 6: # 6 = Metadata, otherwise assume a message
|
||||||
if not table_message and "-" in content["key_remote_jid"]:
|
message.meta = True
|
||||||
# Is Group
|
name = fallback = None
|
||||||
if content["data"] is not None and content["data"] != "":
|
if table_message:
|
||||||
try:
|
|
||||||
int(content["data"])
|
|
||||||
except ValueError:
|
|
||||||
msg = f'''The group name changed to "{content['data']}"'''
|
|
||||||
message.data = msg
|
|
||||||
message.meta = True
|
|
||||||
else:
|
|
||||||
message.meta = True
|
|
||||||
message.data = None
|
|
||||||
else:
|
|
||||||
thumb_image = content["thumb_image"] # Not applicable for new schema
|
|
||||||
if thumb_image is not None:
|
|
||||||
if b"\x00\x00\x01\x74\x00\x1A" in thumb_image:
|
|
||||||
# Add user
|
|
||||||
added = phone_number_re.search(
|
|
||||||
thumb_image.decode("unicode_escape"))[0]
|
|
||||||
if added in data:
|
|
||||||
name_right = data[added].name
|
|
||||||
else:
|
|
||||||
name_right = added.split('@')[0]
|
|
||||||
if content["remote_resource"] is not None:
|
|
||||||
if content["remote_resource"] in data and data[content["remote_resource"]].name is not None:
|
|
||||||
name_left = data[content["remote_resource"]].name
|
|
||||||
else:
|
|
||||||
name_left = content["remote_resource"].split('@')[0]
|
|
||||||
msg = f"{name_left} added {name_right or 'You'}"
|
|
||||||
else:
|
|
||||||
msg = f"Added {name_right or 'You'}"
|
|
||||||
elif b"\xac\xed\x00\x05\x74\x00" in thumb_image:
|
|
||||||
# Changed number
|
|
||||||
original = content["remote_resource"].split('@')[0]
|
|
||||||
changed = thumb_image[7:].decode().split('@')[0]
|
|
||||||
msg = f"{original} changed to {changed}"
|
|
||||||
message.data = msg
|
|
||||||
message.meta = True
|
|
||||||
else:
|
|
||||||
if content["data"] is None:
|
|
||||||
message.meta = True
|
|
||||||
message.data = None
|
|
||||||
|
|
||||||
elif table_message:
|
|
||||||
message.meta = True
|
|
||||||
name = fallback = None
|
|
||||||
if content["sender_jid_row_id"] > 0:
|
if content["sender_jid_row_id"] > 0:
|
||||||
_jid = content["group_sender_jid"]
|
_jid = content["group_sender_jid"]
|
||||||
if _jid in data:
|
if _jid in data:
|
||||||
@@ -392,11 +363,19 @@ def messages(db, data, media_folder):
|
|||||||
fallback = _jid.split('@')[0]
|
fallback = _jid.split('@')[0]
|
||||||
else:
|
else:
|
||||||
name = "You"
|
name = "You"
|
||||||
message.data = determine_metadata(content, name or fallback)
|
|
||||||
if isinstance(message.data, str) and "<br>" in message.data:
|
|
||||||
message.safe = True
|
|
||||||
else:
|
else:
|
||||||
# Private chat
|
_jid = content["remote_resource"]
|
||||||
|
if _jid is not None:
|
||||||
|
if _jid in data:
|
||||||
|
name = data[_jid].name
|
||||||
|
if "@" in _jid:
|
||||||
|
fallback = _jid.split('@')[0]
|
||||||
|
else:
|
||||||
|
name = "You"
|
||||||
|
message.data = determine_metadata(content, name or fallback)
|
||||||
|
if isinstance(message.data, str) and "<br>" in message.data:
|
||||||
|
message.safe = True
|
||||||
|
if message.data is None:
|
||||||
if content["video_call"] is not None: # Missed call
|
if content["video_call"] is not None: # Missed call
|
||||||
message.meta = True
|
message.meta = True
|
||||||
if content["video_call"] == 1:
|
if content["video_call"] == 1:
|
||||||
|
|||||||
Reference in New Issue
Block a user