WhatsIllustrator is a program and framework which converts WhatsApp, Telegram Messenger and Signal Messenger chats into a pdf, odt and tex. It is written in Java and can be easily extended for other output formats, layouts and messengers.
First, clone the repository using git (recommended):
git clone --recurse-submodules https://github.com/Terge3141/WhatsIllustrator.git
Make sure that Java 17 and maven is installed
Build the package:
cd WhatsIllustrator/whatsillustrator
mvn package
This will create the jar files.
- Copy msgstore.db.crypt15 to your computer, see https://faq.whatsapp.com/6181521285295518/?cms_platform=android
- Parser is messageparser.WhatsappBackupParser, see samples/sampleconfig.xml
- Create a directory ($wadir)
- Export a chat from WhatsApp and save it to the directory ($wadir/chat). This directory should contain a .txt file which usually has the name "WhatsApp Chat with The Nickname.txt" and some images (if any in the chat).
- Parser is messageparser.WhatsappParser, see samples/sampleconfig.xml
- Export a Telegram Chat: https://telegram.org/blog/export-and-more
- Parser is messageparser.TelegramParser, see samples/sampleconfig.xml
- Activate backup and copy backup file to your pc, see also https://support.signal.org/hc/en-us/articles/360007059752-Backup-and-Restore-Messages
- Parser is messageparser.Signalarser, see samples/sampleconfig.xml
Open samples/sampleconfig.xml, modify it and save it as /path/to/config.xml.
java -cp thebook/target/thebook-0.0.1-SNAPSHOT-jar-with-dependencies.jar\
thebook.Program -c /path/to/config.xml
The reults will be written to outputdir (defined in config.xml). Each chat contains the following subdirectories (if writers are activated):
- odf: Contains the generated odt file. It can be opened for example with libre office.
- tex Contains the generated tex file and some files the tex document references. The file can be processed for example with lualatex
For some chats it appears that it is not possible to export them with media. Then a <
Media omitted>
line occurs in the chat file. In this case whatsillustrator automatically searches the image pool directory and lists all possible images for the date of interest.
The match file is written to chat output directory. This can be edited and written to the directory $wadir/config. When whatsillustrator is invoked next time, it reads the match file and uses it to match <
Media omitted>
messages.
The image pool directory should contain all images and configured as imagepooldir in the config.xml file (parserconfiguration).
The emojis are from OpenMoji (https://openmoji.org/) and are under Creative Commons Share Alike License 4.0 CC BY-SA 4.0.
- Select Workspace WhatsIllustrator (the main directory)
- File --> Import --> Maven --> Existing Maven Projects
- Choose WhatsIllustrator/whatsillustrator
Contributions (new features, bug fixes, changes) are very welcome. Just send send me the pull requests or patches. Also, if you find any bugs let me know.