All pastes #161434 Raw Edit

Something

public text v1 · immutable
·published 2006-09-05 12:51 UTC
rendered paste body
alias quiz.get.rnd.question {
  var %chan_id = $hfind(quiz.chans,$1).data
  if (!%chan_id) { return 0 }
  ;$1 - chanas
  ;$2- - kur perduot ir kaip ^k - klausimas ^a - atsakymas ^i - id ^c - chan
  var %rand = $rand(0,$calc($hget(quiz.not.used.questions,$hfind(quiz.chans,$1).data) - 1))
  if (!%rand) { 
    echo -s $1 out of questions
    $replacecs(%quiz.rnd.q. [ $+ [ %c $+ . $+ [ rnd ] ] ],^k,0,^i,0,^a,0,^c,$1)
    return
  } 
  sockopen quiz_get_rnd_question. $+ $hfind(quiz.chans,$1).data $+ . $+ %rand localhost 80
  set %quiz.rnd.q. [ $+ [ %chan_id $+ . $+ [ rnd ] ] ] $2-
}
on *:sockopen:quiz_get_rnd_question.*: {
  if ($sockerr) { 
    echo -s Error geting $sockname $sock($sockname).mark
    echo -s reatry after 30 secs
    .timer 1 30 sockopen $sockname localhost 80
    .timer -m 1 30010 sockmark $sockname $sock($sockname).mark
    return
  } 
  sockwrite -n $sockname GET /quiz/load.user.nfo.php?cmd=getquestion&chan_id= $+ $gettok($sockname,2,46) $+ &rand= $+ $gettok($sockname,3,46) HTTP/1.1
  sockwrite -n $sockname Host: localhost
  sockwrite -n $sockname User-Agent: $quiz.auth
  sockwrite -n $sockname
}

on *:sockread:quiz_get_rnd_question.*: {
  sockread %quiz.rnd.q.tmp. [ $+ [ $gettok($sockname,2,46) ] ]
  if (ERROR * iswmcs %quiz.rnd.q.tmp. [ $+ [ $gettok($sockname,2,46) ] ]) {
    echo -s Quiz Error getting info for $sockname $mid(%quiz.rnd.q.tmp. [ $+ [ $gettok($sockname,2,46) ] ],7)
    echo -s Retry in 5s
    .timer $+ $sockname 1 5 sockopen $sockname
    sockclose $sockname
    return
  }
  var %tmp = %quiz.rnd.q.tmp. [ $+ [ $gettok($sockname,2,46) ] ]
  if ($istok(id a q,$gettok(%tmp,1,124),32)) {
    set %quiz.rnd.q. [ $+ [ $gettok($sockname,2,46) $+ . $+ [ $gettok(%tmp,1,124) ] ] ] $gettok(%tmp,2,124)
  }
  if (* END iswm %tmp) {
    var %q = %quiz.rnd.q. [ $+ [ $gettok($sockname,2,46) $+ . $+ [ q ] ] ]
    var %a = %quiz.rnd.q. [ $+ [ $gettok($sockname,2,46) $+ . $+ [ a ] ] ]
    var %id = %quiz.rnd.q. [ $+ [ $gettok($sockname,2,46) $+ . $+ [ id ] ] ]
    var %c = $gettok($sockname,2,46)
    $replacecs(%quiz.rnd.q. [ $+ [ %c $+ . $+ [ rnd ] ] ],^k,%q,^i,%id,^a,%a,^c,%c)
    hdec quiz.not.used.questions $gettok($sockname,2,46)
    .unset -s %quiz.rnd.q. $+ $gettok($sockname,2,46) $+ *
    unset %quiz.rnd.q.tmp. [ $+ [ $gettok($sockname,2,46) ] ]
    sockclose $sockname
  }
}