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