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 |
cefa0900 | 20 | endofwhois: onWhoisEnd,\r |
5989f3f4 JA |
21 | whowas: onWhoWas,\r |
22 | endofwhowas: onWhoWasEnd,\r | |
23 | wasnosuchnick: onWasNoSuchNick,\r | |
635e02c3 D |
24 | notice: onNotice,\r |
25 | ctcp_response: onCtcpResponse,\r | |
26 | privmsg: onPrivmsg,\r | |
27 | ctcp_request: onCtcpRequest,\r | |
28 | mode: onMode\r | |
29 | };\r | |
d9285da9 | 30 | EventBinder.bindIrcEvents('user ' + this.nick, this.irc_events, this, irc_connection);\r |
692163ca JA |
31 | };\r |
32 | \r | |
692163ca | 33 | \r |
2a8d2d5f | 34 | module.exports = IrcUser;\r |
692163ca | 35 | \r |
635e02c3 | 36 | \r |
cefa0900 | 37 | IrcUser.prototype.dispose = function () {\r |
d9285da9 | 38 | EventBinder.unbindIrcEvents('user ' + this.nick, this.irc_events, this.irc_connection);\r |
635e02c3 | 39 | this.irc_connection = undefined;\r |
692163ca JA |
40 | };\r |
41 | \r | |
635e02c3 | 42 | \r |
092fae2f | 43 | function onNick(event) {\r |
692163ca JA |
44 | this.irc_connection.clientEvent('nick', {\r |
45 | nick: event.nick,\r | |
46 | ident: event.ident,\r | |
47 | hostname: event.hostname,\r | |
48 | newnick: event.newnick\r | |
49 | });\r | |
441f18aa D |
50 | \r |
51 | // TODO: uncomment when using an IrcUser per nick\r | |
d9285da9 | 52 | //EventBinder.unbindIrcEvents('user ' + this.nick, this.irc_events, irc_connection);\r |
441f18aa | 53 | //this.nick = event.newnick;\r |
d9285da9 | 54 | //EventBinder.bindIrcEvents('user ' + this.nick, this.irc_events, this, irc_connection);\r |
32a09dc1 | 55 | }\r |
692163ca | 56 | \r |
092fae2f | 57 | function onAway(event) {\r |
692163ca JA |
58 | this.irc_connection.clientEvent('away', {\r |
59 | nick: event.nick,\r | |
60 | msg: event.msg\r | |
61 | });\r | |
32a09dc1 | 62 | }\r |
692163ca | 63 | \r |
092fae2f | 64 | function onQuit(event) {\r |
692163ca JA |
65 | this.irc_connection.clientEvent('quit', {\r |
66 | nick: event.nick,\r | |
67 | ident: event.ident,\r | |
68 | hostname: event.hostname,\r | |
69 | message: event.trailing\r | |
70 | });\r | |
32a09dc1 | 71 | }\r |
692163ca | 72 | \r |
092fae2f | 73 | function onWhoisUser(event) {\r |
692163ca JA |
74 | this.irc_connection.clientEvent('whois', {\r |
75 | nick: event.nick,\r | |
76 | ident: event.ident,\r | |
77 | host: event.host,\r | |
78 | msg: event.msg,\r | |
79 | end: false\r | |
80 | });\r | |
32a09dc1 | 81 | }\r |
692163ca | 82 | \r |
f701d5ba D |
83 | function onWhoisAway(event) {\r |
84 | this.irc_connection.clientEvent('whois', {\r | |
85 | nick: event.nick,\r | |
86 | away_reason: event.reason,\r | |
87 | end: false\r | |
88 | });\r | |
32a09dc1 | 89 | }\r |
f701d5ba | 90 | \r |
092fae2f | 91 | function onWhoisServer(event) {\r |
692163ca JA |
92 | this.irc_connection.clientEvent('whois', {\r |
93 | nick: event.nick,\r | |
94 | irc_server: event.irc_server,\r | |
5989f3f4 | 95 | server_info: event.server_info,\r |
692163ca JA |
96 | end: false\r |
97 | });\r | |
32a09dc1 | 98 | }\r |
692163ca | 99 | \r |
092fae2f | 100 | function onWhoisOperator(event) {\r |
692163ca JA |
101 | this.irc_connection.clientEvent('whois', {\r |
102 | nick: event.nick,\r | |
103 | msg: event.msg,\r | |
104 | end: false\r | |
105 | });\r | |
32a09dc1 | 106 | }\r |
692163ca | 107 | \r |
092fae2f | 108 | function onWhoisChannels(event) {\r |
692163ca JA |
109 | this.irc_connection.clientEvent('whois', {\r |
110 | nick: event.nick,\r | |
111 | chans: event.chans,\r | |
112 | end: false\r | |
113 | });\r | |
32a09dc1 | 114 | }\r |
692163ca | 115 | \r |
092fae2f | 116 | function onWhoisModes(event) {\r |
692163ca JA |
117 | this.irc_connection.clientEvent('whois', {\r |
118 | nick: event.nick,\r | |
119 | msg: event.msg,\r | |
120 | end: false\r | |
121 | });\r | |
32a09dc1 | 122 | }\r |
692163ca | 123 | \r |
cefa0900 | 124 | function onWhoisIdle(event) {\r |
692163ca JA |
125 | this.irc_connection.clientEvent('whois', {\r |
126 | nick: event.nick,\r | |
127 | idle: event.idle,\r | |
128 | logon: event.logon || undefined,\r | |
129 | end: false\r | |
130 | });\r | |
32a09dc1 | 131 | }\r |
692163ca | 132 | \r |
092fae2f | 133 | function onWhoisRegNick(event) {\r |
692163ca JA |
134 | this.irc_connection.clientEvent('whois', {\r |
135 | nick: event.nick,\r | |
136 | msg: event.msg,\r | |
137 | end: false\r | |
138 | });\r | |
32a09dc1 | 139 | }\r |
692163ca | 140 | \r |
092fae2f | 141 | function onWhoisEnd(event) {\r |
692163ca JA |
142 | this.irc_connection.clientEvent('whois', {\r |
143 | nick: event.nick,\r | |
144 | msg: event.msg,\r | |
145 | end: true\r | |
146 | });\r | |
32a09dc1 | 147 | }\r |
692163ca | 148 | \r |
5989f3f4 JA |
149 | function onWhoWas(event) {\r |
150 | this.irc_connection.clientEvent('whowas', {\r | |
151 | nick: event.nick,\r | |
152 | ident: event.user,\r | |
153 | host: event.host,\r | |
154 | real_name: event.real_name,\r | |
155 | end: false\r | |
156 | });\r | |
157 | }\r | |
158 | \r | |
159 | function onWasNoSuchNick(event) {\r | |
160 | this.irc_connection.clientEvent('whowas', {\r | |
161 | nick: event.nick,\r | |
162 | end: false\r | |
163 | });\r | |
164 | }\r | |
165 | \r | |
166 | function onWhoWasEnd(event) {\r | |
167 | this.irc_connection.clientEvent('whowas', {\r | |
168 | nick: event.nick,\r | |
169 | end: true\r | |
170 | });\r | |
171 | }\r | |
172 | \r | |
092fae2f | 173 | function onNotice(event) {\r |
692163ca | 174 | this.irc_connection.clientEvent('notice', {\r |
0190c2c9 | 175 | from_server: event.from_server,\r |
692163ca JA |
176 | nick: event.nick,\r |
177 | ident: event.ident,\r | |
178 | hostname: event.hostname,\r | |
179 | target: event.target,\r | |
180 | msg: event.msg\r | |
181 | });\r | |
32a09dc1 | 182 | }\r |
692163ca | 183 | \r |
092fae2f | 184 | function onCtcpResponse(event) {\r |
692163ca JA |
185 | this.irc_connection.clientEvent('ctcp_response', {\r |
186 | nick: event.nick,\r | |
187 | ident: event.ident,\r | |
188 | hostname: event.hostname,\r | |
189 | channel: event.channel,\r | |
190 | msg: event.msg\r | |
191 | });\r | |
32a09dc1 | 192 | }\r |
692163ca | 193 | \r |
092fae2f | 194 | function onPrivmsg(event) {\r |
cefa0900 | 195 | this.irc_connection.clientEvent('msg', {\r |
692163ca JA |
196 | nick: event.nick,\r |
197 | ident: event.ident,\r | |
198 | hostname: event.hostname,\r | |
199 | channel: event.channel,\r | |
200 | msg: event.msg\r | |
201 | });\r | |
32a09dc1 | 202 | }\r |
692163ca | 203 | \r |
092fae2f | 204 | function onCtcpRequest(event) {\r |
692163ca JA |
205 | this.irc_connection.clientEvent('ctcp_request', {\r |
206 | nick: event.nick,\r | |
207 | ident: event.ident,\r | |
208 | hostname: event.hostname,\r | |
209 | target: event.target,\r | |
210 | type: event.type,\r | |
211 | msg: event.msg\r | |
212 | });\r | |
32a09dc1 | 213 | }\r |
a7973dfb JA |
214 | \r |
215 | function onMode(event) {\r | |
216 | this.irc_connection.clientEvent('mode', {\r | |
217 | target: event.target,\r | |
218 | nick: event.nick,\r | |
219 | modes: event.modes\r | |
220 | });\r | |
32a09dc1 | 221 | }\r |