rendered paste bodyalias request {
var %id = $1, %url = $2, %info = $3-
if (!%id || !%url) { return }
if (!$regex(%url, /^(http:\/\/)?([^:/]+)(:(\d+))?(/.*)?$/i)) { return }
var %host, %port = 80, %path = /, %matches = $regml(0), %i = 1
if ($regml(%i) == http://) { inc %i }
%host = $regml(%i)
if (%matches > %i) {
inc %i
if ($left($regml(%i), 1) == /) { %path = $regml(%i) }
else {
inc %i
%port = $regml(%i)
if (%matches > %i) {
inc %i
%path = $regml(%i)
}
}
}
var %largest = 0, %total = $sock(req1123476767*, 0)
%i = 1
while (%i <= %total) {
var %conn = $right($sock(req1123476767*, %i).name, -13)
if (%conn isnum) {
if (%conn > %largest) {
%largest = %conn
}
}
inc %i
}
inc %largest
var %name = req1123476767 $+ %largest
hmake %name 5
hadd %name id %id
hadd %name info %info
hadd %name header $true
hadd %name chunked $false
hadd %name request $&
GET %path HTTP/1.1 $+ $crlf $+ $&
Host: %host $+ : $+ %port $+ $crlf $+ $&
Connection: Close $+ $crlf $+ $crlf
sockopen %name %host %port
}
on 1:sockopen:req1123476767*:{
var %id = $hget($sockname, id)
if ($sockerr) {
.signal %id 0 $hget($sockname, info) $sock($sockname).wserr $sock($sockname).wsmsg
hfree $sockname
return
}
.signal %id 2 $hget($sockname, info)
sockwrite $sockname $hget($sockname, request)
}
on 1:sockread:req1123476767*:{
var %temp, %id = $hget($sockname, id), %chunked = $false, %read, %len
if ($sockerr) {
.signal %id 0 $hget($sockname, info) $sock($sockname).wserr $sock($sockname).wsmsg
hfree -w $sockname
return
}
while ($true) {
sockread -f %temp
if ($sockbr == 0) { break }
if ($hget($sockname, header)) {
if (%temp == Transfer-Encoding: chunked) { hadd -m $sockname chunked $true }
elseif (%temp == $null) { hadd -m $sockname header $false }
}
elseif (%temp != $null) {
if ($hget($sockname, chunked)) {
if (%chunked) {
inc %read $calc($sockbr + 2)
if (%read >= %len) { %chunked = $false }
.signal %id 1 $hget($sockname, info) %temp
}
else {
%read = 0
%len = $base($gettok(%temp, 1, 32), 16, 10)
%chunked = $true
}
}
else {
.signal %id 1 $hget($sockname, info) %temp
}
}
}
}
on 1:sockclose:req1123476767*:{
var %id = $hget($sockname, id)
.signal %id 3 $hget($sockname, info)
hfree $sockname
}
on *:SIGNAL:zoek:{
var %status = $1
if (%status == 0) {
; ERROR!
var %errno = $2, %errstr = $3-
echo 4 -a ERROR ( $+ %errno $+ ): %errstr
}
if (%status == 1) {
; OUTPUTTING A LINE
aline @woorden $2-
; echo 2 -a $2-
}
if (%status == 2) {
; STARTING DATA OUTPUT
window -l @woorden 10 10
}
if (%status == 3) {
; ENDING DATA OUTPUT
}
}
menu @woorden {
dclick: {
set %text $sline(@woorden,1)
msg #topradio %text
}
}
alias 3letters /request zoek http://www.strekewijf.be/info.php?field= $+ $chr(37) $+ $1 $+ $chr(37) $+ $2 $+ $chr(37) $+ $3 $+ $chr(37) $+ &action=search
alias nrletters /request zoek http://www.strekewijf.be/info.php?field= $+ $1 $+ &action=search2
alias beginletters /request zoek http://www.strekewijf.be/info.php?field= $+ $1 $+ &action=search3
alias eindletters /request zoek http://www.strekewijf.be/info.php?field= $+ $1 $+ &action=search4
menu channel {
#topradio
.3 letter gegeven:/3letters $$?="eerste letter ?" $$?="tweede letter ?" $$?="derde letter ?"
.aantal karakters:/nrletters $$?="aantal letters ?"
.beginletters:/beginletters $$?="beginletters ?"
.eindletters:/eindletters $$?="eindletters ?"
}