| 1 | # irkstate.tcl: | 
|---|
| 2 | # | 
|---|
| 3 | # This file defines the contents of the ::irk::state array | 
|---|
| 4 |  | 
|---|
| 5 | namespace eval ::irk { | 
|---|
| 6 |  | 
|---|
| 7 |     # The state array contains all the state for the IRK package: | 
|---|
| 8 |     # | 
|---|
| 9 |     # These options can be configured with irk::config: | 
|---|
| 10 |     # | 
|---|
| 11 |     # state(-useragent)         Name of this IRK user agent. | 
|---|
| 12 |     # state(-version)           Version of this IRK user agent. | 
|---|
| 13 |     # | 
|---|
| 14 |     # state(-sockproxy)         Name of SOCKS5 proxy to use (optional). | 
|---|
| 15 |     # state(-socksport)         Port on which SOCKS5 server accepts | 
|---|
| 16 |     #                           connections (optional). | 
|---|
| 17 |     # | 
|---|
| 18 |     # state(-$symsrv,nick)      If set and connect is called without giving | 
|---|
| 19 |     #                           a nick, use this as the nickname. | 
|---|
| 20 |     # state(-$symsrv,user)      If set and connect is called without giving | 
|---|
| 21 |     #                           a user, this is used. Otherwise, if it's not | 
|---|
| 22 |     #                           set when connect is called without a user, | 
|---|
| 23 |     #                           it is set to the given nickname (and used). | 
|---|
| 24 |     # state(-$symsrv,pass)      If set, and connect is called without giving | 
|---|
| 25 |     #                           a password, this is used. | 
|---|
| 26 |     # | 
|---|
| 27 |     # state(-quitmessage)       If set, the message is sent when a connection | 
|---|
| 28 |     #                           is closed, as part of a QUIT command. | 
|---|
| 29 |     # | 
|---|
| 30 |     # These options cannot be configured with irk::config: | 
|---|
| 31 |     # | 
|---|
| 32 |     # state(connections)        A list of all active connections. | 
|---|
| 33 |     # state(dispatcher)         The default command dispatcher (must be set). | 
|---|
| 34 |     # state(action)             The default action (must be set). | 
|---|
| 35 |     # state(servers)            List of known servers (further described in | 
|---|
| 36 |     #                           the symsrv array below). | 
|---|
| 37 |     # | 
|---|
| 38 |     # The following state is kept per connection (identified by $contok): | 
|---|
| 39 |     # | 
|---|
| 40 |     # state($contok,socket)     The socket for a given connection | 
|---|
| 41 |     # state($contok,port)       The port of a given connection | 
|---|
| 42 |     # state($contok,host)       The host of a given connection | 
|---|
| 43 |     # state($contok,symsrv)     The symbolic name of the server for | 
|---|
| 44 |     #                           this connection. | 
|---|
| 45 |     # state($contok,nick)       The nick name used on a given connection | 
|---|
| 46 |     # state($contok,user)       The real user used on a given connection | 
|---|
| 47 |     # state($contok,pass)       The password used on a given connection | 
|---|
| 48 |     # state($contok,disp)       The command dispatcher for the connection | 
|---|
| 49 |     # | 
|---|
| 50 |     # Depending on the dispatcher associated with each connection, there | 
|---|
| 51 |     # may be many more settings of the general form: | 
|---|
| 52 |     # | 
|---|
| 53 |     # state($contok,action,...) | 
|---|
| 54 |     # | 
|---|
| 55 |     # System wide responses to common commands are handled by | 
|---|
| 56 |     # special actions, stored in the state array: | 
|---|
| 57 |     # | 
|---|
| 58 |     # state(PRIVMSG,unsolicited) | 
|---|
| 59 |     #                           Action that responds to unsolicited private | 
|---|
| 60 |     #                           messages directed at this user's nickname. | 
|---|
| 61 |     # state(special,PING)       Responds to PING messages. | 
|---|
| 62 |     # state(special,NOTICE)     Responds to NOTICE messages. | 
|---|
| 63 |     # state(special,ERROR)      Responds to ERROR messages. | 
|---|
| 64 |     # | 
|---|
| 65 |     # The IRK library provides a unified authorization mechanism, implemented | 
|---|
| 66 |     # in irkauth.tcl. The state array contains two settings that affect the | 
|---|
| 67 |     # behavior of the authorization mechanism: | 
|---|
| 68 |     # | 
|---|
| 69 |     # state(auth,save,file)     Name of a file to save the authorization | 
|---|
| 70 |     #                           information in. Defaults to auth.dat in the | 
|---|
| 71 |     #                           directory containing the IRK package. | 
|---|
| 72 |     # state(auth,save,interval) The number of milliseconds that pass between | 
|---|
| 73 |     #                           autosaves of the authorization data. | 
|---|
| 74 |      | 
|---|
| 75 |     variable state | 
|---|
| 76 |     array set state { | 
|---|
| 77 |         -useragent              "Tcl IRK Library" | 
|---|
| 78 |         -version                0.1 | 
|---|
| 79 |         -quitmessage            "gives up the ghost" | 
|---|
| 80 |  | 
|---|
| 81 |         dispatcher              ::irk::defaultDispatcher | 
|---|
| 82 |         action                  ::irk::defaultAction | 
|---|
| 83 |  | 
|---|
| 84 |         cmd,QUIT                ::irk::RECV,QUIT | 
|---|
| 85 |         cmd,JOIN                ::irk::RECV,JOIN | 
|---|
| 86 |         cmd,PART                ::irk::RECV,PART | 
|---|
| 87 |         cmd,MODE                ::irk::RECV,MODE | 
|---|
| 88 |         cmd,NICK                ::irk::RECV,NICK | 
|---|
| 89 |         cmd,PONG                ::irk::RECV,PONG | 
|---|
| 90 |         cmd,PRIVMSG             ::irk::RECV,PRIVMSG | 
|---|
| 91 |         cmd,NOTICE              ::irk::RECV,NOTICE,USER | 
|---|
| 92 |         cmd,KICK                ::irk::RECV,KICK | 
|---|
| 93 |         cmd,001                 ::irk::RECV,MOTD | 
|---|
| 94 |         cmd,002                 ::irk::RECV,MOTD | 
|---|
| 95 |         cmd,003                 ::irk::RECV,MOTD | 
|---|
| 96 |         cmd,004                 ::irk::RECV,MOTD | 
|---|
| 97 |         cmd,005                 ::irk::RECV,MOTD | 
|---|
| 98 |         cmd,250                 ::irk::RECV,MOTD | 
|---|
| 99 |         cmd,251                 ::irk::RECV,MOTD | 
|---|
| 100 |         cmd,252                 ::irk::RECV,MOTD | 
|---|
| 101 |         cmd,253                 ::irk::RECV,MOTD | 
|---|
| 102 |         cmd,254                 ::irk::RECV,MOTD | 
|---|
| 103 |         cmd,255                 ::irk::RECV,MOTD | 
|---|
| 104 |         cmd,265                 ::irk::RECV,MOTD | 
|---|
| 105 |         cmd,266                 ::irk::RECV,MOTD | 
|---|
| 106 |         cmd,301                 ::irk::RECV,AWAY | 
|---|
| 107 |         cmd,307                 ::irk::RECV,WHOIS,NICK,IDENT | 
|---|
| 108 |         cmd,311                 ::irk::RECV,WHOIS,NICK,USER | 
|---|
| 109 |         cmd,312                 ::irk::RECV,WHOIS,NICK,SERVER | 
|---|
| 110 |         cmd,317                 ::irk::RECV,WHOIS,NICK,CONNECTTIME | 
|---|
| 111 |         cmd,318                 ::irk::RECV,WHOIS,NICK,END | 
|---|
| 112 |         cmd,319                 ::irk::RECV,WHOIS,NICK,CHANNELS | 
|---|
| 113 |         cmd,372                 ::irk::RECV,MOTD | 
|---|
| 114 |         cmd,375                 ::irk::RECV,MOTD | 
|---|
| 115 |         cmd,376                 ::irk::RECV,MOTD | 
|---|
| 116 |         cmd,332                 ::irk::RECV,CHANNEL,TOPIC | 
|---|
| 117 |         cmd,333                 ::irk::RECV,CHANNEL,SETBY | 
|---|
| 118 |         cmd,353                 ::irk::RECV,CHANNEL,NAMELIST | 
|---|
| 119 |         cmd,366                 ::irk::RECV,CHANNEL,NAMELIST,END | 
|---|
| 120 |  | 
|---|
| 121 |         cmd,513                 ::irk::RECV,PONG,REQUEST | 
|---|
| 122 |  | 
|---|
| 123 |         special,PING            ::irk::RECV,PING | 
|---|
| 124 |         special,NOTICE          ::irk::RECV,NOTICE | 
|---|
| 125 |         special,ERROR           ::irk::RECV,ERROR | 
|---|
| 126 |  | 
|---|
| 127 |         PRIVMSG,unsolicited     ::irk::RECV,PRIVMSG,unsolicited | 
|---|
| 128 |  | 
|---|
| 129 |         errorhandler            ::irk::echoerror | 
|---|
| 130 |  | 
|---|
| 131 |         auth,save,file          [file join [file dir [info script]] auth.dat] | 
|---|
| 132 |         auth,save,interval      300000 | 
|---|
| 133 |     } | 
|---|
| 134 | } | 
|---|