| 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 | } | 
|---|