Commit Graph

679 Commits

Author SHA1 Message Date
KnugiHK 5a20953a81 Optimize quoted message lookups via global in-memory mapping
This change replaces the inefficient N+1 SQL query pattern with a pre-computed hash map. By fetching `ZSTANZAID` and `ZTEXT` pairs globally before processing, the exporter can resolve quoted message content in O(1) time.

Crucially, this maintains parity with the Android exporter by ensuring that replies to messages outside the current date or chat filters are still correctly rendered, providing full conversational context without the performance penalty of repeated database hits.
2026-01-06 20:51:29 +08:00
KnugiHK 8f29fa0505 Center the version string in the exporter banner 2026-01-06 20:35:02 +08:00
KnugiHK 0a14da9108 Reduce CI platforms 2026-01-05 00:31:47 +08:00
KnugiHK 929534ff80 Add windows 11 arm and macos 15 intel to CI 2026-01-05 00:17:00 +08:00
KnugiHK 87c1555f03 Add windows 11 arm and macos x64 to binary compiling 2026-01-05 00:02:52 +08:00
Knugi 5e676f2663 Merge pull request #187 from KnugiHK/alert-autofix-4
Potential fix for code scanning alert no. 4: Workflow does not contain permissions
2026-01-02 12:39:56 +08:00
Knugi 5da2772112 Potential fix for code scanning alert no. 4: Workflow does not contain permissions
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-01-02 04:39:37 +00:00
KnugiHK 04a21728a8 Merge branch 'dev' 0.13.0rc1 2026-01-01 15:08:52 +08:00
KnugiHK 412efd66a0 Add --tg as an alias to --telegram 2026-01-01 15:06:21 +08:00
KnugiHK 0ac1612c6c Django license is no longer needed 2026-01-01 14:56:10 +08:00
KnugiHK 8ffeabfca6 Bump version 2026-01-01 14:02:33 +08:00
KnugiHK d5ad085210 Update pm.png 2025-12-29 01:40:25 +08:00
KnugiHK baaafe1eca Update README.md 2025-12-29 00:32:07 +08:00
KnugiHK 91f160fc2a Update example image 2025-12-29 00:31:19 +08:00
Knugi 21cae9fe93 Add Python Support Policy 2025-12-28 10:32:34 +00:00
KnugiHK a70895f959 Drop Python 3.9 2025-12-28 18:28:10 +08:00
Knugi 79d12b9c8b Fix a typo #184 2025-12-28 06:23:33 +00:00
KnugiHK ff27918705 Update pyproject.toml 2025-12-27 19:01:40 +08:00
KnugiHK a1c53c3db2 Update test_nuitka_binary.py 2025-12-27 17:32:28 +08:00
KnugiHK 173eb5d02e Python 3.14 is not yet supported for Nuitka 2025-12-27 17:26:24 +08:00
KnugiHK b39aae365a Update test_nuitka_binary.py 2025-12-27 17:26:03 +08:00
KnugiHK 10691b954a Update test matrix 2025-12-27 17:15:48 +08:00
KnugiHK 60c421a7d0 ok... large image is not free... 2025-12-27 17:05:21 +08:00
KnugiHK 60ddcc08ed Revert "Update ci.yml"
This reverts commit 02b770a6f4.
2025-12-27 17:05:06 +08:00
Knugi 02b770a6f4 Update ci.yml 2025-12-27 09:03:27 +00:00
KnugiHK 5e1bca53d1 Correct macOS binary architecture naming and add x64 build for macos 2025-12-27 16:58:35 +08:00
KnugiHK 968447fef9 Use powershell native function on Windows 2025-12-27 16:55:48 +08:00
KnugiHK 506442392c Add artifact attestation 2025-12-27 16:53:45 +08:00
KnugiHK 1c2d3acf1b Remove vobject from building CICD 2025-12-27 16:49:58 +08:00
KnugiHK aef568b80b Merge branch 'main' into dev 2025-12-27 16:48:47 +08:00
Knugi 42e583ac7c Merge pull request #175 from tomballgithub/vcard_fix
Fix vcard decoding errors
2025-12-15 23:00:07 +08:00
Knugi ea60f878be Upgrade CodeQL action versions to v4 2025-12-15 14:53:39 +00:00
KnugiHK 9d2e06f973 Merge branch 'main' of https://github.com/KnugiHK/Whatsapp-Chat-Exporter 0.12.1 2025-12-15 01:12:30 +08:00
KnugiHK dffce977de Bump version to 0.12.1 2025-12-15 01:12:14 +08:00
KnugiHK 71ca293557 Add main entry point
Added a main entry point in __main__.py to allow running the exporter as a script. Required for standalone binary
2025-12-15 01:12:04 +08:00
Knugi 75720c6d0a Upgrade GitHub Actions to use version 6 2025-12-14 17:08:49 +00:00
KnugiHK 5a80fe189d Add error handling to quoted-printable decoding
Wrapped the decode_quoted_printable function in a try-except block to handle decoding errors gracefully. If decoding fails, a warning is logged and the original value is returned, improving robustness when processing malformed vCard data.
2025-12-14 23:49:10 +08:00
KnugiHK bb10203b44 Remove vobject dependency from project and workflow
Eliminated the use of the vobject library from the codebase, dependency groups, and GitHub Actions workflow. vobject is no longer a dependency for vCards enrichment.
2025-12-14 23:47:24 +08:00
KnugiHK ddd0ac3143 Refactor vCard parsing to improve decoding and structure
Replaces regex-based vCard parsing with dedicated functions for parsing lines, handling quoted-printable encoding, and extracting fields. Adds support for CHARSET and ENCODING parameters, improves handling of multi-line and encoded values, and centralizes vCard entry processing for better maintainability and accuracy.
2025-12-14 23:00:48 +08:00
KnugiHK 43658a92c4 Replace print with logger in read_vcards_file
Changed the contact import message from a print statement to a logger.info call for better logging consistency.
2025-12-14 21:57:17 +08:00
KnugiHK 194ed29a6e Switch the default template to the WhatsApp-alike them
The old telegram theme can still be applied with the `--old-theme` option
2025-12-14 21:40:17 +08:00
Knugi fa629503f7 Update Nuitka version and build commands in workflow 2025-12-14 09:43:50 +00:00
Knugi f6442f9d73 Update Nuitka installation in CI workflow
Removed specific version for Nuitka installation.
2025-12-14 09:20:41 +00:00
tomballgithub 02363af637 Updated vcard test to check for failing cases which caused this PR 2025-12-03 22:42:31 -06:00
tomballgithub 8c9c69a536 Print the number of imported vcards 2025-11-29 20:28:51 -06:00
tomballgithub 029700359e Fix vcard decoding errors 2025-11-29 19:34:27 -06:00
KnugiHK beaf272a63 ignoreUnreadable line in vcard #173
This makes multi line entry in vcard being ignored.
2025-11-26 22:05:42 +08:00
Knugi 1d5bad92a7 Add new IV and DB entry to utility.py
Reported by @silasjelley
2025-11-07 13:13:14 +00:00
Knugi 09162bf522 Update README with usage notes and Android link
Added note about providing link for Android export instructions.
2025-10-20 05:55:09 +00:00
KnugiHK da4cea6230 Change how contacts are populated from vCards (fix #167)
Enrichment is now performed before message processing to ensure that all contacts are available, regardless of whether they exist in the ChatCollection.
2025-10-12 23:18:55 +08:00