
                          Eggdrop/TCL Manual (FAQ)
                         Version 1.36 (08-Nov-2001)
                 (c) 2001 Efim Shuvikov <boing@amiga.org.ru>
                     http://www.amiga.org.ru/eggtcl.faq


-----=#  #=--------------------------------------------------------

 1.  
    a) 
    b)   Eggdrop
    c)    
    d)  
    e)   Eggdrop
    f) 
    g)  
    h)  CronTab
    i) 
    j) 
    k)   

 2.    

 3. 

 4. 

 5. Botnet
    a) 
    b)    
    c)     
    d)   partyline

 6.    
    a)    
    b)  
    c)     userfile
    d)     
    e)   
    f)     SQL
    g)   ,   
    h)   
    i)   

 7.  

 8. 


-----=#  #=----------------------------------------------------------

         Eggdrop,  
         
      ,  , ,  
 .        
    TCL (Tool Command Language)   
  .


-----=#   Eggdrop #=-------------------------------------------------

 Eggdrop  IRC-   C,      
  TCL (Tool Command Language)    .
 , ,    ,    API   
   C,     ,  TCL-,
       ,     
  ,     ,    Eggdrop,
    ,  Static.


-----=#     #=----------------------------------------------

    Eggdrop  shell. Shell'    
  ( Unix-)        
  (, , ,   ,  
 ).

 , shell-account    :
  1)  (    shell-account')
  2)   (, , )
  3)      (,    )
  4) ""   (     ,
      24h  )

    Unix-   ,   
   AmigaOS,   Windows.


-----=#  Eggdrop #=---------------------------------------------------

    Eggdrop       1993
 .     0.6    ,   ,
   (Robey Pointer).  ,   Eggdrop "" 
 ,    Unrest.    Eggdrop   0.6 
  .

   , Eggdrop      
  IRC.         
 .

   1.2    ,    1.3  
   (Beldin's development team).     
    Eggdrop2.     
  ,    ,  Eggdrop2   ""  .
      1.3.23

   Eggdrop      Eggheads. 
       .  
    CVS (Concurrent Version System),     
 .            .

      Eggdrop:

  1.6 -       (STABLE) 
  1.7 -   (DEVELOPMENT).   " ",
             
         (       TCL),
           .

 :  Eggdrop     ,  
            "Eggdrop soup".


-----=#   Eggdrop #=-------------------------------------------------

 ftp://ftp.eggheads.org/pub/eggdrop/GNU/           
                                                  beta-

 http://johoho.eggheads.org/eggdrop/          
                                                                    

          CVS. 
    ,        
      . ,     
     .    - 
  Eggdrop,          CVS,
    -  (, ) .

         CVS,   
      CVS-.   
   Unix  .      shell
 : cvs

   , -  "command not found",  ,   
     CVS.  .     
  help  cvs,    .

  unix-shell :
  1) 'export CVSROOT=:pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot'
  2)   'cvs login'
  3)     <enter>
  4)  'cvs checkout eggdrop1.6' (  )
  5)        
  6)    'cvs logout'

          
    'cvs update'     
    .


-----=#  #=--------------------------------------------------------

   Eggdrop     TCL ( ,
     ).   TCL   
 shell : tclsh

        "%",  TCL .  ,
  .     TCL: 8.0.x  8.3.x

  TCL     ftp-:
 ftp://ftp.scriptics.com/pub/tcl/

   TCL:
  1)    TCL (tar -zxf tcl8.x.x.tar.gz)
  2)       (cd tcl8.x.x/unix)
  3)  './configure'
  4)  'make'
  5)  'make install'

   /usr/local/lib  libtcl8.x.x.so,  /usr/local/include 
 tcl8.x.x,   /usr/local/bin tcl-shell tclsh.

       TCL   (rpm, tgz, deb).

   Eggdrop   ,      ,  
    .  Eggdrop    :

 Static -   ,  eggdrop + dynamic-,   
   .         
   ,        .  ,  
            
      ,       
  .

 Dynamic -      ( eggdrop  )  
   , -      
  .         
   .    ,    .
    dynamic-  /  .

     :
  1)      ftp (    eggdrop-1.x.x-tar.gz)
  2)    TCL -    (   
     ,     tgz, rpm, deb  ..)
  3)       . (tar -zxf < >)
  4)    : ./configure
            TCL,  :
     ./configure --with-tcllib=<path>/libtcl8x.so --with-tclinc=<path>/tcl.h
      "x"    .
  5)    : make config
        : make iconfig
  6)     dynamic (): make
         static: make static
  7) make install DEST=<path> ( )


-----=#   #=---------------------------------------------

   ,     ,   
  .      eggdrop.conf.complete
  eggdrop.conf    .   :

   1)    Eggdrop: #! <path>/eggdrop
   2)  username : set username
   3)    : set admin
   4)    : logfile
   5)    : set userfile
   6)  /   : listen
   7)    : die "Please edit your config file."
   8)    : set chanfile
   9)  (   )     #lamest
  10)  (   )    #botcentral
  11)   : set nick
  12)   : set altnick
  13)    whois  : set realname
  14)  () IRC-(): set servers
  15)      (   
      filesys): set files-path  set incoming-path
  16)      (    notes)
      set notefile
  17)    :
      die "You didn't edit your config file like you were told, did you?"
  18)  : #checkmodule blowfish
  19) / : source scripts/*

       ,    ,
        .

 :          
           .    : "   
            ?".      "diff",
              unix-.    
           eggdrop.conf.complete,     .
             : eggdrop.conf.old  eggdrop.conf.new
             :
          diff eggdrop.config.old eggdrop.config.new > eggdrop.config.changes
             eggdrop.config.changes    .

 :     /   , 
             ""    ,  
             .
            eggdrop.scripts (    eggdrop.conf) 
               (source scripts/< >).
                      :
          source eggdrop.scripts
                  eggdrop.scripts


-----=#  CronTab #=-------------------------------------------------

  ,    ,     - 
  ,     " " -  
   .     Cron (
  Unix-).

     ,    :

 1)   botchk

        "botchk".   ,   
     .       :

  botdir="/home/eggdrop"
        .

  botscript="eggdrop mybot"
     .       eggdrop,   
    "eggdrop".     ,  "eggdrop < >"

  botname="MyBot"
     .       .

  userfile="mybot.user"
       .   .

   ( root')    /etc/crontab   :

     :
  * * * * * /<>/botchk
     5 :
  */5 * * * * /<>/botchk
     10 :
  0,10,20,30,40,50 * * * * /<>/botchk
     15 :
  0,15,30,45 * * * * /<>/botchk
     30 :
  0,30 * * * * /<>/botchk

     ,         email, 
        : ">/dev/null 2>&1" ( "")
  : */5 * * * * /home/eggdrop/botchk >/dev/null 2>&1


 2)   botchk  autobotchk

           
 botchk.        ,   .
      :

 ./autobotchk < >

            
  :

 ./autobotchk < > -noemail -5

          ,   
 ""  CronTab (      ).


-----=#  #=------------------------------------------------------------

      ""     
    "eggdrop -m".      
   .   :

  1)   'eggdrop -m'
  2)     IRC  :
     '/msg < > hello'
           IRC,  .  .
          "-nt".
  3)       ,   :
     '/msg < > pass <>'
  4)   partyline  DCC Chat-   
        .
  5)  partyline  : .die

    .      "-m" 
     ()  .

 : !        
           "-m",      .
 
     :

 "Hostname self-lookup failed"
       hostname.   ,  
  : set my-hostname <hostname>  set my-ip <ip>

 "Please select an encryption module"
      blowfish.     
   "checkmodule blowfish"      "#" ( ,
   )      -  .

 "Couldn't grab nearby port"
   ,         .
    , :
   a)          
   b)   set my-hostname  set my-ip  
   c)      pid.<botnick>
   "a"     .
   "b"     .
   "c"   .
     ,      "listen", 
          (Botnet)  
     telnet.

 "No userfile found"  "No channel file found"
      .
       "-m".   .
          .
     0644 (rw-r--r--).    ,  
   : set userfile-perm 0644


-----=#  #=-------------------------------------------------------------

            , 
     .   
   :   .     
  ,   "",         
 .

   ():
  n (owner)     .   .
  m (master)    .     
                 .
  t (botnet)    Botnet'a.     .
  x (xfer)       /  / .
  j (janitor)     .  ,
                ,    .
  c (common)      HOSTS .  
                ,    Web-
               IRC,       .
  p (party)         partyline .
  b (bot)      .     .botattr
  u (unshare)         userfile
                 share.
  h (hilite)     bold, inverse,  ..  
               help-  .

   ():
  o (op)                .
  d (deop)               .
  k (kick)         ,      .
  f (friend)         revenge,    
                     .
  m (master)       .    add/delete/modify
                   .
  n (owner)        .     .
  a (auto-op)            .
                  ,      +autoop.
  v (auto-voice)         ,
                      +autovoice.
  g (auto-voice)         .
                  ,     +autovoice.
  q (quiet)             ,  
                  +autovoice.

  :
  h (hub)          -uplink.        , 
                     ,   
                   .
  a (alternate)       hub- .   
                   -hub'.
  l (leaf)          ,   .    
                   ,   .
  s (share)          ,     
                   userfile.
  p (passive)        ,     
                   userfile.
  g (globalshare)    ,     .
                    ,      .
                         +s  |s  .
  i (isolate)        partyline    Botnet'.
  r (reject)           Botnet.  Q-Line.

  :
  t (topic protection)      .
  n (no messaging)             
                         .
  s (secret)                  .
  i (invite only)             .
  p (private)                 
                        .
  m (moderated)              
                          .
  l (limit)                 .
  k (keyword)             .    
                          .

  () :
  r (registered)           IRC-  NickServ  ChanServ.
                          ,  /  
                        .
  v (vhost)                IRC- (  )  .
                          ,    
                          . : 215.41.56.x-12
                          IP- .


-----=#    #=---------------------------------------------------

       ,      
 IRC-:
   eggheads.org                              irc.undernet.org #eggdrop
   eggfaq.com                                    irc.efnet.org #eggfaq
   egghelp.org                                  irc.efnet.org #egghelp
                               irc.amiga.org.ru #eggdrop
   eggdrop.cx                                     irc.gate.ru #eggdrop

      Eggdrop:
 http://www.egghelpforum.com/

    ,     ,    
    : bugs@eggheads.org

             
  ,     ,    .

 http://www.eggheads.org/                        
 http://www.egghelp.org/                      
 http://www.eggfaq.com/                            #EggFAQ
 http://johoho.eggheads.org/eggdrop/        
 http://mars.age.psu.edu/search.html                        TCL-
 ftp://ftp.eggheads.org/pub/eggdrop/scripts/      
 http://www.baschny.de/eggdrop/                                   Ernst'a
 http://www.goblet.net/scripts/                                  Goblet'a
 http://lolstoolz.pwh.ch/indexen.html            Lol's TooLz
 http://www.eggsource.com/                     Eggdrop, BitchX, TCL

    ,       public-, 
     IRC:

 http://seaguard.boom.ru/                                         SG
 http://www.sy-tech.net/                                       Credo
 http://center.nstu.ru/b-on/                                          B-on
 http://bot.net.ru/                                             TAHK


-----=#     #=-----------------------------------

     ,    TCL 
 8.1   Eggdrop       
 (iso8859-1).      TCL   , 
         UTF8.  
            .

     :       /
         .

   100%      ,  
  TCL  8.1  .       , 
      . TCL 8.0     
    ,    ,
        .    TCL
 8.0          ,
   c  TCL 8.1  .      
  .

             
    UTF8  TCL.      Eggdrop 1.6.4,
   1.6.4   ,     ,    1.6.5.
     Eggdrop    .
  ,     ,    -  
   : encoding system iso8859-1
  iso8859-1,     .     
     TCL.

          ""  DCC Chat (Partyline)
   -      ,      
 .     ,      
 .       ""  "".


-----=#  #=------------------------------------------------------

 #1 [8-Jul-2001] SG-bot ping_reply security hole
    :   ping20.tcl  SG   
                      .
    Exploit:      TCL-:
              putserv "PRIVMSG <bot> :\001PING \[restart\]_#chan\001"
              <bot>     .
              \[restart\]     TCL-.
    :    ,   ping20.tcl (  
                  ,   ping20.tcl  SG)
               :
                set reply [expr [unixtime] - $pdelay]
                 : if {[isnumber $pdelay]} {
                :
                if {$reply<30} { putchan $pchan ....... }
              :
                }


-----=#  #=-------------------------------------------------

###        FAQ  Manual :)

 Q:        DCC Chat?
 A: /ctcp <botnick> chat

 Q:     owner'a  ,  ?
 A: 1) ""  (kill -9 <pid->)
    2)    userfile  ("< >.user")
    3)     
    4)       "--PASS"
    5)     "/msg <botnick> pass <password>"

 Q:   CTCP- VERSION  USERINFO?
 A:    :
    set ctcp-version "MyIRC v1.0 pizza"
    set ctcp-userinfo "Kewl bot in the World!"

 Q:    CTCP-Flood  CTCP ?
 A:  "2"   : set ctcp-mode 2

 Q:  ,    ,     .
      ,    ?
 A:    : set nick-len 32

 Q:   .adduser,    "user isn't on the channel".
 A: .+user <nick> <hostmask>
    .chattr <nick> [flags] [#chan]

 Q:      ?
 A: .set nick <newnick>

 Q:        ?
 A:     +n.
    : .+chan <#chan>
       : .-chan <#chan>
     .-chan      .
      "cycle"   /msg <botnick> go <#chan>
       : .chanset <#chan> +inactive

 Q:     +k,  ,     
     ?
 A: .chanset <#chan> chanmode "+k <keyword>"

 Q:       . ?
 A:     botchk .
          .

 Q:      ?
 A:    +autoop    +o.
    .chanset <#chan> +autoop
    .chattr <nick> +o [#chan]
           +o   ,
      autoop     +a.
    .chanset <#chan> -autoop
    .chattr <nick> +a [#chan]

 Q:      ?
 A:    +autovoice    +v.
    .chanset <#chan> +autovoice
    .chattr <nick> +v [#chan]
           +v   ,
      autovoice     +g.
    .chanset <#chan> -autovoice
    .chattr <nick> +g [#chan]

 Q:    +o ,    ! ?
 A: a)   bitch,      +o 
          .   bitch  :
       .chanset <#chan> -bitch
    b)   revenge,      +d 
          .  +d   , 
         revenge    "" .
       , deop'  kick' .   revenge:
       .chanset <#chan> -revenge
    c)    (ChanServ).  ,  
        ,    .    ,
          +nodesynch:
       .chanset <#chan> +nodesynch

 Q:     ,    
        ?
 A:         (  ,  
    )   (   ).   
      "|".     
     :
    .chattr <hand> m|
       :
    .chattr <hand> |m <#chan>
             
      ,      
      ,   .

 Q:      ,  ,
       .   ?
 A:        "chanfile".
         ".chanset <#chan> <argument>"
    ,   +autoop  :
    .chanset <#chan> +autoop

 Q:    ?
 A: .chanset <#chan> chanmode <flags>
    ,      +nt    +mki,
     :
    .chanset <#chan> chanmode +nt-mki
        , :
    .chaninfo <#chan>

 Q:    .relay  ,      :
    "<bot> Hey [1mNick![0m My name is [1mBot1.1[0m".  ?
 A:  .    ANSI  -ANSI .
      : .fixcodes off

 Q:       Telnet.   ,  Bad password, 
     .  .  -!
 A:       "",   
      telnet.     .

 Q:   (eggdrop v1.6.4)  ,   bind   
     .          
    .      ?
 A:   .       1.6.4   
      , 1.6.5  .

 Q:  /    ?
 A:   : .op <nick> [#chan]
    : .deop <nick> [#chan]

 Q:  /    ?
 A:   : .voice <nick> [#chan]
    : .devoice <nick> [#chan]

 Q:     ?
 A: .kick [#chan] <nick> [ ]

 Q:   ?
 A: .kickban [#chan] [-|@]<nick> [comment]
          .
    .+ban <hostmask> [#chan] [%bantime <XdXhXm>] [comment]
      (   bantime) .
          ,   .

 Q:     *.domain.net,    host.domain.net?
 A: .+ban *.domain.net
    .+exempt host.domain.net


-----=# Botnet -  #=-------------------------------------------------

 Botnet'    .      
  Botnet,     .

    Botnet:

 1)      (Sharing).
            (MasterBot),  
     (ShareBots)      .

 2)       partyline.   
         partyline     
      .

 3)   . ,  seen,  
          
        ,       
    ,     Botnet   .    
      .

 :
  .+bot    -    userfile.
             .+bot <botnick> <host:port>
  .-bot    -    userfile.
             .-bot <botnick>
  .botattr -    .
  .chaddr  -   .
             .chaddr <bot> <host:port>
  .link    -  .
             .link <bot>
  .unlink  -  .
             .unlink <bot>
  .bots    -      Botnet.
  .bottree -  Botnet.    ,    
                     Share.
  .botinfo -    .  :  ,
             , , .
  .who     -   .  ,   .botinfo,   
              .
             .who <bot>
  .relay   -     .    
               .      
                partyline   .
  .trace   -      .
             .trace <bot>
  .dccstat -  .    ,  
                  .


-----=# Botnet -     #=----------------------------------

    ,      
 .     userfile  .

 ,    :
  "Azure"   "bot.azurez.net"    "7812"
  "Binny"   "binny.eggy.org"    "4554"

    Azure : .+bot Binny binny.eggy.org:4554
    Binny : .+bot Azure bot.azurez.net:7812

         
  .link
 
   "" ,     
   (Hub). ,   Azure.    Binny
    Azure  userfile   :

 .botattr Azure +h

    "alternate hub".   ,   
  +a.    ,   ,    
 -    .

 ,  Botnet  :

    Azure
     |-- Ado
     |-- Binny 
     `-- Caramba

       :
   Azure: .botattr Ado +h
   Ado: .botattr Azure +h
   Binny: .botattr Azure +h
   Caramba: .botattr Azure +h
   Binny: .botattr Ado +a
   Caramba: .botattr Ado +a

      Azure,  Binny  aramba   Ado.


-----=# Botnet -      #=--------------

    , ,      
  .         userfile
  ,         
 .    .

 !     Sharing    , 
               +h.    
                userfile.  ,
              N1   .

        : Azure  Binny.
 Azure  MasterBot' (  userfile,   
 Passive Share),  Binny - ShareBot' (  userfile , 
  Aggressive Share).

  Azure  :
  1)  Binny  userfile,  .
     .+bot Binny binny.eggy.org:4554
  2)    ShareBot.
     .botattr Binny +s
  3)        Share.
     .botattr Binny |s #channel
        ,      
     .

  Binny  :
  1)  Azure  userfile,  .
     .+bot Azure bot.azurez.net:7812
  2)    MasterBot.
     .botattr Azure +p
  3)      Share.
     .botattr Azure |+s #channel

 :        ,  
          ,    ,   "g"  .
            "global share".     .

 :    +h,   .


-----=# Botnet -   partyline #=---------------------------------------

   ,  ,       
 Botnet'.   partyline      
    partyline.   -  IRC.  partyline
   .

     partyline:
  .chat  -     partyline.
           .chat <channel>
             partyline  (    
            assoc).  partyline    "0".
            ,    ,    partyline:
           .chat off
  .away  -  ,    partyline.
           .away <text>
               away,   -  
           partyline,   .away  .
  .me    -  action   partyline.  /me  IRC.
           .me <text>
  .msg   -    .  /msg  IRC.
           .msg <nick>@<bot> <text>
  .whom  -   ,    partyline.
           .whom <channel>
            channel      
              partyline.
                   :
            @ - 
            + - 
            * - 
              ,     , 
              .
  .note  -    .      
           ,    .
           .note <nick>@<bot> <text>
  .boot  -    partyline.  /kick  IRC.
           .boot <nick> <reason>
  .assoc -  partyline-  .
           .assoc <channel> <name>
                :
           .assoc
               :
           .assoc <channel>


-----=#     #=---------------------------

###        FAQ  Manual :)

 Q: TCL  ?
 A:  :)

 Q:    TCL    ?
 A: http://dev.scriptics.com/
    ftp://ftp.eggheads.org/pub/tcl/
     TCL- - irc.gate.ru #tcl
    Guide To TCL: http://www.suninet.nl/tclguide/

 Q:     TCL?
 A: http://www.florin.ru/win/tcl-tk/I_gu10.htm

 Q:      Eggdrop  ?
 A:     docs/tcl-commands.doc
        : http://bot.net.ru/tcl-commands.rus.txt

 Q:     TCL   ?
 A:    TCL (Tool Command Language)
      .   2001.
      " ". ISBN 5-901321-16-2, : 4000 .
    : 60x84/16, 192 .   50 .
     Bolero: http://www.bolero.ru/catalog/book/pages/pages-1512897.html
     Ozon: http://www.ozon.ru/detail.cfm/ent=2&id=43173
     Mistral: http://www.mistral.ru/content/46250.shtml

 Q:       TCL  Eggdrop?
 A: http://www.egghelpforum.com/


-----=#   #=-------------------------------------------

 Q:      ?
 A: proc myproc {a b c} { ... }
    myproc 1 2 3
     myproc : a=1, b=2, c=3

 Q:   shell-   output  ?
 A:     ,  :
    set output [exec command]
    : set serveruptime [exec uptime]
                , 
       :
    foreach temp [split [exec command] "\r\n"] {
     putserv "PRIVMSG $chan :$temp"
    }

 Q:      ?
 A: if {![catch {expr $var}]} {
    # $var is a number
    } else {
    # $var is not a number
    }

 Q:     bind'  ?
 A: '.binds all'  '.binds <> all' ( '.binds dcc all')

 Q:    "" ?
 A: rename <proc_name> ""

 Q:  / ENV-?
 A:   : set myenv $env(DISPLAY)
    : set env(DISPLAY) unix:0
     : if {[info exists env(VARNAME)]}

 Q:   IP ?
 A: set ip [myip]
    foreach v {d c b a} {
     set $v [expr $ip & 255]
     set ip [expr $ip >> 8]
    }
    set botip "$a.$b.$c.$d"

 Q:        .restart,   .rehash
     ?
 A:   bind'     
     .

 Q:           
     ,     ?
 A:    (A-Z)   (0-9).       
    ,  ,        .


-----=#     userfile #=--------------------------------

 Q:      ?
 A: set usersnum [llength [chanlist $chan]]

 Q:  ""  userfile    ?
 A: userlist AB -     "A"  "B"
    userlist AB& -     "A"  "B"

 Q:   -    ,   
      userfile?
 A:   .          
    XTRA-   :)

 Q:  /   XTRA- ?
 A: : getuser <hand> XTRA < >
    : setuser <hand> XTRA < > < >
     : setuser <hand> XTRA < >

 Q:    ?
 A: [matchattr $hand <flag|flag> $chan]
      : <>|<>
       ,     .


-----=#      #=-------------------------------------

 Q:   ?
 A:     :
    set list "one two three four five"
           .
       :
    set list ""

 Q:     ?
 A:      "0".    
     :
    lindex $list 0

 Q:      ?
 A: set mainlist "a b c d e"
    set mylist "h z y c k"
    foreach i $mylist { if {[lsearch $mainlist $i]>=0} {return 1} }

 Q:      ?
 A: lappend $list "newelement"
           ,    
    (  ) :
    linsert $list <> "newelement"

 Q:       ?
 A: lreplace $list < > < > <  >
     <  >  ,   .
    ,  : set list "a b c"
         :
    lreplace $list 1 1
       $list   "a c"

 Q:       (RND)?
 A: set list { "number one" "number two" "number three" }
    set random [lindex $list [rand [llength $list]]]

 Q:       ?
 A: regsub -all -- "windows" "$string" "unix" mystring
      "windows"  "unix"   $string  
       $mystring.

 Q:    HTML    <pre>  </pre>?
 A:   <pre>  lsearch,   </pre>.  
      lrange.
    set a [lrange $str [expr [lsearch $str "<pre>"] + 1] [expr [lsearch $str "</pre>"] - 1]]

 Q:     ( / )  ?
 A: set string "eggdrop"
        (  "d"):
    string index $string 3
        #1 (  "dr"):
    string range $string 3 4
        #2 (  "drop"):
    string range $string 3 end


-----=#    #=--------------------------------------------------

 Q:       ?
 A: set file [open myfile.txt r+]
    set result [read $file]
    close $file

 Q:      ?
 A: set file [open myfile.txt w+]
    puts $file hello
    close $file

 Q:      ?
 A:        .
    set file [open myfile.txt r]
    set data [read $file]
    close $file
    set lines [split $data \n]
    set randline [lindex $lines [rand [llength $lines]]]


-----=#     SQL #=----------------------------------------

 Q:      SQL  TCL?
 A: .       SQL.
    1) Tcl-SQL (http://www.binevolve.com/~tdarugar/tcl-sql/)
       SQL-    ,     MySQL.
    2) MyTCL (http://www.mytcl.cx/) -  Tcl-SQL.  
       MySQL.   : mysqlseen 1.1, mysqlfaq 1.0,
       mysqlbans 1.0.      .
    3) MySQLTcl (http://www.xdobry.de/mysqltcl/) -   mSQLTcl.
         MySQL.    .
    4) fbSQL (http://www.fastbase.co.nz/fbsql/index.html)

      :

                 | MyTCL | MySQLTcl | Tcl-SQL | fbSQL
    --------------------------------------------------
    affectedrows |   X   |          |         |
    col          |       |     X    |         |
    connect      |   X   |     X    |    X    |   X
    disconnect   |   X   |     X    |    X    |   X
    endquery     |   X   |     X    |    X    |   X
    escape       |       |     X    |         |
    exec         |   X   |     X    |    X    |
    fetchrow     |   X   |          |    X    |   X
    info         |       |     X    |         |
    insertid     |   X   |     X    |         |
    isconnected  |   X   |          |         |
    map          |       |     X    |         |
    next         |       |     X    |         |
    numrows      |   X   |          |    X    |   X
    query        |   X   |     X    |    X    |   X
    result       |       |     X    |         |
    seek         |       |     X    |         |
    selectdb     |   X   |     X    |    X    |   X
    state        |       |     X    |         |
    version      |   X   |          |         |   X

     : MyTCL  MySQLTcl


-----=#   ,    #=------------------------------

 Q:     ?
 A: bind time - <mask> my_time_proc
    proc my_time_proc {min hour day month year} {
    }
    bind time - "00 * * * *" my_time_proc  ( )
    bind time - "05 05 * * *" my_time_proc  ( 5:05 )
    bind time - "?0 * * * *" my_time_proc  ( 10 )

 Q:     XX ?
 A: if {![info exists my_proc_running]} {
    timer 20 my_proc
    set my_proc_running 1
    }
    proc my_proc {} {
     #   
     #   
     timer 20 my_proc
     return 1
    }

 Q:      ,   ?
 A:      RND,    ,  , 
    ,   .     :
    set x [rand 3]
    if {$x==3} {
    }

 Q:   /  ?
 A: clock format [unixtime] -format <>
      /    TCL.
    :   unixtime   "01 May 2001 12:05"
    [clock format [unixtime] -format "%d %m %Y %H:%M"]

 Q:      "2001-05-27 11:22:33".
        "27-05-2001 11:22"?
 A: set date [split "2001-05-27 11:22:33"]      
    set a [split [lindex $date 0] "-"]
    set b [split [lindex $date 1] ":"]
    set output "[lindex $a 2]-[lindex $a 1]-[lindex $a 0] [lindex $b 0]:[lindex $b 1]"

 Q:      ?
 A:   (  ):
    after 1000
    putserv "PRIVMSG $chan :test"
      (    ):
    after 1000 putserv "PRIVMSG $chan :test"
    1000 -   (ms). 1000ms = 1s.


-----=#    #=----------------------------------------------

 Q:    (bold/color/inverse/underline)  ?
 A: Bold     : \002Bold text\002
    Inverse  : \022Inverse text\022
    Underline: \037Underline text\037
    Color    : \00312,4Blue text on red background\003
        Color:
    0 -                8 - 
    1 -                 9 - 
    2 - -         10 -  
    3 -              11 - 
    4 -              12 - 
    5 -           13 - -
    6 - -    14 - -
    7 -            15 -              

 Q:    puthelp  putserv    ?
 A:     (queue)      
    .  putserv,  ,     
    ,  puthelp.      
     puthelp,     putserv.

 Q:     /?
 A:   : putserv "PRIVMSG $chan :message from bot..."
    NOTICE : putserv "NOTICE $nick :my notice to you..."
    ACTION  : putserv "PRIVMSG $chan :\001ACTION ...\001"
    CTCP- : putserv "PRIVMSG $nick :\001VERSION\001"

 Q:     ACTION.     ?
 A: proc action_bind {nick uhost hand dest keyword text} {
     if {[string index $dest 0] == "#"} { return "from channel" }
     return "from private"
    }

 Q:  ,     CTCP CLIENTINFO?
 A:       .
    bind ctcp - CLIENTINFO cinfo_answer
    proc cinfo_answer {nick uhost hand dest keyw arg} {
    putserv "NOTICE $nick :\001CLIENTINFO my own clientinfo message\001"
    return 1
    }

 Q:  "" Notice  Action?
 A: Notice: bind notc - "**" notice_proc
    Action: bind ctcp - "ACTION" action_proc


-----=#    #=---------------------------------------------------

 Q:      -?
 A: putloglev <flag> <#chan> "<>"
    : putloglev p $chan "hello, world!"

 Q:      .     putloglev, 
       ,     !
 A:      ,       
    bind * <proc>
    <proc>:  ,    <botnick> = <  >,
       .  <  >     
       -   .

 
-----=#   #=--------------------------------------------------

 1.0
  o   

 1.1 - 1.33
  o    ,       5kb  35kb

 1.34 [Public Beta]
  o     (  ,   FAQ)
  o   Eggdrop
  o     
  o      Botnet
  o      TCL
  o  

 1.35 [Public Beta]
  o    FAQ  Manual (URL  )
  o    Eggdrop
  o    

 1.36
  o  
        
        http://www.amiga.org.ru/eggdrop/


-----=#  #=-----------------------------------------------------

          
 Eggdrop,        TCL:
   (Dmitry)    (_SeaGull_)

-----------------------------------------------------------------------------
                                 End Of File
