Commit 448f6cf8b63f7f1aca7184d9b57735567db1c3cc
1 parent
c385b07e45
Exists in
master
coba perbaikan
Showing 1 changed file with 2 additions and 2 deletions Inline Diff
matrix-util.js
1 | var moment = require('moment'); | 1 | var moment = require('moment'); |
2 | 2 | ||
3 | module.exports = MatrixUtil; | 3 | module.exports = MatrixUtil; |
4 | 4 | ||
5 | function MatrixUtil(options) { | 5 | function MatrixUtil(options) { |
6 | if (!options) { | 6 | if (!options) { |
7 | console.trace('Undefined options'); | 7 | console.trace('Undefined options'); |
8 | process.exit(1); | 8 | process.exit(1); |
9 | } | 9 | } |
10 | 10 | ||
11 | this.matrix = options.matrix; | 11 | this.matrix = options.matrix; |
12 | if (!this.matrix) { | 12 | if (!this.matrix) { |
13 | console.trace("Matrix not set"); | 13 | console.trace("Matrix not set"); |
14 | process.exit(1); | 14 | process.exit(1); |
15 | } | 15 | } |
16 | 16 | ||
17 | this.logger = options.logger; | 17 | this.logger = options.logger; |
18 | if (!this.logger) { | 18 | if (!this.logger) { |
19 | console.trace("Logger not set"); | 19 | console.trace("Logger not set"); |
20 | process.exit(1); | 20 | process.exit(1); |
21 | } | 21 | } |
22 | } | 22 | } |
23 | 23 | ||
24 | MatrixUtil.prototype.updateBuddyState = function(jid, state, statusText, resource) { | 24 | MatrixUtil.prototype.updateBuddyState = function(jid, state, statusText, resource) { |
25 | if (jid == 'undefined') {return; } | 25 | if (jid == 'undefined') {return; } |
26 | 26 | ||
27 | var logger = this.logger; | 27 | var logger = this.logger; |
28 | var matrix = this.matrix; | 28 | var matrix = this.matrix; |
29 | 29 | ||
30 | logger.verbose('Buddy state change', {jid: jid, state: state, statusText: statusText, resource: resource}); | 30 | logger.verbose('Buddy state change', {jid: jid, state: state, statusText: statusText, resource: resource}); |
31 | 31 | ||
32 | if (!matrix) { | 32 | if (!matrix) { |
33 | return; | 33 | return; |
34 | } | 34 | } |
35 | 35 | ||
36 | if (!matrix.buddies) { | 36 | if (!matrix.buddies) { |
37 | matrix.buddies = {}; | 37 | matrix.buddies = {}; |
38 | } | 38 | } |
39 | 39 | ||
40 | if (!matrix.buddies[jid]) { | 40 | if (!matrix.buddies[jid]) { |
41 | matrix.buddies[jid] = {resources: {}}; | 41 | matrix.buddies[jid] = {resources: {}}; |
42 | } | 42 | } |
43 | 43 | ||
44 | matrix.buddies[jid]['resources'][resource] = { | 44 | matrix.buddies[jid]['resources'][resource] = { |
45 | state: state, | 45 | state: state, |
46 | statusText: statusText, | 46 | statusText: statusText, |
47 | lastUpdate: moment().format('YYYY-MM-DD HH:mm:ss') | 47 | lastUpdate: moment().format('YYYY-MM-DD HH:mm:ss') |
48 | } | 48 | } |
49 | 49 | ||
50 | if (resource != 'undefined' && matrix.buddies[jid].resources.undefined) { | 50 | if (resource != 'undefined' && matrix.buddies[jid].resources['undefined']) { |
51 | try { | 51 | try { |
52 | delete matrix.buddies[jid].resources.undefined; | 52 | delete matrix.buddies[jid].resources.['undefined']; |
53 | } | 53 | } |
54 | catch(e) {}; | 54 | catch(e) {}; |
55 | } | 55 | } |
56 | } | 56 | } |
57 | 57 | ||
58 | MatrixUtil.prototype.isAFriend = function(jid) { | 58 | MatrixUtil.prototype.isAFriend = function(jid) { |
59 | var matrix = this.matrix; | 59 | var matrix = this.matrix; |
60 | 60 | ||
61 | if (!matrix) { return false; }; | 61 | if (!matrix) { return false; }; |
62 | if (!matrix.buddies) { return false; } | 62 | if (!matrix.buddies) { return false; } |
63 | if (!matrix.buddies[jid]) { return false; } | 63 | if (!matrix.buddies[jid]) { return false; } |
64 | 64 | ||
65 | return true; | 65 | return true; |
66 | } | 66 | } |
67 | 67 | ||
68 | MatrixUtil.prototype.isPartnerOffline = function(partner) { | 68 | MatrixUtil.prototype.isPartnerOffline = function(partner) { |
69 | var matrix = this.matrix; | 69 | var matrix = this.matrix; |
70 | var logger = this.logger; | 70 | var logger = this.logger; |
71 | 71 | ||
72 | if (!matrix) { return false; } | 72 | if (!matrix) { return false; } |
73 | 73 | ||
74 | if (!matrix.buddies[partner]) { return false; } | 74 | if (!matrix.buddies[partner]) { return false; } |
75 | if (!matrix.buddies[partner].resources) { return false; }; | 75 | if (!matrix.buddies[partner].resources) { return false; }; |
76 | 76 | ||
77 | var resources = matrix.buddies[partner].resources; | 77 | var resources = matrix.buddies[partner].resources; |
78 | for (var key in resources) { | 78 | for (var key in resources) { |
79 | if (resources.hasOwnProperty(key)) { | 79 | if (resources.hasOwnProperty(key)) { |
80 | var resource = resources[key]; | 80 | var resource = resources[key]; |
81 | if (resources[key].state == 'online') { | 81 | if (resources[key].state == 'online') { |
82 | return false; | 82 | return false; |
83 | } | 83 | } |
84 | } | 84 | } |
85 | } | 85 | } |
86 | logger.verbose('Offline partner detected: ' + partner); | 86 | logger.verbose('Offline partner detected: ' + partner); |
87 | return true; | 87 | return true; |
88 | } | 88 | } |
89 | 89 | ||
90 | MatrixUtil.prototype.updateLastIncoming = function(sender, msg) { | 90 | MatrixUtil.prototype.updateLastIncoming = function(sender, msg) { |
91 | var matrix = this.matrix; | 91 | var matrix = this.matrix; |
92 | 92 | ||
93 | if (!matrix) { | 93 | if (!matrix) { |
94 | return; | 94 | return; |
95 | } | 95 | } |
96 | 96 | ||
97 | if (!matrix.buddies) { | 97 | if (!matrix.buddies) { |
98 | matrix.buddies = {}; | 98 | matrix.buddies = {}; |
99 | } | 99 | } |
100 | 100 | ||
101 | if (!matrix.buddies[sender]) { | 101 | if (!matrix.buddies[sender]) { |
102 | matrix.buddies[sender] = {}; | 102 | matrix.buddies[sender] = {}; |
103 | } | 103 | } |
104 | 104 | ||
105 | matrix.buddies[sender].lastIncoming = { | 105 | matrix.buddies[sender].lastIncoming = { |
106 | msg: msg, | 106 | msg: msg, |
107 | lastUpdate: moment().format('YYYY-MM-DD HH:mm:ss') | 107 | lastUpdate: moment().format('YYYY-MM-DD HH:mm:ss') |
108 | } | 108 | } |
109 | } | 109 | } |
110 | 110 | ||
111 | MatrixUtil.prototype.updateLastOutgoing = function(destination, msg) { | 111 | MatrixUtil.prototype.updateLastOutgoing = function(destination, msg) { |
112 | if (!matrix) { | 112 | if (!matrix) { |
113 | return; | 113 | return; |
114 | } | 114 | } |
115 | 115 | ||
116 | if (!matrix.buddies) { | 116 | if (!matrix.buddies) { |
117 | matrix.buddies = {}; | 117 | matrix.buddies = {}; |
118 | } | 118 | } |
119 | 119 | ||
120 | if (!matrix.buddies[destination]) { | 120 | if (!matrix.buddies[destination]) { |
121 | matrix.buddies[destination] = {}; | 121 | matrix.buddies[destination] = {}; |
122 | } | 122 | } |
123 | 123 | ||
124 | matrix.buddies[destination].lastOutgoing = { | 124 | matrix.buddies[destination].lastOutgoing = { |
125 | msg: msg, | 125 | msg: msg, |
126 | lastUpdate: moment().format('YYYY-MM-DD HH:mm:ss') | 126 | lastUpdate: moment().format('YYYY-MM-DD HH:mm:ss') |
127 | } | 127 | } |
128 | } | 128 | } |
129 | 129 |