160 Commits

Author SHA1 Message Date
KnugiHK
28ba97d72f Fix CI on Windows 2026-01-24 17:38:22 +08:00
KnugiHK
eab98ba0d6 Fix crash on pre-release versions and enable update checks for pre-releases 2026-01-24 17:20:07 +08:00
KnugiHK
f920ca82b4 Refactor the logging facility a bit 2026-01-24 17:05:14 +08:00
KnugiHK
4eed3ca321 Refactor CLEAR_LINE in a more pythonic way
So it is easier for contributor to write a logging line for this project.
2026-01-24 16:48:07 +08:00
KnugiHK
bf230db595 Gracefully handle bytes that can't be decoded from db (#44) 2026-01-20 23:35:05 +08:00
KnugiHK
92c325294c Add preflight check to see if the jid_map table exists 2026-01-19 22:53:29 +08:00
KnugiHK
7dbd0dbe3c Add preflight check to see if transciption column exists 2026-01-19 22:46:30 +08:00
KnugiHK
f8b959e1e1 Implement an on-the-fly fix of dot-ending files (#185) 2026-01-18 23:03:49 +08:00
KnugiHK
ea9675973c Refactor Message class to accept pre-initialized Timing object
Pass the `Timing` object directly through `timezone_offset` to avoid repeated initialization of the same object within the `Message` class.
2026-01-17 13:42:11 +08:00
KnugiHK
064b923cfa Convert time unit for progress 2026-01-17 13:22:56 +08:00
KnugiHK
05bd26b8ed Decrease the default brute force worker to 4 2026-01-17 13:18:49 +08:00
KnugiHK
d200130335 Refactor to use tqdm for showing progress 2026-01-17 13:18:31 +08:00
KnugiHK
8f29fa0505 Center the version string in the exporter banner 2026-01-06 20:35:02 +08:00
KnugiHK
412efd66a0 Add --tg as an alias to --telegram 2026-01-01 15:06:21 +08:00
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