Commit | Line | Data |
---|---|---|
2a8d2d5f | 1 | var util = require('util'),\r |
635e02c3 | 2 | EventBinder = require('./eventbinder.js');\r |
2a8d2d5f | 3 | \r |
692163ca JA |
4 | var IrcUser = function (irc_connection, nick) {\r |
5 | this.irc_connection = irc_connection;\r | |
6 | this.nick = nick;\r | |
32a09dc1 | 7 | \r |
635e02c3 D |
8 | this.irc_events = {\r |
9 | nick: onNick,\r | |
10 | away: onAway,\r | |
cefa0900 | 11 | quit: onQuit,\r |
635e02c3 | 12 | whoisuser: onWhoisUser,\r |
f701d5ba | 13 | whoisaway: onWhoisAway,\r |
635e02c3 D |
14 | whoisoperator: onWhoisOperator,\r |
15 | whoischannels: onWhoisChannels,\r | |
16 | whoismodes: onWhoisModes,\r | |
17 | whoisidle: onWhoisIdle,\r | |
cefa0900 | 18 | whoisregnick: onWhoisRegNick,\r |
5989f3f4 | 19 | whoisserver: onWhoisServer,\r |
3d753975 D |
20 | whoishost: onWhoisHost,\r |
21 | whoissecure: onWhoisSecure,\r | |
22 | whoisaccount: onWhoisAccount,\r | |
cefa0900 | 23 | endofwhois: onWhoisEnd,\r |
5989f3f4 JA |
24 | whowas: onWhoWas,\r |
25 | endofwhowas: onWhoWasEnd,\r | |
26 | wasnosuchnick: onWasNoSuchNick,\r | |
635e02c3 D |
27 | notice: onNotice,\r |
28 | ctcp_response: onCtcpResponse,\r | |
29 | privmsg: onPrivmsg,\r | |
30 | ctcp_request: onCtcpRequest,\r | |
31 | mode: onMode\r | |
32 | };\r | |
d9285da9 | 33 | EventBinder.bindIrcEvents('user ' + this.nick, this.irc_events, this, irc_connection);\r |
692163ca JA |
34 | };\r |
35 | \r | |
692163ca | 36 | \r |
2a8d2d5f | 37 | module.exports = IrcUser;\r |
692163ca | 38 | \r |
635e02c3 | 39 | \r |
cefa0900 | 40 | IrcUser.prototype.dispose = function () {\r |
d9285da9 | 41 | EventBinder.unbindIrcEvents('user ' + this.nick, this.irc_events, this.irc_connection);\r |
635e02c3 | 42 | this.irc_connection = undefined;\r |
692163ca JA |
43 | };\r |
44 | \r | |
635e02c3 | 45 | \r |
092fae2f | 46 | function onNick(event) {\r |
692163ca JA |
47 | this.irc_connection.clientEvent('nick', {\r |
48 | nick: event.nick,\r | |
49 | ident: event.ident,\r | |
50 | hostname: event.hostname,\r | |
d10c74a6 JA |
51 | newnick: event.newnick,\r |
52 | time: event.time\r | |
692163ca | 53 | });\r |
441f18aa D |
54 | \r |
55 | // TODO: uncomment when using an IrcUser per nick\r | |
d9285da9 | 56 | //EventBinder.unbindIrcEvents('user ' + this.nick, this.irc_events, irc_connection);\r |
441f18aa | 57 | //this.nick = event.newnick;\r |
d9285da9 | 58 | //EventBinder.bindIrcEvents('user ' + this.nick, this.irc_events, this, irc_connection);\r |
32a09dc1 | 59 | }\r |
692163ca | 60 | \r |
092fae2f | 61 | function onAway(event) {\r |
692163ca JA |
62 | this.irc_connection.clientEvent('away', {\r |
63 | nick: event.nick,\r | |
d10c74a6 JA |
64 | msg: event.msg,\r |
65 | time: event.time\r | |
692163ca | 66 | });\r |
32a09dc1 | 67 | }\r |
692163ca | 68 | \r |
092fae2f | 69 | function onQuit(event) {\r |
692163ca JA |
70 | this.irc_connection.clientEvent('quit', {\r |
71 | nick: event.nick,\r | |
72 | ident: event.ident,\r | |
73 | hostname: event.hostname,\r | |
d10c74a6 JA |
74 | message: event.trailing,\r |
75 | time: event.time\r | |
692163ca | 76 | });\r |
32a09dc1 | 77 | }\r |
692163ca | 78 | \r |
092fae2f | 79 | function onWhoisUser(event) {\r |
692163ca JA |
80 | this.irc_connection.clientEvent('whois', {\r |
81 | nick: event.nick,\r | |
82 | ident: event.ident,\r | |
83 | host: event.host,\r | |
84 | msg: event.msg,\r | |
85 | end: false\r | |
86 | });\r | |
32a09dc1 | 87 | }\r |
692163ca | 88 | \r |
f701d5ba D |
89 | function onWhoisAway(event) {\r |
90 | this.irc_connection.clientEvent('whois', {\r | |
91 | nick: event.nick,\r | |
92 | away_reason: event.reason,\r | |
93 | end: false\r | |
94 | });\r | |
32a09dc1 | 95 | }\r |
f701d5ba | 96 | \r |
092fae2f | 97 | function onWhoisServer(event) {\r |
692163ca JA |
98 | this.irc_connection.clientEvent('whois', {\r |
99 | nick: event.nick,\r | |
100 | irc_server: event.irc_server,\r | |
5989f3f4 | 101 | server_info: event.server_info,\r |
692163ca JA |
102 | end: false\r |
103 | });\r | |
32a09dc1 | 104 | }\r |
692163ca | 105 | \r |
092fae2f | 106 | function onWhoisOperator(event) {\r |
692163ca JA |
107 | this.irc_connection.clientEvent('whois', {\r |
108 | nick: event.nick,\r | |
109 | msg: event.msg,\r | |
110 | end: false\r | |
111 | });\r | |
32a09dc1 | 112 | }\r |
692163ca | 113 | \r |
092fae2f | 114 | function onWhoisChannels(event) {\r |
692163ca JA |
115 | this.irc_connection.clientEvent('whois', {\r |
116 | nick: event.nick,\r | |
117 | chans: event.chans,\r | |
118 | end: false\r | |
119 | });\r | |
32a09dc1 | 120 | }\r |
692163ca | 121 | \r |
092fae2f | 122 | function onWhoisModes(event) {\r |
692163ca JA |
123 | this.irc_connection.clientEvent('whois', {\r |
124 | nick: event.nick,\r | |
125 | msg: event.msg,\r | |
126 | end: false\r | |
127 | });\r | |
32a09dc1 | 128 | }\r |
692163ca | 129 | \r |
cefa0900 | 130 | function onWhoisIdle(event) {\r |
692163ca JA |
131 | this.irc_connection.clientEvent('whois', {\r |
132 | nick: event.nick,\r | |
133 | idle: event.idle,\r | |
134 | logon: event.logon || undefined,\r | |
135 | end: false\r | |
136 | });\r | |
32a09dc1 | 137 | }\r |
692163ca | 138 | \r |
092fae2f | 139 | function onWhoisRegNick(event) {\r |
692163ca JA |
140 | this.irc_connection.clientEvent('whois', {\r |
141 | nick: event.nick,\r | |
142 | msg: event.msg,\r | |
143 | end: false\r | |
144 | });\r | |
32a09dc1 | 145 | }\r |
692163ca | 146 | \r |
3d753975 D |
147 | function onWhoisHost(event) {\r |
148 | this.irc_connection.clientEvent('whois', {\r | |
149 | nick: event.nick,\r | |
150 | msg: event.msg,\r | |
151 | end: false\r | |
152 | });\r | |
153 | }\r | |
154 | \r | |
155 | function onWhoisSecure(event) {\r | |
156 | this.irc_connection.clientEvent('whois', {\r | |
157 | nick: event.nick,\r | |
158 | msg: 'Using a secure connection',\r | |
159 | end: false\r | |
160 | });\r | |
161 | }\r | |
162 | \r | |
163 | function onWhoisAccount(event) {\r | |
164 | this.irc_connection.clientEvent('whois', {\r | |
165 | nick: event.nick,\r | |
166 | msg: 'Logged in as ' + event.account,\r | |
167 | end: false\r | |
168 | });\r | |
169 | }\r | |
170 | \r | |
092fae2f | 171 | function onWhoisEnd(event) {\r |
692163ca JA |
172 | this.irc_connection.clientEvent('whois', {\r |
173 | nick: event.nick,\r | |
174 | msg: event.msg,\r | |
175 | end: true\r | |
176 | });\r | |
32a09dc1 | 177 | }\r |
692163ca | 178 | \r |
5989f3f4 JA |
179 | function onWhoWas(event) {\r |
180 | this.irc_connection.clientEvent('whowas', {\r | |
181 | nick: event.nick,\r | |
182 | ident: event.user,\r | |
183 | host: event.host,\r | |
184 | real_name: event.real_name,\r | |
185 | end: false\r | |
186 | });\r | |
187 | }\r | |
188 | \r | |
189 | function onWasNoSuchNick(event) {\r | |
190 | this.irc_connection.clientEvent('whowas', {\r | |
191 | nick: event.nick,\r | |
192 | end: false\r | |
193 | });\r | |
194 | }\r | |
195 | \r | |
196 | function onWhoWasEnd(event) {\r | |
197 | this.irc_connection.clientEvent('whowas', {\r | |
198 | nick: event.nick,\r | |
199 | end: true\r | |
200 | });\r | |
201 | }\r | |
202 | \r | |
092fae2f | 203 | function onNotice(event) {\r |
692163ca | 204 | this.irc_connection.clientEvent('notice', {\r |
0190c2c9 | 205 | from_server: event.from_server,\r |
692163ca JA |
206 | nick: event.nick,\r |
207 | ident: event.ident,\r | |
208 | hostname: event.hostname,\r | |
209 | target: event.target,\r | |
d10c74a6 JA |
210 | msg: event.msg,\r |
211 | time: event.time\r | |
692163ca | 212 | });\r |
32a09dc1 | 213 | }\r |
692163ca | 214 | \r |
092fae2f | 215 | function onCtcpResponse(event) {\r |
692163ca JA |
216 | this.irc_connection.clientEvent('ctcp_response', {\r |
217 | nick: event.nick,\r | |
218 | ident: event.ident,\r | |
219 | hostname: event.hostname,\r | |
220 | channel: event.channel,\r | |
d10c74a6 JA |
221 | msg: event.msg,\r |
222 | time: event.time\r | |
692163ca | 223 | });\r |
32a09dc1 | 224 | }\r |
692163ca | 225 | \r |
092fae2f | 226 | function onPrivmsg(event) {\r |
cefa0900 | 227 | this.irc_connection.clientEvent('msg', {\r |
692163ca JA |
228 | nick: event.nick,\r |
229 | ident: event.ident,\r | |
230 | hostname: event.hostname,\r | |
231 | channel: event.channel,\r | |
d10c74a6 JA |
232 | msg: event.msg,\r |
233 | time: event.time\r | |
692163ca | 234 | });\r |
32a09dc1 | 235 | }\r |
692163ca | 236 | \r |
092fae2f | 237 | function onCtcpRequest(event) {\r |
692163ca JA |
238 | this.irc_connection.clientEvent('ctcp_request', {\r |
239 | nick: event.nick,\r | |
240 | ident: event.ident,\r | |
241 | hostname: event.hostname,\r | |
242 | target: event.target,\r | |
243 | type: event.type,\r | |
d10c74a6 JA |
244 | msg: event.msg,\r |
245 | time: event.time\r | |
692163ca | 246 | });\r |
32a09dc1 | 247 | }\r |
a7973dfb JA |
248 | \r |
249 | function onMode(event) {\r | |
250 | this.irc_connection.clientEvent('mode', {\r | |
251 | target: event.target,\r | |
252 | nick: event.nick,\r | |
d10c74a6 JA |
253 | modes: event.modes,\r |
254 | time: event.time\r | |
a7973dfb | 255 | });\r |
32a09dc1 | 256 | }\r |