Skip to content

Add "Conversation" and "Communication" metadata to internal parsers - #2695

Open
aberenguel wants to merge 28 commits into
masterfrom
#2686_internal_chat_metadata
Open

Add "Conversation" and "Communication" metadata to internal parsers#2695
aberenguel wants to merge 28 commits into
masterfrom
#2686_internal_chat_metadata

Conversation

@aberenguel

@aberenguel aberenguel commented Oct 31, 2025

Copy link
Copy Markdown
Collaborator

Fixes #2686

Parsers to be changed:

  • WhatsAppParser
  • DiscordParser
  • TelegramParser
  • ThreemaParser
  • SkypeParser

@aberenguel
aberenguel marked this pull request as draft October 31, 2025 06:11
@aberenguel

aberenguel commented Nov 7, 2025

Copy link
Copy Markdown
Collaborator Author

@lfcnassif I added new chat metadata ("Conversation:" and "Communication:") to WhatsAppParser, TelegramParser and DiscordParser. In the above commits, some bugs were also fixed. I don't know if it is worth to handle ThreemaParser and SkypeParser right now.

@aberenguel
aberenguel force-pushed the #2686_internal_chat_metadata branch from 8c27453 to dfb4b56 Compare July 24, 2026 07:39
@aberenguel
aberenguel marked this pull request as ready for review July 24, 2026 07:40
@aberenguel

Copy link
Copy Markdown
Collaborator Author

Motivation

UFED chats metadata were uses the Conversation: (chats) and Communication: (messages) prefixes, but the internal decoding parsers still used their own parser-specific keys. This PR standardizes those keys so internal and UFED parsers emit the same metadata wherever possible.

Changes

  • Shared keys and constants centralized in ExtraProperties and ConversationConstants (conversation id/Name/Type/Account/Participants/Admins, message From/To/Direction/Date, normalized types OneOnOne/Group/Broadcast/Unknown).
  • IndexItem now auto-computes the :count attribute for participants/admins.
  • WhatsApp, Telegram, Discord, Skype and Threema parsers updated to emit the standardized metadata and conversation types, using the party string builders.
  • WhatsApp had to implement fetching of group admins (read from the group tables), which was not decoded before; Telegram already decoded admins and now maps them to the standardized Conversation:Admins key.
  • UFED handlers aligned to the same constants and suffix logic.
  • WhatsApp and Telegram tests updated for the new keys and party-string format.

The PR also includes other fixes not related to the metadata standardization, bundled in along the way: WhatsApp phone-number resolution, account/admin reading and a quoted-message CSS fix; Telegram chat-name handling and user-account retrieval; and ignoring invalid media hashes. Conversation type mapping is per-app (e.g. WhatsApp channels map to Broadcast).

This is a broad change touching many parsers and their tests, so it is good to review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unify metadata keys between internal and external parsers

1 participant