rendered paste bodyon 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
}