Package Exports
- whatsapp-chat-parser
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (whatsapp-chat-parser) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
WhatsApp Chat Parser
A package to parse WhatsApp chat logs 💬
Install
$ npm install whatsapp-chat-parserUsage
Node
const fs = require('fs');
const whatsapp = require('whatsapp-chat-parser');
const fileContents = fs.readFileSync('path/to/file.txt', 'utf8');
whatsapp
.parseString(fileContents)
.then(messages => {
// Do whatever you want with messages
})
.catch(err => {
// Something went wrong
});Browser
Add the script to your HTML file (usually just before the closing </body> tag).
Then use it in your JavaScript code, the whatsappChatParser variable will be globally available.
<script src="path/to/whatsapp-chat-parser.min.js"></script>
<script>
whatsappChatParser
.parseString('06/03/2017, 00:45 - Sample User: This is a test message')
.then(messages => {
// Do whatever you want with messages
})
.catch(err => {
// Something went wrong
});
</script>You can also use the jsDelivr CDN.
<script src="https://cdn.jsdelivr.net/npm/whatsapp-chat-parser/dist/whatsapp-chat-parser.min.js"></script>
<!-- Or use a specific version -->
<script src="https://cdn.jsdelivr.net/npm/whatsapp-chat-parser@2.0.2/dist/whatsapp-chat-parser.min.js"></script>
The messages variable is an array of objects like this:
[
{
date: '2018-06-02T22:45:00.000Z', // Date object
author: 'Luke',
message: 'Hey how are you?',
},
{
date: '2018-06-02T23:48:00.000Z', // Date object
author: 'Joe',
message: 'All good, thanks',
},
];In the case of a system message, the author will be System
[
{
date: '2018-06-02T22:45:00.000Z', // Date object
author: 'System',
message: 'You created group "Party 🎉"',
},
];API
parseString(string, [options]) → Promise
string
Type: string
Raw string of the WhatsApp conversation
options
Type: object
Options
| Name | Type | Default | Description |
|---|---|---|---|
| daysFirst | Boolean |
undefined |
Specify if your log file's date starts with a day (true) or a month (false). Manually specifying this may improve performance. By default the program will try to infer this information using 3 different methods (look at date.js for the implementation), if all fails it defaults to interpret the first digit as the day. |
How to export WhatsApp chats
Technologies used
- Testing: Jest
- Code formatting: Prettier
- Linting: ESLint (with Airbnb rules)
Requirements
Node
Node.js >= 8.3.0
Browser
This package is written in ES6 and transpiled to ES5.
It should work in all relevant browsers but at the moment I have no time to test it and provide an official compatibility table. So no guarantees, sorry.