This repository was archived by the owner on May 8, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathdataLogging.js
More file actions
122 lines (94 loc) · 2.52 KB
/
dataLogging.js
File metadata and controls
122 lines (94 loc) · 2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
const fs = require('fs');
var logGlobalRoomEvent = function(...args) {
var line = Date.now();
for(var i in args) {
var arg = String(args[i]);
arg.replace('\t', '\\t');
arg.replace('\n', '\\n');
line = line + '\t' + args[i]
}
var rooms = require('./chatRoom').getAll();
for(var i in rooms) {
var room = rooms[i];
var file = getRoomWriteFile(room.id);
fs.appendFile(file, line + '\n', function (err) {
//if (err) throw err;
});
}
}
var logRoomEvent = function(id, ...args) {
var line = Date.now();
for(var i in args) {
var arg = String(args[i]);
arg.replace('\t', '\\t');
arg.replace('\n', '\\n');
line = line + '\t' + args[i]
}
var file = getRoomWriteFile(id);
fs.appendFile(file, line + '\n', function (err) {
//if (err) throw err;
});
}
var logUserEvent = function(blid, ...args) {
//types
// connection.auth.result <result> <username> <ip> <version>
// connection.close <message?>
//
// room.enter <id>
// room.message <id> <message>
// room.leave <id>
// room.kicked <id> <reason>
//
// rooms.banned <duration> <reason>
var line = Date.now();
for(var i in args) {
var arg = String(args[i]);
arg.replace('\t', '\\t');
arg.replace('\n', '\\n');
line = line + '\t' + args[i]
}
var file = getUserWriteFile(blid);
fs.appendFile(file, line + '\n', function (err) {
//if (err) throw err;
});
}
var getDateString = function(time = null) {
var date;
if(time == null) {
date = new Date();
} else {
date = new Date(time);
}
var fy = String(date.getFullYear());
var mo = String((date.getMonth()+1));
var da = String(date.getDate());
if(mo.length == 1) {
mo = "0" + mo;
}
if(da.length == 1) {
da = "0" + da;
}
return fy + "-" + mo + "-" + da;
}
var getRoomWriteFile = function(id, time = null) {
//gets the appropriate write file based on date
var dateStr = getDateString(time);
var folder = __dirname + '/log/room/' + id + '/';
var file = folder + dateStr + '.log';
mkdirp.sync(folder);
return file;
}
var getUserWriteFile = function(id, time = null) {
//gets the appropriate write file based on date
var dateStr = getDateString(time);
var folder = __dirname + '/log/user/' + id + '/';
var file = folder + dateStr + '.log';
mkdirp.sync(folder);
return file;
}
const mkdirp = require('mkdirp');
mkdirp.sync(__dirname + '/log/');
try {
fs.chmodSync(__dirname + '/log/', '0777');
} catch(e) {}
module.exports = {logGlobalRoomEvent, logRoomEvent, logUserEvent};