Add `/.well-known/matrix/client` for Matrix clients
[gitter.git] / scripts / graphs / chats.js
blob061d17776c30fffc6852d99553e3ac8bb57390fe
1 'use strict';
3 var graphviz = require('graphviz');
4 var fs = require('fs');
6 var persistenceService = require('gitter-web-persistence');
8 // Create digraph G
9 var g = graphviz.digraph('G');
11 var ONE_TO_ONE_EDGE_COLOR = '#0000ff';
13 var d1 = new Date('13 Nov 2014');
14 var d2 = new Date('20 Nov 2014');
16 persistenceService.ChatMessage.aggregate([
17   {
18     $match: {
19       $and: [{ sent: { $gt: d1 } }, { sent: { $lt: d2 } }]
20     }
21   },
22   {
23     $group: {
24       _id: {
25         userId: '$fromUserId',
26         room: '$toTroupeId'
27       },
28       count: {
29         $sum: 1
30       }
31     }
32   }
34   .exec()
35   .then(function(chats) {
36     chats.forEach(function(c) {
37       g.addNode('' + c._id.userId, { shape: 'point' });
38       g.addNode('' + c._id.room, { shape: 'point' });
39       g.addEdge('' + c._id.userId, '' + c._id.room, {
40         color: ONE_TO_ONE_EDGE_COLOR,
41         arrowhead: 'none',
42         weight: c.count
43       });
44     });
46     fs.writeFileSync('chats2.dot', g.to_dot());
47     // g.output( "png", "test01.png" );
48     process.exit(0);
49   })
50   .catch(function(err) {
51     console.error(err);
52     process.exit(1);
53   });