All pastes #964415 Raw Edit

Jemand

public text v1 · immutable
#964415 ·published 2008-03-31 05:58 UTC
rendered paste body
on 1:text:*:#: {

  ;------------------------------------- ----  ---  -     -
  ;pretime check
  ;------------------------------------- ----  ---  -     -

  if ($chan == #PRECHAN) { 
    ;normales adden der rlses in die predb.txt
    tokenize 32 $strip($1-)
    var %matchline *PRE*,%token 1-
    if (%matchline iswm $1-) { write predb.txt $gettok($1-,%token,32) $ctime }
  }

  ;------------------------------------- ----  ---  -     -
  ;autotrader main
  ;------------------------------------- ----  ---  -     -              

  if ($autotrader(#,$nick,$strip($1-)) != $false) && (%autotrader.enable. [ $+ [ # ] ] != off) {

    ;racen
    ;var %x $autotrader(%c,%n,$1-).startfxp 
    race # $nick $1-

  }
}

;------------------------------------- ----  ---  -     -
;/race alias race CHAN NICK LINE
;------------------------------------- ----  ---  -     -


alias race {

  var %c $1,%n $2
  tokenize 32 $strip($3-)

  ;logfunktion
  var %z echo @racing
  if (!$window(@racing)) { 
    window @racing 
    %z DATE TIME [Racing] RLS from SOURCE [PATH] to TARGET [PATH]
  }

  ;racen
  set %_tmp_ $autotrader(%c,%n,$1-).startfxp 

  ;loggen
  if (%_tmp_ != $false) {
    %z $date $time [Racing] $gettok(%_tmp_,1,32) from $upper($gettok(%_tmp_,2,32)) $chr(91) $+ $gettok(%_tmp_,3,32) $+ $chr(93) to $upper($gettok(%_tmp_,4,32)) $chr(91) $+ $gettok(%_tmp_,5,32) $+ $chr(93)
  }
}

;------------------------------------- ----  ---  -     -
;$autotrader alias $autotrade(chan,nick,line).startfxp
;------------------------------------- ----  ---  -     -



alias autotrader {
  if (!$isid) { halt }
  var %chan $1,%nick $2,%text $3-,%rls 
  tokenize 32 $read(trader.txt,s,%chan %nick)
  while ($1-) {
    var %g 1 

    ;badwords
    while ($gettok($7,%g,44)) {
      if ($left($gettok($7,%g,44),6) == REGEX:) { var %_str $right($gettok($7,%g,44),-6) | if ($regex(%text,%_str)) { goto skip } }
      elseif ($gettok($7,%g,44) isin %text) { goto skip }
      inc %g
    }


    ;checken ob die line matcht
    if ($left($1,6) == REGEX:) { var %_str $right($1,-6) | if (!$regex(%text,%_str)) { goto skip } }
    elseif ($1 !iswm %text) { goto skip }

    ;sonderzeichen entfernen
    var %rls = $rem_nan($gettok(%text,$2,32))
    ;absoluter pfad 
    %rls = $gettok(%rls,$numtok(%rls,47),47) 


    ;pretime checken
    if ($8 isnum) && ($8 != 0) {

      if ($pretime(%rls) == $null) && ($prop == startfxp) {

        if ($window(@racing)) { 
          echo -tg @racing $date $time [ERROR] Not racing %rls - Unknown PreTime! Checking again in 9secs! $chr(91) $+ $3 to $5 $+ ] 
        }

        .timer 1 9 .echo -q $!autotrader( %chan , %nick , %text ).startfxp2 
        .break
      }

      elseif ($pretime(%rls) == $null) && ($prop == startfxp2) { 


        ;race anyway if $9 == $true

        if ($9 == $false) {
          if ($window(@racing)) { 
            echo -tg @racing $date $time [ERROR] Not racing %rls - Unknown PreTime! $chr(91) $+ $3 to $5 $+ ] 
          }
          .break
        } 

      }

      elseif ($pretime(%rls)) && ($pretime(%rls) > $8) { 
        if ($window(@racing)) { 
          echo -tg @racing $date $time [ERROR] Not racing %rls - Pretime is over $8 mins! $chr(91) $+ $3 to $5 $+ ] 
        }
        goto skip 
      } 


    }


    ;prog starten
    if ($prop == startfxp) || ($prop == startfxp2) { 
      if ($prop == startfxp2) && ($window(@racing)) {
        echo @racing $date $time [Racing] %rls from $upper($3) $chr(91) $+ $4 $+ $chr(93) to $upper($5) $chr(91) $+ $6 $+ $chr(93)
      }
      write trader.log $date $time %rls $3-6 | dll rushmirc.dll RushScript RushApp.FTP.Transfer(0, $+(',$3,') , $+(',$4,%rls,') ,'', $+(',$5,') , $+(',$6,%rls,') ,'',RS_DIRDES or RS_DIRSRC,'', '', '', '', '(\w*100%\w*)|(\w*-\sCOMPLETE\s\)\w*)|(\w*-\sCOMPLETE\s-\w*)', 20, 0, 0, 0, 0, 0, 0);
    }
    return %rls $3-6 

    :skip
    tokenize 32 $read(trader.txt,s,%chan %nick,$calc($readn +1))
  }
  return $false
}

alias rem_nan {
  while (!$regex($left($1,1),[A-Za-z0-9]) && ($1)) { tokenize 32 $right($1,-1) }
  while (!$regex($right($1,1),[A-Za-z0-9]) && ($1)) { tokenize 32 $left($1,-1) }
  return $1
}


;------------------------------------- ----  ---  -     -
;pretime alias $pretime(rls) returns XX minutes 
;ago or $false
;------------------------------------- ----  ---  -     -

alias pretime { 
  var %x $read(predb.txt,w,$replace($+(*,$1-,*),.,*,-,*,_,*,$chr(32),*))
  var %ctime $gettok(%x,$numtok(%x,32),32)
  if (!%ctime) return
  return $int($calc(($ctime - %ctime) /60))
}






;autotrader dialogstuff
alias atrade { dialog $iif($dialog(autotrader),-c,-m autotrader) autotrader }
dialog autotrader {
  title "Autotrader Config"
  size -1 -1 250 160
  option dbu
  box "Konfiguration des Autotradescripts", 2, 2 2 246 143
  list 1, 5 9 240 133, size
  button "&Close", 3, 210 147 37 12,ok
  button "R&eplace", 4, 171 147 37 12
  button "&Remove", 5, 132 147 37 12
  button "&Add", 6, 93 147 37 12
}

on 1:dialog:autotrader:init:*: {
  var %mdx mdx.dll | if (!$isfile(%mdx)) { var %x $input(Error,4,MDX.DLL befindet sich nicht im mIRC Ordner!) | halt }
  var %vmdx views.mdx | if (!$isfile(%vmdx)) { var %x $input(Error,4,VIEWS.mdx befindet sich nicht im mIRC Ordner!) | halt }
  dll %mdx SetMircVersion $version
  dll %mdx MarkDialog $dname
  dll %mdx SetControlMDX $dname 1 Listview report grid showsel center rowselect editlabels > %vmdx
  did -i $dname 1 1 headerdims 80 60 150 40 60 100 60 100 120 60 60
  did -i $dname 1 1 headertext $+(Channel,$chr(9),Botnick,,$chr(9),Matchline,$chr(9),Word,$chr(9),Source,$chr(9),Sourcepath,$chr(9),Target,$chr(9),Targetpath,$chr(9),Badwords,$chr(9),Pretime,$chr(9),ForceRace)
  atrader_upd
}

alias atrader_upd {
  if (!$dialog(autotrader)) halt
  did -r autotrader 1
  var %x 1 
  while ($read(trader.txt,%x)) { tokenize 32 $ifmatch | did -a $dname 1 $replace($1-,$chr(32),$+($chr(32),$chr(9),$chr(32))) | inc %x }
}

on 1:dialog:autotrader:dclick:1: { var %x $atrade_add($calc($did(1).sel -1)) | atrader_upd }
on 1:dialog:autotrader:sclick:*: {
  ;add
  if ($did == 6) { 
    var %x $atrade_add
    atrader_upd
  }
  if ($did == 5) {
    if (!$did(1).sel) { var %x $input(Bitte eine Zeile markieren!,4,Error) }
    else {
      write -dl $+ $calc($did(1).sel -1) trader.txt 
      atrader_upd
    }
  }
  ;overwrite
  if ($did == 4) {
    var %n $calc($did(1).sel -1)
    if (%n) { var %x $atrade_add(%n) | atrader_upd }
    else var %x $input(Bitte eine Zeile markieren!,4,Error)
  }

}

;hinzufüge
dialog autotrader_add {
  title "Autotrader - Neuen Eintrag hinzufügen..."
  size -1 -1 170 234
  option dbu
  box "Zu überprüfender Channel...", 1, 2 2 166 20
  edit "", 2, 4 9 162 10, autohs
  edit "", 3, 4 29 162 10, autohs
  box "Name des Bots...", 4, 2 22 166 20
  box "Reagiere auf Text...", 5, 2 43 166 20
  edit "", 6, 4 50 152 10, autohs
  button "?", 7, 157 50 8 10
  edit "", 8, 4 71 152 10, autohs
  box "Welches Wort ist das Release?", 9, 2 64 166 20
  button "?", 10, 157 71 8 10
  edit "", 11, 4 92 152 10, autohs
  box "Name des Quellservers (FTPRUSH Bookmark)...", 12, 2 85 166 20
  button "?", 13, 157 113 8 10
  box "Pfad auf dem Quellserver (z.B. /test/)...", 14, 2 106 166 20
  edit "", 15, 4 113 152 10, autohs
  button "?", 16, 157 92 8 10
  box "Pfad auf dem Zielserver (z.B. /test/)...", 17, 2 148 166 20
  edit "", 20, 4 155 152 10, autohs
  button "?", 19, 157 155 8 10
  edit "", 18, 4 134 152 10, autohs
  button "?", 21, 157 134 8 10
  box "Name des Zielservers (FTPRUSH Bookmark)...", 22, 2 127 166 20
  box "Badword Liste (getrennt durch Kommas)...", 23, 2 169 166 20
  edit "", 24, 4 176 152 10, autohs
  button "?", 25, 157 176 8 10

  box "Maximale Pretime", 28, 2 190 166 30
  edit "", 29, 4 197 152 10, autohs
  button "?", 30, 157 197 8 10
  check "Force Race (wenn PreTime nach 2x nicht erkannt wird)", 31, 5 209 152 8

  button "&Done", 26, 131 222 37 10,ok
  edit "", 27, 254 221 50 10, read autohs result

}
on 1:dialog:autotrader_add:edit:*: {
  if ($did == 2) {  
    if ($len($did(2)) == 3) { 
      tokenize 32 $read(trader.txt,w,$did(2) $+ *)
      if ($1) && ($input(Autocomplete with $str($crlf,2) $+ $1-)) {
        did -o $dname 2 1 $1 | if (!$did(3)) did -o $dname 3 1 $2 |  if (!$did(8)) did -o $dname 8 1 $4
        if (!$did(11)) did -o $dname 11 1 $5 | if (!$did(15)) did -o $dname 15 1 $6
        if (!$did(18)) did -o $dname 18 1 $7 | if (!$did(20)) did -o $dname 20 1 $8
        if (!$did(24)) did -o $dname 24 1 $9 | if (!$did(29)) did -o $dname 29 1 $10 
        did $iif($11 == $true,-c,-u) $dname 31  
      }
    }
  }
  if ($did == 8) && ($did(8) != $null) && ($did(8) !isnum) { var %x $input(Es dürfen nur Zahlen angegeben werden!,4,Fehler) | did -o $dname 8 1 $null }
  if ($did == 29) && ($did(29) != $null) && ($did(29) !isnum) { var %x $input(Es dürfen nur Zahlen angegeben werden!,4,Fehler) | did -o $dname 29 1 0 }

  if ($regex($did,^(2|3|6|8|11|15|18|20|24|29)$)) {
    did -o $dname 27 1 $did(2) $did(3) $did(6) $did(8) $did(11) $&
      $did(15) $did(18) $did(20) $did(24) $did(29) $iif($did(31).state == 1,$true,$false)
  }
}

on 1:dialog:autotrader_add:init:*: {
  if (%atrade_addln) { 
    tokenize 32 $read(trader.txt,%atrade_addln)
    did -o $dname 2 1 $1 | did -o $dname 3 1 $2 |  did -o $dname 6 1 $3
    did -o $dname 8 1 $4 | did -o $dname 11 1 $5 | did -o $dname 15 1 $6
    did -o $dname 18 1 $7 |  did -o $dname 20 1 $8
    did -o $dname 24 1 $9 | did -o $dname 29 1 $10
    if ($11 == $true) did -c $dname 31

    did -o $dname 27 1 $did(2) $did(3) $did(6) $did(8) $did(11) $&
      $did(15) $did(18) $did(20) $did(24) $did(29) $iif($did(31).state == 1,$true,$false)
  }
}
alias atrade_add {
  unset %atrade_addln
  if ($1 isnum) && ($read(trader.txt,$1)) { set %atrade_addln $1 }
  var %x $dialog(autotrader_add,autotrader_add) 
  if (%x) { tokenize 32 %x }
  if (!$8) { unset %atrade_addln | return $false }
  if ($left($6,1) != /) { tokenize 32 $1-5 / $+ $6 $7- }
  if ($right($6,1) != /) { tokenize 32 $1-5 $6 $+ / $7- }
  if ($left($8,1) != /) { tokenize 32 $1-7 / $+ $8 $9- }
  if ($right($8,1) != /) { tokenize 32 $1-7 $8 $+ / $9- }
  if (%atrade_addln) { write -l $+ %atrade_addln trader.txt $1- }
  else write trader.txt $1- 
  unset %atrade_add
  return $true
}

on 1:dialog:autotrader_add:sclick:*: {
  if ($did == 7) { var %x $input(Reagiere auf Text... $str($crlf,2) $+ Gib eine Maske des Textes mit * an. Diese muss zutreffen $+ $chr(44) damit die Zeile überprüft wird. $str($crlf,2) $+ Beispiel: h*ll* trifft auf hallo aber auch auf hollerö zu.,4,Hilfe) }
  if ($did == 10) { var %x $input(Welches Wort ist das Release? $str($crlf,2) $+ Gib hier die Stelle des Wortes an $+ $chr(44) das das Release ist. $str($crlf,2) $+ Im Satz "Test release-grou Blah" wäre es 2.,4,Hilfe) }
  if ($did == 16) { var %x $input(Name des Quellservers... $str($crlf,2) $+ Gib den Namen des Quellservers an. Hierbei handelt es sich um ein FTPRUSH Bookmark.,4,Hilfe) }
  if ($did == 13) { var %x $input(Pfad auf dem Quellserver... $str($crlf,2) $+ Gib hier den Pfad auf dem Quellserver an. $str($crlf,2) $+ Hierbei muss der Pfad so angegeben werden: /PFADHIER/,4,Hilfe) }
  if ($did == 21) { var %x $input(Name des Ziellservers... $str($crlf,2) $+ Gib den Namen des Zielservers an. Hierbei handelt es sich um ein FTPRUSH Bookmark.,4,Hilfe) }
  if ($did == 19) { var %x $input(Pfad auf dem Zielserver... $str($crlf,2) $+ Gib hier den Pfad auf dem Zielserver an. $str($crlf,2) $+ Hierbei muss der Pfad so angegeben werden: /PFADHIER/,4,Hilfe) }
  if ($did == 25) { var %x $input(Badword Liste $str($crlf,2) $+ Dies ist die Badword Liste. Alle Worte $+ $chr(44) die nicht in der Ansage vorkommen duerfen $+ $chr(44) werden geblockt. $str($crlf,2) $+ Beispiel: $+(German,$chr(44),Test,$chr(44),XXX),4,Hilfe) }
  if ($did == 30) { var %x $input(PreTime $str($crlf,2) $+ Dies ist die maximale Pretime $+ $chr(44) die ein RLS haben darf $+ $chr(44) damit es noch geraced wird. Wird 2x überprüft. Setzte den Wert 0 um es zu deaktivieren. $str($crlf,2) $+ Ist "Enforce Race" angeschaltet $+ $chr(44) wird auch bei nicht gefundener Pretime geraced!,4,Hilfe) }
  if ($did == 31) { 
    if ($did(29) == $null) did -o $dname 29 1 0
    did -o $dname 27 1 $did(2) $did(3) $did(6) $did(8) $did(11) $&
      $did(15) $did(18) $did(20) $did(24) $did(29) $iif($did(31).state == 1,$true,$false)
  }
}

menu channel {
  AutoTrader
  .$iif($read(trader.txt,s,#),$iif(%autotrader.enable. [ $+ [ # ] ] != off,Autotrader [ON],Autotrader [OFF])): {
    set %autotrader.enable. [ $+ [ # ] ] $iif(%autotrader.enable. [ $+ [ # ] ] != off,off,on)
  }
  .-
  .Config:atrade
}