Skip to content

Convert bumble + googleDuo + imoHD_Chat to LAVA @artifact_processor#1579

Merged
abrignoni merged 1 commit into
mainfrom
convert-messaging-apps
Jun 24, 2026
Merged

Convert bumble + googleDuo + imoHD_Chat to LAVA @artifact_processor#1579
abrignoni merged 1 commit into
mainfrom
convert-messaging-apps

Conversation

@abrignoni

Copy link
Copy Markdown
Owner

Modernizes three messaging/comms apps to the LAVA pipeline. Each multi-report artifact is split into one processor per report; context form, UTC, framework media via check_in_media. Clustered as they're the same class of app.

bumble → bumbleMessages + bumbleAccount

  • Reserved-word trap fixed: the account header ('Key','Values') sanitizes Values→ the SQL reserved word (same class as the Fix mobileBackupplist LAVA crash: 'Values' column is a SQL reserved word #1565 Values crash) — renamed to Value.
  • Latent crash fixed: the non-NSKeyedArchiver branch used sys/plistlib/biplist that were never imported. Now a shared _load_blob_plist (plistlib + nska_deserialize). Timestamps → aware UTC; guarded the io.BytesIO(None) ordering.

googleDuo → googleDuoContacts + googleDuoCallHistory + googleDuoClips

  • Clips media: shutil.copy2 + inline <img>check_in_media (('Clip','media')).
  • Off-by-one column bug fixed: the original selected media_clip_md5_checksum but labeled it Content Size, shifting Content/Transferred and dropping transferred_size. Now MD5 Checksum / Content Size / Transferred Size are all mapped.
  • Removed a stray debug print().

imoHD_Chat → imoHDChatMessages + imoHDChatContacts

  • Same missing sys/plistlib/biplist import crash fixed via _load_blob_plist.
  • Attachment media: shutil.copy2 + inline <img>check_in_media; guarded plist['type'] (was an unguarded index on a failed/empty parse).

Validation

  • pylint 10.00/10; compile/ast OK; no legacy refs.
  • All 7 SQL queries executed against mock schemas (syntax + column names valid).
  • Mandatory reserved-word audit PASS for all 7 tables. No external imports of the old get_* names.

Three messaging/comms apps, each split into one processor per report; context
form, UTC, framework media via check_in_media.

bumble -> bumbleMessages + bumbleAccount:
- Fixes the 'Values' reserved-word trap (header ('Key','Values') sanitizes to
  the SQL reserved word; renamed to 'Value') — same class as the #1565 crash.
- Fixes a latent crash: the non-NSKeyedArchiver path used sys/plistlib/biplist
  which were never imported. Now a shared _load_blob_plist helper (plistlib +
  nska_deserialize). Timestamps -> aware UTC (convert_unix_ts_to_utc /
  convert_cocoa_core_data_ts_to_utc); guarded the io.BytesIO(None) ordering.

googleDuo -> googleDuoContacts + googleDuoCallHistory + googleDuoClips:
- Clips media: shutil.copy2 + inline <img> -> check_in_media ('Clip','media').
- Fixes an off-by-one column bug: the original selected media_clip_md5_checksum
  but labeled it 'Content Size', shifting Content/Transferred and dropping
  transferred_size. Now MD5 Checksum/Content Size/Transferred Size all mapped.
- Removed a stray debug print().

imoHD_Chat -> imoHDChatMessages + imoHDChatContacts:
- Same missing sys/plistlib/biplist import crash fixed via _load_blob_plist.
- Attachment media: shutil.copy2 + inline <img> -> check_in_media.
- Guarded plist['type'] (was an unguarded index on failed/'' parse).
@abrignoni abrignoni merged commit 8d36931 into main Jun 24, 2026
1 check passed
@abrignoni abrignoni deleted the convert-messaging-apps branch June 24, 2026 01:59
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.

1 participant