Chat Relater

Chat Relater is a tool consisting of two command-line scripts:

  • The analyzer extracts user relations from chat logs. The gained data is serialized as JSON.
  • The visualizer takes that data, generates a DOT file, and calls the GraphViz application to render the graph in the requested output format (e. g. PDF, PNG, SVG).

It is actually a conceptual clone of the PieSpy Social Network Bot. However, Chat Relater does not act as an IRC bot (although this could be easily accomplished by making use of the irc package), but therefore allows to be run on any logfiles that produce similar output to those created by XChat. Of course, this includes logs from Jabber, SILC or any other communication (but it might require some minor changes to the log reader).

The GraphViz usage is pretty basic and output may be improved somehow, but so far, the graphs created by PieSpy look much nicer.


Python 2.7+ or 3.3+ is required.

The required Python packages can be installed via pip:

$ pip install -r requirements.txt


To run tests, install the dependencies once, then run tests with tox:

$ pip install -r requirements-test.txt
$ tox


Run the analyzer on one or more log files, saving the intermediate results to another file (chat.json):

$ ./ -o chat.json chat_today.log chat_yesterday.log

Create a nice graph (using the 'twopi' program) from the results (chat.json) and save it to a PNG image (graph.png):

$ ./ -f png -p twopi chat.json graph

And intermediate file containing the 'dot' description (graph) will be created in the process.