on $*:text:/^[!@](cirpg|compidle)/Si:#: {
if (!$2) || (!$3) {
.notice $nick $c2(Syntax:) $c1(!cirpg NAME1 NAME2)
halt
}
else {
set %idle.way1 $iif($left($1,1) == @,.msg $chan,.notice $nick)
set %idle.nick1 $2
set %idle.nick2 $3
sockopen IRPG1 pure.nullrouted.biz 80
sockopen IRPG2 pure.nullrouted.biz 80
}
}
on *:SOCKOPEN:IRPG1: {
sockwrite -nt $sockname GET /~xnemesis/playerview.php?player= $+ %idle.nick1
sockwrite -nt $sockname Host: pure.nullrouted.biz
sockwrite -nt $sockname $crlf $crlf
}
on *:SOCKREAD:IRPG1: {
if ($sockerr) { echo -at ** Error ** in scoket: $sockerr | halt }
else {
var %sockreader
sockread %sockreader
if (*No such user.* iswm %sockreader) { set %idle.wrong1 1 | halt }
if (*Level:* iswm %sockreader) { tokenize 32 %sockreader | set %idle.lvl1 $nohtml($2) }
if (*Class:* iswm %sockreader) { tokenize 32 %sockreader | set %idle.class1 $nohtml($2-) }
if (*Next level:* iswm %sockreader) { tokenize 32 %sockreader | set %idle.nxtlvl1 $nohtml($remove($2-,level:)) }
if (*sum:* iswm %sockreader) { tokenize 32 %sockreader | set %idle.sum1 $nohtml($2-) }
if (*Status:* iswm %sockreader) { tokenize 32 %sockreader | set %idle.status1 $nohtml($2-) }
if (*Alignment:* iswm %sockreader) { tokenize 32 %sockreader | set %idle.align1 $nohtml($2-) }
}
}
on *:SOCKOPEN:IRPG2: {
sockwrite -nt $sockname GET /~xnemesis/playerview.php?player= $+ %idle.nick2
sockwrite -nt $sockname Host: pure.nullrouted.biz
sockwrite -nt $sockname $crlf $crlf
}
on *:SOCKREAD:IRPG2: {
if ($sockerr) { echo -at ** Error ** in scoket: $sockerr | halt }
else {
var %sockreader
sockread %sockreader
if (*No such user.* iswm %sockreader) { set %idle.wrong2 1 | halt }
if (*Level:* iswm %sockreader) { tokenize 32 %sockreader | set %idle.lvl2 $nohtml($2) }
if (*Class:* iswm %sockreader) { tokenize 32 %sockreader | set %idle.class2 $nohtml($2-) }
if (*Next level:* iswm %sockreader) { tokenize 32 %sockreader | set %idle.nxtlvl2 $nohtml($remove($2-,level:)) }
if (*sum:* iswm %sockreader) { tokenize 32 %sockreader | set %idle.sum2 $nohtml($2-) }
if (*Status:* iswm %sockreader) { tokenize 32 %sockreader | set %idle.status2 $nohtml($2-) }
if (*Alignment:* iswm %sockreader) { tokenize 32 %sockreader | set %idle.align2 $nohtml($2-) }
}
}
on *:SOCKCLOSE:IRPG2: {
if (%idle.wrong1 == 1) || (%idle.wrong2 == 1) { %idle.way1 $c2(User) $c1($iif(%idle.nick1 == 1,%idle.nick1,%idle.nick2)) $c2(was not found.) | unset %idle.* |
unset %idle.* | halt
}
else {
%idle.way1 $c2(Idle comparison for) $c2($chr(40)) $+ $c1(%idle.nick1) $c2(the level) $c1(%idle.lvl1) $c1(%idle.class1) $c2($chr(40)) $+ $c1(%idle.status1) $+ $c2($chr(41)) $+ $c2($chr(41)) $c2(and) $c2($chr(40)) $+ $c1(%idle.nick2) $c2(the level) $c1(%idle.lvl2) $c1(%idle.class2) $c2($chr(40)) $+ $c1(%idle.status2) $+ $c2($chr(41)) $+ $c2($chr(41)) $+ $c2(:)
%idle.way1 $c2($chr(40)) $+ $c1(%idle.nick1) $+ $c2($chr(41)) $+ $c2('s) $c2(alignment is) $c1(%idle.align1) $c2(and) $c2($chr(40)) $+ $c1(%idle.nick2) $+ $c2($chr(41)) $+ $c2('s) $c2(alignment is) $c1(%idle.align2) $+ $c2(.)
%idle.way1 $c2($chr(40)) $+ $c1(%idle.nick1) $+ $c2($chr(41)) $c2(is) $c1($datediff(%idle.nxtlvl1,%idle.nxtlvl2,wdhns)) $c2($iif(%idle.nxtlvl1 < %idle.nxtlvl2,behind,ahead)) $c2($chr(40)) $+ $c1(%idle.nick2) $+ $c2($chr(41)) $+ $c2(.)
%idle.way1 $c2($chr(40)) $+ $c1(%idle.nick1) $+ $c2($chr(41)) $c2(has) $c1($iif(%idle.sum1 < %idle.sum2, $calc(%idle.sum2 - %idle.sum1), $calc(%idle.sum1 - %idle.sum2))) $c2($iif(%idle.sum1 < %idle.sum2,less,more)) $c2(of an item sum than) $c2($chr(40)) $+ $c1(%idle.nick2) $+ $c2($chr(41)) $+ $c2(.)
unset %idle.*
}
}
alias datediff {
var %t,%result,%n = $crlf , %com = dd $+ $ticks, %s = $iif($3,$qt($1),Date) , %e = $qt($iif($3,$2,$1)), %values = $($+($,$0),2), $&
%error = $regex(%values,/[^yqmwadhns]/g), %values = $gettok($regsubex(%values,/([yqmwdhnsa])/g,$+(\t,$chr(44))),1-,44), $&
%right = y,q,m,w,d,h,n,s, %values = $iif(a !isin %values,$gettok($remove(%right, [ $remove(%right, [ %values ] ) ] ),1-,44),%right)
if ($istok(95 98,$os,32)) return E_OS
if (%error) return E_FORMAT
%t = Dim sd,ed,ret, $+ %values %n sd = %s %n ed = %e %n If isDate(sd) AND isDate(ed) Then %n
tokenize 44 %values
while ($0) {
%t = %t $1 = DateDiff( $qt($replace($upper($1),y,YYYY)) ,sd,ed) %n
if (e !isin $prop) %t = %t sd = DateAdd( $qt($replace($upper($1),y,YYYY,w,ww)) , $1 ,sd) %n
tokenize 32 $2-
}
%t = %t ret = $replace(%values,$chr(44),$+($chr(32),&,,$chr(32)," ",,$chr(32),&,$chr(32))) %n Else ret = "E_DATE" %n End If
.comopen %com MSScriptControl.ScriptControl
if ($comerr) return E_COM
noop $com(%com,language,4,bstr*,vbscript)
if ($com(%com,executestatement,1,bstr*,%t)) && ($com(%com,eval,3,bstr*,ret )) %result = $com(%com).result
else return = E_VB
:error
if ($com(%com)) .comclose %com $com(%com,reset,1)
if ((E_* iswm %result) || (s isin $prop)) return %result
else return $regsubex($replacex($regsubex(%result,/(\d+)/g,$+(\t,$gettok(%values,\n,44))),y,years,m,months,q,quarters,w,weeks,d,days,h,hours,n,minutes,s,seconds),/(?