This is a CLI tool designed to provide statistics about Facebook Messenger group chats, when fed a message.json
file (which can be obtained by downloading your data from facebook), it will spit out:
For each member, ordered by quantity
- How many messages they have sent
- How many gifs they have sent (and what percent of all their messages are gifs)
- How many images they have sent (and what percent of all their messages are images)
- How many links they have sent (and what percent of all their messages are links)
- How many images they have sent (and what percent of all their messages are images)
- How many messages IN ALL CAPS they have sent (and what percent of all their messages are in all caps)
- How much they have sweared (and what percent of all their messages contain profanity)
- How many times they have given each type of reaction
- How many times they have received each type of reaction (and what percent of their messages have received them)
- The average length of their messages (in characters)
For each member, individually
- What their most received reaction is
- What their most given reaction is
- A list of who they talk with the most
Overall:
- The appreciation meter of each user (calculated from the reactions to their messages, how often they have been kicked out, and how many messages they have sent)
- Who is the most ignored (an ignored message is one without a response two minutes later)
- Who has been kicked out the most
This tool also generates an output.html
file in the directory it's run from, which has some really cool plots and the entire console output.
Each file has a column for each user in the conversation, and a row for each date between those of the first and last messages sent to the conversation
messages.csv
: The amount of messages sent by each userappreciation.csv
: The cummulative appreciation meter of each userlove.csv
: The amount of 😍 reactions received by each userhate.csv
: The amount of 😠 reactions received by each userfunny.csv
: The amount of 😂 reactions received by each userlike.csv
: The amount of 👍 reactions received by each userdislike.csv
: The amount of 👎 reactions received by each usersad.csv
: The amount of 😥 reactions received by each user
If you want to run MessengerAnalysis, you will need to have the .NET Core runtime installed in order to build it (run dotnet build -c Release
in the repository). The app's .dll can then be found in bin/Release/netcoreapp2.1/MessengerAnalysis.dll
. Run it with dotnet MessengerAnalysis.dll
.
This tool swallows up a message.json
file, which you can download from facebook by going to the Your Information page, clicking on "Download Your Information". You should then unselect everything in the list other than "Messages", and choose JSON
from the Format
drop-down. Then click on "Create".
Once you have downloaded your file, unzip it, and navigate to messages\inbox
, and choose whichever conversation you want to analyse. There is your message.json
file.
You can either double-click the .exe and input a file path, or execute it straight from a terminal, the first argument necessarily being the path of the message.json
file.
This tool uses Newtonsoft's JSON.NET, covered by the MIT License:
The MIT License (MIT)
Copyright (c) 2007 James Newton-King
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.