JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 215
  • Score
    100M100P100Q96512F
  • License MIT

A package to parse WhatsApp chats

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

Greenkeeper badge CircleCI

A package to parse WhatsApp chat logs 💬

Install

$ npm install whatsapp-chat-parser

Usage

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

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.

Changelog

CHANGELOG

License

MIT