Modify for your own purposes. menu menubar { RSS News Feed .VCD ..$submenu($RSSparsemenu($1, VCD)) .- .Retrieve headlines: retrieveHeadlines } alias -l retrieveHeadlines { getRSSfeed VCD www.vcdquality.com/lastx.php?type=4&num=10&genre=1 } on *:connect:{ retrieveHeadlines } alias RSSparsemenu { if (e isin $1) return if ($1 < 2) return : var %str = $hget(RSS_ $+ $2, $1), $& %title = $wildtok(%str, title:*, 1, 1), $& %link = $wildtok(%str, link:*, 1, 1) %title = $gettok(%title, 2-, 58) %link = $gettok(%link, 2-, 58) return $replace(%title, :, -) :url -n %link } ; /getRSSfeed alias getRSSfeed { var %a, %b %a = $gettok($2, 1, 47) %b = $gettok($2, 2-, 47) sockopen %a %a 80 sockmark %a RSS_ $+ $1 %b echo Connecting to %a if ($hget(RSS_ $+ $1)) hfree RSS_ $+ $1 } on *:sockopen:*:{ tokenize 32 $sock($sockname).mark if (RSS_* !iswm $1) { return } if ($sockerr) { echo Closed socket $sockname $sock($sockname).wsmsg return } echo Attempting to retrieve $2- sockwrite -n $sockname GET / $+ $2- HTTP/1.0 $+ $crlf $+ $crlf unset %rsspop } on *:sockread:*:{ tokenize 32 $sock($sockname).mark if (RSS_* !iswm $1) { return } if ($sockerr > 0) return :nextread sockread %RSSread if ($sockbr == 0) return if (%RSSread == $null) %RSSread = - var %r = .*\<(title|link)\>(.*)\<\/(title|link)\>.* if ($regex(%RSSread, %r)) { set %rsspop $addtok(%rsspop, $regml(1) $+ : $+ $regml(2), 1) if ($numtok(%rsspop, 1) == 2) { hadd -m $1 $calc($hget($1, 0).item + 1) %rsspop .msg #absolute-chat %rsspop unset %rsspop } } goto nextread } on *:sockclose:*:{ if ($sockerr) echo Closed socket $sockname ( $+ $sock($sockname).wsmsg $+ ) else echo Closed socket $sockname } on *:TEXT:*:*:{ if ($1 == !rss ) { /getRSSfeed VCD www.vcdquality.com/lastx.php?type=4&num=10&genre=1 } }