on *:signal:sbot_read:{
if ((join == $3) || (part == $3) || (privmsg == $3) || (notice == $3) || (topic == $3) || (kick == $3) || (mode == $3) || (quit == $3)) {
set %sbot_nick $remove($gettok($2,1,33),:)
set %sbot_addy $gettok($2,2,64)
set %sbot_ident $gettok($gettok($2,1,64),2,33)
set %sbot_chan $4
set %sbot_com $3
set %sbot_other $5-
}
if ($3 isnum) { .signal -n sbot_r [ $+ [ $3 ] ] $4- }
elseif ($2 == ping) { .signal -n sbot_ping $3 | halt }
else { .signal -n sbot_ [ $+ [ $3 ] ] }
echo @sbot 04 $1-
}
on *:signal:sbot_privmsg:{
if (%sbot_nick == $me) {
if (title isin $gettok(%sbot_other,1,32)) {
set %sbot_web_title 1
sbot_web_open
}
}
}
alias sbot_web_open { sockopen sbot_web $gettok(%sbot_other,2,32) 80 }
on ^1:sockopen:sbot_web: {
.sockwrite -n $sockname GET / HTTP/1.1 | haltdef
.sockwrite -n $sockname Host: $gettok(%sbot_other,2,32)
.sockwrite $sockname $crlf
}
on 1:sockread:sbot_web: {
sockread -f %sb_raw
;echo @sbot 04 %sb_raw
if (%sbot_web_title) {
if (<title> isin %sb_raw) {
set %sbot_web_ts $regex(%sb_raw,.*<title>(.*)</title>.*)
set %sbot_web_ts $regml(1)
sbot_com privmsg %sbot_chan : $+ %sbot_nick $+ : [title: $gettok(%sbot_other,2,32) $+ $chr(93) $iif(%sbot_web_ts != $null, %sbot_web_ts, error: cannot locate title)
.sockclose sbot_web
unset %sbot_web_title | unset %sbot_web_ts
}
}
}