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 }