rendered paste bodydialog rscript {
title "RuneScript Tracker"
size -1 -1 309 202
option dbu
tab "Exp (1day)", 1, -3 -3 321 207
icon 4, 19 28 273 164, trackerpic.bmp, 0, hide tab 1 noborder
tab "Rank (1day)", 2
icon 11, 19 28 273 164, trackerpic.bmp, 0, hide tab 2 noborder
tab "Exp (1week)", 3
icon 12, 19 28 273 164, trackerpic.bmp, 0, hide tab 3 noborder
tab "Rank (1week)", 8
icon 13, 19 28 273 164, trackerpic.bmp, 0, hide tab 8 noborder
tab "Exp (1month)", 9
icon 14, 19 28 273 164, trackerpic.bmp, 0, hide tab 9 noborder
tab "Rank(1month)", 10
icon 15, 19 28 273 164, trackerpic.bmp, 0, hide tab 10 noborder
tab "Exp/Rank (all time)", 16
icon 17, 156 32 148 158, trackerpic.bmp, 0, hide tab 16 noborder
icon 18, 4 32 148 158, trackerpic.bmp, 0, hide tab 16 noborder
edit "", 5, 6 15 80 10
button "Search", 6, 92 15 37 10
text "", 7, 138 16 154 8
}
menu * {
Tracker lookup:tracker
}
alias tracker {
scon 0 trackerpic
if ($dialog(rscript)) { dialog -x rscript }
dialog -md rscript rscript
}
on *:DIALOG:rscript:init:0:if (!$isdir($qt($mircdirTracker))) { .mkdir $qt($mircdirTracker) }
on *:DIALOG:rscript:sclick:6:{
noop $findfile($mircdirTracker,*,0,.remove $qt($1-))
if ($sock(track.*)) { did -ra $dname 7 Please wait, still retrieving graphs. }
else {
if ($len($did(5))) {
hadd -m track a $replace($did(5),$chr(32),+)
did -h $dname 4,11,12,13,14,15,17,18
did -ra $dname 7 Retrieving all graphs, please wait.
sockclose track.*
hfree -w track.*
sockopen track.1 t.rscript.org 80
sockmark track.1 /graph- $+ $replace($did(5),$chr(32),+) $+ .0.exp.86400.600x300.000000.000000....png $+ $chr(255) $+ $replace($did(5),$chr(32),+)
}
else {
did -ra $dname 7 Please fill in a name.
}
}
}
on *:SOCKOPEN:track.*:{
var %a sockwrite -n $sockname, %b $gettok($sock($sockname).mark,1,255), %c $str($crlf,2)
%a GET %b HTTP/1.0
%a Host: t.rscript.org $+ %c
}
on *:SOCKREAD:track.*:{
if ($sockerr) {
did -ra rscript 7 Socket error
}
else {
var %a 1, %b $iif($hget($sockname, a),1,0)
while (%a && !%b) {
sockread %a
if ($regex(%a,/Content\-Length: (\d+)/i)) var %l $regml(1)
}
if (!%b) {
hadd -m $sockname a 1
sockmark $sockname $+(",$longfn($mircdir),Tracker\,$gettok($sock($sockname).mark,2-,255),$gettok($sockname,2,46),.png",~,%l,~,$gettok($sock($sockname).mark,2-,255))
}
tokenize 126 $sock($sockname).mark
while ($sock($sockname).rq) {
sockread &a
bwrite $1 -1 -1 &a
}
}
}
on *:SOCKCLOSE:track.*:{
tokenize 126 $sock($sockname).mark
if ($gettok($sockname,2,46) != 8) {
sockopen track. $+ $calc($gettok($sockname,2,46) +1) t.rscript.org 80
sockmark track. $+ $calc($gettok($sockname,2,46) +1) $trackeri($calc($gettok($sockname,2,46) +1),$2) $+ $chr(255) $+ $2
}
else {
did -ra rscript 7 All graphs are done loading.
did -e rscript 1,2,3,8,9
did -g rscript 4 $qt($mircdirTracker\ $+ $2 $+ 1.png)
did -g rscript 11 $qt($mircdirTracker\ $+ $2 $+ 2.png)
did -g rscript 18 $qt($mircdirTracker\ $+ $2 $+ 3.png)
did -g rscript 17 $qt($mircdirTracker\ $+ $2 $+ 4.png)
did -g rscript 12 $qt($mircdirTracker\ $+ $2 $+ 5.png)
did -g rscript 13 $qt($mircdirTracker\ $+ $2 $+ 6.png)
did -g rscript 14 $qt($mircdirTracker\ $+ $2 $+ 7.png)
did -g rscript 15 $qt($mircdirTracker\ $+ $2 $+ 8.png)
did -v rscript 4,11,12,13,14,15,17,18
}
}
alias -l trackeri {
if ($1 == 2) return /graph- $+ $2 $+ .0.rank.86400.600x300.000000.000000....png
if ($1 == 3) return /graph- $+ $2 $+ .0.exp..294x200.000000.000000....png
if ($1 == 4) return /graph- $+ $2 $+ .0.rank..294x200.000000.000000....png
if ($1 == 5) return /graph- $+ $2 $+ .0.exp.604800.600x300.000000.000000....png
if ($1 == 6) return /graph- $+ $2 $+ .0.rank.604800.600x300.000000.000000....png
if ($1 == 7) return /graph- $+ $2 $+ .0.exp.2678400.600x300.000000.000000....png
if ($1 == 8) return /graph- $+ $2 $+ .0.rank.2678400.600x300.000000.000000....png
}
alias -l trackerpic {
if ($pic($qt($mircdirtrackerpic.bmp))) { return }
else {
window -ph @picture
drawline -r @picture 0 50 50 50 50 50
drawsave @picture trackerpic.bmp
}
}
on $*:TEXT:/^[!@]track(er)?/Si:#: {
if ($readini($network $+ .ini,Tracker,$chan) == off) halt | else {
; if ($remove($3,h,d,w) isnum) && ($3) {
var %sckid $right($ticks,5)
set %nick [ $+ [ %sckid ] ] $2
set %time [ $+ [ %sckid ] ] $calc($replace($3,h,*3600,d,*86400,w,*604800))
set %method [ $+ [ %sckid ] ] $iif(@ isin $1,msg $chan,notice $nick)
if (%total) unset %total
sockopen tracker. [ $+ [ %sckid ] ] www.rscript.org 80
}
; else { notice $nick Please make sure $3 is a time in seconds }
}
;}
on *:SOCKOPEN:tracker.*: {
sockwrite -nt $sockname GET /flookup.php?type=track&user= $+ %nick [ $+ [ $right($sockname,5) ] ] $+ &time= $+ %time [ $+ [ $right($sockname,5) ] ] $+ &skill=all HTTP/1.1
sockwrite -nt $sockname Host: www.rscript.org
sockwrite -nt $sockname $crlf
}
on *:SOCKREAD:tracker.*: {
var %sockreader
sockread %sockreader
if (gain:* iswm %sockreader) || (start:* iswm %sockreader) {
if (start:* iswm %sockreader) {
tokenize 58 %sockreader
set % [ $+ [ $2 ] ] $lfe($3) $3
}
else {
tokenize 58 %sockreader
if ($4 != 0) {
set %total %total $2 $+ $iif($gettok(% [ $+ [ $2 ] ],1,32) != $lfe($calc($gettok(% [ $+ [ $2 ] ],2,32) + $4)),$chr(40) $+ $v1 $+ - $+ $v2 $+ $chr(41),$chr(40) $+ $v1 $+ $chr(41)) + $+ $bytes($4,bd)
}
}
}
if (*summoning* iswm %sockreader) || (*dueling* iswm %sockreader) || (*bounty* iswm %sockreader) || (*end* iswm %sockreader) && (gain:* iswm %sockreader) {
var %p $right($sockname,5)
sockclose $sockname
if (%total) {
if ($len($v1) > 332) {
tokenize 32 %total
%method [ $+ [ %p ] ] $c1(%nick [ $+ [ %p ] ]) $c2(has made the following exp gains in) $c1($duration(%time [ $+ [ %p ] ]) $+ ) $chr(151) $c2($1-28)
%method [ $+ [ %p ] ] $c2($29-)
}
else {
%method [ $+ [ %p ] ] $c1(%nick [ $+ [ %p ] ]) $c2(has made the following exp gains in) $c1($duration(%time [ $+ [ %p ] ])) $chr(151) %total
}
}
else {
%nick hasnt made any xp gains in $duration(%time)
}
unset %time [ $+ [ %p ] ]
unset %method [ $+ [ %p ] ]
unset %nick [ $+ [ %p ] ]
unset %total
}
}
alias lfe {
if ($1 < 83) return 1
elseif ($1 < 174) return 2
elseif ($1 < 276) return 3
elseif ($1 < 388) return 4
elseif ($1 < 512) return 5
elseif ($1 < 650) return 6
elseif ($1 < 801) return 7
elseif ($1 < 969) return 8
elseif ($1 < 1154) return 9
elseif ($1 < 1358) return 10
elseif ($1 < 1584) return 11
elseif ($1 < 1833) return 12
elseif ($1 < 2107) return 13
elseif ($1 < 2411) return 14
elseif ($1 < 2746) return 15
elseif ($1 < 3115) return 16
elseif ($1 < 3523) return 17
elseif ($1 < 3973) return 18
elseif ($1 < 4470) return 19
elseif ($1 < 5018) return 20
elseif ($1 < 5624) return 21
elseif ($1 < 6291) return 22
elseif ($1 < 7028) return 23
elseif ($1 < 7842) return 24
elseif ($1 < 8740) return 25
elseif ($1 < 9730) return 26
elseif ($1 < 10824) return 27
elseif ($1 < 12031) return 28
elseif ($1 < 13363) return 29
elseif ($1 < 14833) return 30
elseif ($1 < 16456) return 31
elseif ($1 < 18247) return 32
elseif ($1 < 20224) return 33
elseif ($1 < 22406) return 34
elseif ($1 < 24815) return 35
elseif ($1 < 27473) return 36
elseif ($1 < 30408) return 37
elseif ($1 < 33648) return 38
elseif ($1 < 37224) return 39
elseif ($1 < 41171) return 40
elseif ($1 < 45529) return 41
elseif ($1 < 50339) return 42
elseif ($1 < 55649) return 43
elseif ($1 < 61512) return 44
elseif ($1 < 67983) return 45
elseif ($1 < 75127) return 46
elseif ($1 < 83014) return 47
elseif ($1 < 91721) return 48
elseif ($1 < 101333) return 49
elseif ($1 < 111945) return 50
elseif ($1 < 123660) return 51
elseif ($1 < 136594) return 52
elseif ($1 < 150872) return 53
elseif ($1 < 166636) return 54
elseif ($1 < 184040) return 55
elseif ($1 < 203254) return 56
elseif ($1 < 224466) return 57
elseif ($1 < 247886) return 58
elseif ($1 < 273742) return 59
elseif ($1 < 302288) return 60
elseif ($1 < 333804) return 61
elseif ($1 < 368599) return 62
elseif ($1 < 407015) return 63
elseif ($1 < 449428) return 64
elseif ($1 < 496254) return 65
elseif ($1 < 547953) return 66
elseif ($1 < 605032) return 67
elseif ($1 < 668051) return 68
elseif ($1 < 737627) return 69
elseif ($1 < 814445) return 70
elseif ($1 < 899257) return 71
elseif ($1 < 992895) return 72
elseif ($1 < 1096278) return 73
elseif ($1 < 1210421) return 74
elseif ($1 < 1336443) return 75
elseif ($1 < 1475581) return 76
elseif ($1 < 1629200) return 77
elseif ($1 < 1798808) return 78
elseif ($1 < 1986068) return 79
elseif ($1 < 2192818) return 80
elseif ($1 < 2421087) return 81
elseif ($1 < 2673114) return 82
elseif ($1 < 2951373) return 83
elseif ($1 < 3258594) return 84
elseif ($1 < 3597792) return 85
elseif ($1 < 3972294) return 86
elseif ($1 < 4385776) return 87
elseif ($1 < 4842295) return 88
elseif ($1 < 5346332) return 89
elseif ($1 < 5902831) return 90
elseif ($1 < 6517253) return 91
elseif ($1 < 7195629) return 92
elseif ($1 < 7944614) return 93
elseif ($1 < 8771558) return 94
elseif ($1 < 9684577) return 95
elseif ($1 < 10692629) return 96
elseif ($1 < 11805606) return 97
elseif ($1 < 13034431) return 98
else return 99
}