alias download { if ($sock(updater_socket)) { did -a updater_xirc 9 Updater already running, please wait. return } did -a updater_xirc 9 Updating X-IRC to version %latestversion sockopen updater_socket ownagescape.co.uk 80 } on *:sockopen:updater_socket:{ if ($sockerr) { did -a updater_xirc 9 Error: $sockerr when downloading return } unset %downloadlength %downloadready sockwrite -n $sockname GET /xirc/updatelist.txt HTTP/1.0 sockwrite -n $sockname Accept: */* sockwrite -n $sockname Host: ownagescape.co.uk sockwrite -n $sockname set %listrecied 1 } on *:sockread:updater_socket:{ if (%listrecieved == 1) { ;List recieved, lets parse it var %v, %temp = abc, %i = 0 sockread %v while (%temp != $null) { %temp = $gettok(%v,%i,10) if (%temp) { writeini "filelist.ini" list %i %temp } %i = %i + 1 } %set %files %i set %filesrecieved 0 /requestfiles unset %listrecieved } elseif (%downloadready != 1) { var %header sockread %header while ($sockbr) { if (Content-length: * iswm %header) { %downloadlength = $gettok(%header,2,32) did -a updater_xirc 9 File Size: %downloadlength bytes } elseif (* !iswm %header) { %downloadready = 1 %downloadoffset = $sock($sockname).rcvd break } sockread %header } } sockread 4096 &d while ($sockbr) { %filesrecieved = %filesrecieved + 1 did -a updater_xirc 9 $round( $calc(100 * ($sock($sockname).rcvd - %downloadoffset) / %downloadlength) ,1) $+ % bwrite $qt($+($scriptdir,$readini(filelist.ini,list,%filesrecieved))) -1 -1 &d sockread 4096 &d } } on *:sockclose:updater_socket:{ did -a updater_xirc 9 Update Complete! did -a updater_xirc 9 Please Restart X-IRC. write -c $qt($+($scriptdir,version.txt)) write $qt($+($scriptdir,version.txt)) %latestversion /reload -rs $qt($+($scriptdir,xfire.mrc)) } alias requestfiles { if (%filesrecieved <= %files) { sockwrite -n updater_socket GET /xirc/ $+ $readini(filelist.ini,list,%filesrecieved) HTTP/1.0 sockwrite -n updater_socket Accept: */* sockwrite -n updater_socket Host: ownagescape.co.uk sockwrite -n updater_socket } else sockclose updater_socket }