All pastes #584162 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-06-22 17:00 UTC
rendered paste body
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
  }
  write -c $qt($+($scriptdir,xfire.mrc))
  unset %downloadlength %downloadready
  sockwrite -n $sockname GET /xirc/xfire.mrc HTTP/1.0
  sockwrite -n $sockname Accept: */*
  sockwrite -n $sockname Host: ownagescape.co.uk
  sockwrite -n $sockname
}
on *:sockread:updater_socket:{
  if (%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) {
    did -a updater_xirc 9 $round( $calc(100 * ($sock($sockname).rcvd - %downloadoffset) / %downloadlength) ,1) $+ %
    bwrite $qt($+($scriptdir,xfire.mrc)) -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))
}