Commit Graph

146 Commits

Author SHA1 Message Date
Knugi
42e583ac7c Merge pull request #175 from tomballgithub/vcard_fix
Fix vcard decoding errors
2025-12-15 23:00:07 +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
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
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
Knugi
25fa1cc530 Merge pull request #157 from glemco/telegram_json
Add support for telegram JSON file format
2025-07-02 18:26:52 +08:00
glemco
deebd6c87e Changes after code review 2025-06-29 10:49:01 +02:00
KnugiHK
5cd8d953ac Add an option to skip processing replies in iOS
Since processing replies take time
2025-06-19 22:10:12 +08:00
KnugiHK
9d3e65bd92 Fix error when using not supplying a value (default) to --size 2025-06-19 21:41:03 +08:00
glemco
5ed260b0b7 Add support for telegram JSON file format
Add the --telegram command line argument that, combined with a JSON
output, generates a Telegram compatible JSON file [1].

The JSON is per-chat, so the --telegram argument implies the
--json-per-chat setting.

I took a few shortcuts:
* Contact and Ids are inferred from the chat id or phone numbers
* All text is marked as plain (e.g. no markup or different types)
* Only personal chats and private groups supported
* Private groups are defined if the chat has a name
* Various ids try to match the ones in WA but may require bulk edits

[1] - https://core.telegram.org/import-export

Fixes: https://github.com/KnugiHK/WhatsApp-Chat-Exporter/issues/152
2025-06-16 13:01:33 +02:00
KnugiHK
0ecfe6c59a Cast numeric string in readable_to_bytes 2025-06-01 12:15:15 +08:00
KnugiHK
24653b8753 Fixed integer input for --size not being casted to int #156 2025-06-01 11:53:45 +08:00
KnugiHK
bbb558713f Replace sanitize_filename with safe_name 2025-05-17 18:24:30 +08:00
KnugiHK
33149075d3 autopep8 2025-05-11 18:07:51 +08:00
KnugiHK
dd795f3282 Adjust banner position 2025-05-11 17:27:23 +08:00
KnugiHK
75c3999567 Update debug log name 2025-05-11 16:56:19 +08:00
KnugiHK
fa41572753 Change print to logger for better logging in the future
This commit also added --debug and --no-banner options, which will enable debug level of logging and supress the default banner
2025-05-11 16:53:46 +08:00
KnugiHK
a58dd78be8 PEP8 2025-05-05 17:13:43 +08:00
KnugiHK
60790d89e3 Remove args.incremental_merge from device type check 2025-05-05 16:15:51 +08:00
KnugiHK
5a9944d14b Respects users' choices on the output JSON 2025-05-05 16:09:53 +08:00
fschuh
fbffc16452 Added call to main() if directly executing __main__.py file 2025-05-04 15:58:53 -04:00
fschuh
2f15360526 Fixed remaining compatibility issues with latest code 2025-05-04 15:58:02 -04:00
fschuh
f460f76441 Fixed issue on command line args validation 2025-04-29 01:22:11 -04:00
fschuh
7cf7329124 Updated help description 2025-04-29 01:22:11 -04:00
fschuh
1207b1e0cc Added support for incremental merging 2025-04-29 01:22:11 -04:00
KnugiHK
0074acca7a Allow users to set the number of threads for bruteforcing offsets 2025-03-02 15:44:40 +08:00
KnugiHK
7c4705d149 Major refactoring
This commit does not refactor Android handler
2025-03-02 12:57:27 +08:00
KnugiHK
1ef223e238 Refactor the data model 2025-03-02 01:41:44 +08:00
KnugiHK
6034937cf5 Terminate the process when unknown android backup format supplied 2025-03-01 12:18:43 +08:00
KnugiHK
457ab209c1 Bug fix on incorrectly positioned argument
This commit also made `dry_run` and `keyfile_stream` keyword arguments

Affects #130
2025-02-26 21:30:52 +08:00
KnugiHK
b2bcf36622 Move Android backup decryption to a standalone module 2025-02-26 21:20:11 +08:00
KnugiHK
26abfdd570 Bug fix on argument positions 2025-02-26 21:14:50 +08:00
KnugiHK
b9f811c147 Add documentations, refactor and implement crypt15 key dynamical input 2025-02-22 18:14:15 +08:00
KnugiHK
8c85656831 Show different warning messages when enrich_from_vcards is set and contact db is empty 2025-02-20 23:46:26 +08:00
KnugiHK
c8b71213ae Remove --iphone 2025-02-09 16:26:08 +08:00
KnugiHK
0b2dfa9aba Implement custom headline (#97) 2025-02-09 14:20:11 +08:00
KnugiHK
23af55d645 Implement empty chat filtering from SQL #112
This commit also removed the old empty chat filtering logic.
2025-01-04 18:18:34 +08:00
KnugiHK
7a1fa46368 Implement call log for iOS #122 2025-01-02 20:48:11 +08:00
KnugiHK
a0b8167121 Create a whatsapp-alike theme #97 2025-01-02 16:01:25 +08:00
KnugiHK
fef9684189 Remove __version__
Use importlib.metadata.version instead
2024-12-08 20:35:54 +08:00
KnugiHK
af3307825a Update docs 2024-10-24 19:33:54 +08:00
KnugiHK
05d21e3e5a Rename the functions for size conversion 2024-09-24 23:31:00 +08:00
KnugiHK
fb88c83ac4 Dynamically convert the size unit for outputting JSON 2024-09-24 23:29:11 +08:00
KnugiHK
9608fa387d Allow units in --split 2024-09-15 01:27:08 +08:00
KnugiHK
884ccc4cc0 Bug fix on vobject being a necessary dependency 2024-09-11 00:07:39 +08:00
KnugiHK
a83c8eb17f Basic implementation on txt format output #108 2024-09-10 00:14:10 +08:00
KnugiHK
df3333f948 Sanitize the file name for --per-chat options #86 2024-09-07 18:45:36 +08:00
KnugiHK
bd4ccbb8ac Add all forbidden options to an error message 2024-09-07 18:31:06 +08:00
KnugiHK
fb5a1c3e1f Bug fix on incomplete JSON output on --per-chat #86 2024-09-07 18:30:38 +08:00
Knugi
4fcb4df0a4 Merge branch 'dev' into bnaya-iteration 2024-07-20 13:43:32 +08:00
Bnaya Peretz
13904ea4d8 Fix cond 2024-07-15 08:48:15 +03:00