1 implementation module IRC
5 from StdMisc import undef
7 derive gPrint IRCCommands, IRCReplies, IRCErrors
9 instance toString IRCCommands where toString r = printToString r
10 instance toString IRCReplies where toString r = printToString r
11 instance toString IRCErrors where toString r = printToString r
13 instance fromInt IRCReplies where
21 201 = RPL_TRACECONNECTING
22 202 = RPL_TRACEHANDSHAKE
23 203 = RPL_TRACEUNKNOWN
24 204 = RPL_TRACEOPERATOR
27 207 = RPL_TRACESERVICE
28 208 = RPL_TRACENEWTYPE
30 210 = RPL_TRACERECONNECT
31 211 = RPL_STATSLINKINFO
32 212 = RPL_STATSCOMMANDS
41 253 = RPL_LUSERUNKNOWN
42 254 = RPL_LUSERCHANNELS
58 313 = RPL_WHOISOPERATOR
63 319 = RPL_WHOISCHANNELS
67 324 = RPL_CHANNELMODEIS
74 347 = RPL_ENDOFINVITELIST
76 349 = RPL_ENDOFEXCEPTLIST
84 367 = RPL_ENDOFBANLIST
93 383 = RPL_YOURESERVICE
101 instance toInt IRCReplies where
109 RPL_TRACECONNECTING = 201
110 RPL_TRACEHANDSHAKE = 202
111 RPL_TRACEUNKNOWN = 203
112 RPL_TRACEOPERATOR = 204
114 RPL_TRACESERVER = 206
115 RPL_TRACESERVICE = 207
116 RPL_TRACENEWTYPE = 208
118 RPL_TRACERECONNECT = 210
119 RPL_STATSLINKINFO = 211
120 RPL_STATSCOMMANDS = 212
124 RPL_SERVLISTEND = 234
125 RPL_STATSUPTIME = 242
127 RPL_LUSERCLIENT = 251
129 RPL_LUSERUNKNOWN = 253
130 RPL_LUSERCHANNELS = 254
145 RPL_WHOISSERVER = 312
146 RPL_WHOISOPERATOR = 313
151 RPL_WHOISCHANNELS = 319
155 RPL_CHANNELMODEIS = 324
162 RPL_ENDOFINVITELIST = 347
164 RPL_ENDOFEXCEPTLIST = 349
172 RPL_ENDOFBANLIST = 367
173 RPL_ENDOFWHOWAS = 369
181 RPL_YOURESERVICE = 383
188 instance fromInt IRCErrors where
189 fromInt r = case r of
191 402 = ERR_NOSUCHSERVER
192 403 = ERR_NOSUCHCHANNEL
193 404 = ERR_CANNOTSENDTOCHAN
194 405 = ERR_TOOMANYCHANNELS
195 406 = ERR_WASNOSUCHNICK
196 407 = ERR_TOOMANYTARGETS
197 408 = ERR_NOSUCHSERVICE
199 411 = ERR_NORECIPIENT
200 412 = ERR_NOTEXTTOSEND
202 414 = ERR_WILDTOPLEVEL
204 421 = ERR_UNKNOWNCOMMAND
206 423 = ERR_NOADMININFO
208 431 = ERR_NONICKNAMEGIVEN
209 432 = ERR_ERRONEUSNICKNAME
210 433 = ERR_NICKNAMEINUSE
211 436 = ERR_NICKCOLLISION
212 437 = ERR_UNAVAILRESOURCE
213 441 = ERR_USERNOTINCHANNEL
214 442 = ERR_NOTONCHANNEL
215 443 = ERR_USERONCHANNEL
217 445 = ERR_SUMMONDISABLED
218 446 = ERR_USERSDISABLED
219 451 = ERR_NOTREGISTERED
220 461 = ERR_NEEDMOREPARAMS
221 462 = ERR_ALREADYREGISTRED
222 463 = ERR_NOPERMFORHOST
223 464 = ERR_PASSWDMISMATCH
224 465 = ERR_YOUREBANNEDCREEP
225 466 = ERR_YOUWILLBEBANNED
227 471 = ERR_CHANNELISFULL
228 472 = ERR_UNKNOWNMODE
229 473 = ERR_INVITEONLYCHAN
230 474 = ERR_BANNEDFROMCHAN
231 475 = ERR_BADCHANNELKEY
232 476 = ERR_BADCHANMASK
233 477 = ERR_NOCHANMODES
234 478 = ERR_BANLISTFULL
235 481 = ERR_NOPRIVILEGES
236 482 = ERR_CHANOPRIVSNEEDED
237 483 = ERR_CANTKILLSERVER
239 485 = ERR_UNIQOPPRIVSNEEDED
241 501 = ERR_UMODEUNKNOWNFLAG
242 502 = ERR_USERSDONTMATCH
244 instance toInt IRCErrors where
247 ERR_NOSUCHSERVER = 402
248 ERR_NOSUCHCHANNEL = 403
249 ERR_CANNOTSENDTOCHAN = 404
250 ERR_TOOMANYCHANNELS = 405
251 ERR_WASNOSUCHNICK = 406
252 ERR_TOOMANYTARGETS = 407
253 ERR_NOSUCHSERVICE = 408
255 ERR_NORECIPIENT = 411
256 ERR_NOTEXTTOSEND = 412
258 ERR_WILDTOPLEVEL = 414
260 ERR_UNKNOWNCOMMAND = 421
262 ERR_NOADMININFO = 423
264 ERR_NONICKNAMEGIVEN = 431
265 ERR_ERRONEUSNICKNAME = 432
266 ERR_NICKNAMEINUSE = 433
267 ERR_NICKCOLLISION = 436
268 ERR_UNAVAILRESOURCE = 437
269 ERR_USERNOTINCHANNEL = 441
270 ERR_NOTONCHANNEL = 442
271 ERR_USERONCHANNEL = 443
273 ERR_SUMMONDISABLED = 445
274 ERR_USERSDISABLED = 446
275 ERR_NOTREGISTERED = 451
276 ERR_NEEDMOREPARAMS = 461
277 ERR_ALREADYREGISTRED = 462
278 ERR_NOPERMFORHOST = 463
279 ERR_PASSWDMISMATCH = 464
280 ERR_YOUREBANNEDCREEP = 465
281 ERR_YOUWILLBEBANNED = 466
283 ERR_CHANNELISFULL = 471
284 ERR_UNKNOWNMODE = 472
285 ERR_INVITEONLYCHAN = 473
286 ERR_BANNEDFROMCHAN = 474
287 ERR_BADCHANNELKEY = 475
288 ERR_BADCHANMASK = 476
289 ERR_NOCHANMODES = 477
290 ERR_BANLISTFULL = 478
291 ERR_NOPRIVILEGES = 481
292 ERR_CHANOPRIVSNEEDED = 482
293 ERR_CANTKILLSERVER = 483
295 ERR_UNIQOPPRIVSNEEDED = 485
297 ERR_UMODEUNKNOWNFLAG = 501
298 ERR_USERSDONTMATCH = 502