Downloading File
Filename: mIRC Update Checker
;mIRC Update Checker v3.0 - 2007 ;by Soul_Eater ;/download alias by ^andy, has been modified. ;Syntax: ;/mircupd check ;<<--checks version of mIRC. ;/mircupd list ;<<--retrieves the list of whats new in mIRC ;/mircupd get ;<<--downloads the newest copy of mIRC alias -l input1 { var %x $input(Your copy of mIRC is up to date!,oi,Status) | sockclose mirc } alias -l input2 { if ($input(The newest version of mIRC is $+(%mu-num,!) Update?,yi,Status)) { sockclose mirc | mircupd get } else { sockclose mirc } } ;on *:start:mircupd check alias mircupd { unset %sockread* sockopen mirc www.mirc.co.uk 80 set %mu-r $1 } ON *:SOCKOPEN:mirc:{ if ($sockerr) { echo -s $sock($sockname).wsmsg return } if (%mu-r == check) { set %mu-x 0 | sockwrite -n $sockname GET /whatsnew.txt HTTP/1.1 } if (%mu-r == list) { set %mu-x 0 | sockwrite -n $sockname GET /whatsnew.txt HTTP/1.1 | window -a @MU-List } if (%mu-r == get) { sockwrite -n $sockname GET /get.html HTTP/1.1 } sockwrite -n $sockname Host: www.mirc.co.uk $+ $str($crlf,2) } ON *:SOCKREAD:mirc:{ if ($sockerr) { sockclose mirc return } sockread %sockread if (%mu-r == list) { if (%sockread) { if (%mu-x >= 9) { aline @MU-List %sockread } inc %mu-x } } if (%mu-r == check) { if (*full list* iswm %sockread) { if (%mu-num) { sockclose $sockname } set %mu-num $remove($gettok(%sockread,10,32),$chr(58)) if ($version == %mu-num) { .timer -m 1 1 input1 } if ($version < %mu-num) { .timer -m 1 1 input2 } } } if (%mu-r == get) { if (*onclick="download();* iswm %sockread) { set %mu-fd $gettok(%sockread,2,34) | set %mu-fn $gettok($gettok(%sockread,2,34),$gettok($gettok(%sockread,2,34),0,47),47) } } } ON *:SOCKCLOSE:mirc:{ if (%mu-r == list) { unset %sockread* %mu-* } if (%mu-r == get) { download %mu-fd } else { unset %sockread* %mu-* } } alias -l download { if ($sock(dl)) { echo $colour(info text) @download *** already downloading; please wait. return } sockopen dl $gettok($1,2,47) 80 } on *:sockopen:dl:{ if ($sockerr) { echo $colour(info text) @download *** error $sock($sockname).wsmsg when downloading return } write -c %mu-fn unset %downloadlength %downloadready window -c @download sockwrite -n $sockname GET $+(/,$gettok(%mu-fd,3-,47)) HTTP/1.0 sockwrite -n $sockname Accept: */* sockwrite -n $sockname Host: $gettok(%mu-fd,2,47) $+ $str($crlf,2) sockwrite -n $sockname } on *:sockread:dl:{ if (%downloadready != 1) { var %header sockread %header while ($sockbr) { if (Content-length: * iswm %header) { %downloadlength = $gettok(%header,2,32) if (* !iswm $window(@download)) window @download echo $colour(info text) @download *** file size: %downloadlength bytes } elseif (* !iswm %header) { %downloadready = 1 %downloadoffset = $sock($sockname).rcvd break } sockread %header } } sockread 4096 &d while ($sockbr) { if (* !iswm $window(@download)) window @download echo $colour(info text) @download *** received: $round( $calc(100 * ($sock($sockname).rcvd - %downloadoffset) / %downloadlength) ,1) $+ % bwrite %mu-fn -1 -1 &d sockread 4096 &d } } on *:sockclose:dl:{ echo $colour(info text) @download *** done downloading %mu-fn run %mu-fn } menu @download { Stop Downloading:sockclose dl | .remove %mu-fn Close Window:window -c @download }