| [5700] | 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 | } | 
|---|