Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/archive/tutorial/data/tcl/irk/lib/irkstate.tcl @ 12175

Last change on this file since 12175 was 5781, checked in by rgrieder, 15 years ago

Reverted trunk again. We might want to find a way to delete these revisions again (x3n's changes are still available as diff in the commit mails).

  • Property svn:eol-style set to native
File size: 4.7 KB
Line 
1# irkstate.tcl:
2#
3# This file defines the contents of the ::irk::state array
4
5namespace 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}
Note: See TracBrowser for help on using the repository browser.