dialog 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 }