Description
We are currently working on parsing system messages. However, there seems to be some particularities depending on the OS (Android, iOS), the device (mobile, desktop), etc.
Multiple environments
iOS
System messages are shown the same as the user names, but using the chat name as the user name
Android
System messages are sent without using the field allocated for "username".
See the example from #139:
04/03/2024, 22:29 - Messages and calls are end-to-end encrypted. No one outside of this chat, not even WhatsApp, can read or listen to them. Tap to learn more.
12/12/2023, 10:46 - ~ +1-xx3-yyy4 created group "Group1"
04/03/2024, 22:29 - +1-xx4-yyy3 added you to a group in the community: Community 1
07/03/2024, 12:12 - +1-xx9-yyy5 joined from the community
07/03/2024, 12:12 - +1-xx8-yyy3 joined from the community
07/03/2024, 12:12 - +1-xx4-yyy2 joined from the community
07/03/2024, 12:12 - +1-xx1-yyy3 joined from the community
09/03/2024, 17:32 - +1-xx7-yyy3 joined from the community
11/03/2024, 20:54 - +1-xx6-yyy5 joined using this group's invite link
11/03/2024, 20:54 - +1-xx8-yyy4 joined from the community
11/03/2024, 20:54 - +1-xx1-yyy8 joined using this group's invite link
16/03/2024, 09:10 - +1-xxx-yyy3: Hey everyone! We're looking for volunteers to act as facilitators for a "Event 1" First Aid Workshop organized by <Message redacted>.
Mobile vs desktop
Also, there are some differences between mobile vs. desktop, where the desktop seems to filter some system messages.
Communities
How the format in community chat history differs from groups' is unclear. We should explore this further (and potentially create a separate tracking issue for that).
Solutions
iOS/Android
We are almost finished with a solution supporting system messages for iOS devices:
We should investigate a similar solution for chats exported from Android devices.
mobile/desktop
My intuition here is to go with full mobile support and skip desktop support for now. We should signal this somewhere in the docs.
Communities
Same as in desktop, do not support this for now.