Reflex — File Browser

Reflexv0.1 / Reflexv0.1 / Reflex / system / scripts / updater.mrc

updater.mrc — 1.84 KB — Download this file

alias check_update {
  sockclose update_*
  if ($data(update_mirc)) { 
    sockopen update_mirc mirc.com 80
  }
  if ($data(update_reflex)) { 
    download -oh checkreflex $webstr $+ reflex/update.rdf $datdir $cr _check_if_update
  }
}
alias _check_if_update {
  var %i = 1
  while (%i <= $lines($1)) {
    var %n = $read($1,%i)
    if ($gettok(%n,1,124) > $data(version)) {
      if ($data(autoupdate_reflex)) { download -o reflex $gettok(%n,2-,124) $cr _do_update $gettok(%n,1,124) }
      else { .timerevent 1 1 _ask_update $gettok(%n,1,124) $gettok(%n,2-,124) }
    }
    inc %i
  }
}
alias _ask_update {
  if ($input(A new version of reflex has been found $+ $crlf $+ Would you like to upgrade to $1 now?,y,Reflex Updater)) {
    download -o reflex $2- $cr _do_update $1 
  }
}
alias _do_update {
  munpack -b $2-
  data version $1
}
on *:sockopen:update_mirc: {
  sockwrite -n $sockname GET /get.html HTTP/1.1 
  sockwrite -n $sockname Accept: */* 
  sockwrite -n $sockname Host: mirc.com
  sockwrite -n $sockname Connection: close 
  sockwrite -n $sockname 
}
on *:sockread:update_mirc: {
  var %x
  :nextread
  sockread %x
  if ($sockbr == 0) return
  tokenize 32 %x
  if ($1- == HTTP/1.1 404 Not Found) { sockclose $sockname | return }
  elseif (!$1-) && ($sock($sockname).mark != $true) { sockmark $sockname $true }
  elseif ($1-) && ($sock($sockname).mark == $true) {
    var %x = *mIRC * in Estonia*
    if ($3 == FAQ) { return }
    elseif (%x iswm $1-) && ($3 > $version) { .timer -m 1 1 update_found mirc $3 $gettok($2,2,34) | sockclose $sockname }
  }
  goto nextread
}
alias update_found { 
  if ($1 == mirc) {
    if ($input(A new version of mirc has been found. $+ $crlf $+ Download and install $2 now? ,y,Update Found)) {
      download -o mirc $3- $cr run
    }
    else { data check_mirc $false }
  }
}