I dug up an old post from FibreOptics (https://forums.mirc.com/ubbthreads.php/topics/134803/re-cnn-headline-grabber#Post134803) and re-created my script. It's not finished, but the following works a little better:
Code
alias rss {
  var %error, %pattern https?:\/\/(?:www\.)?([-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6})\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)
  if (!$regex($1,%pattern)) %error = Invalid URL!
  else {
    var %t $ticks, %itemcol itemcol. $+ %t, %com rss. $+ %t, %com2 rss2. $+ %t, %com3 rss3. $+ %t, %url $1
    .comopen %com MSXML2.DOMDocument.6.0
    if ((!$com(%com)) || ($comerr)) %error = Unable to create an instance of MSXML2.DOMDocument.6.0
    elseif ((!$com(%com, async, 4, bool, false)) || ($comerr)) %error = Unable to set async property
    elseif ((!$com(%com, load, 1, bstr*, %url)) || ($comerr)) %error = Unable to load XML from: %url
    elseif ((!$com(%com, selectnodes, 1, bstr*, /rss/channel/item, dispatch* %itemcol)) || ($comerr)) %error = Unable to select nodes /rss/channel/item
    else {
      var %items $comval(%itemcol,0), %item 1
      if (%items) {
        while (%item <= %items) {
          if ((!$com(%itemcol, item, 1, uint, %item, dispatch* %com2)) || ($comerr)) %error = Cannot dispatch XML for individual item to new object
          if ($com(%com2)) {
            .comclose %com2 $com(%com2, childnodes, 3, dispatch* %com3) 
            if ($com(%com3)) {
              var %children $comval(%com3,0), %child 1
              while (%child <= %children) {
                if ($comval(%com3,%child,tagName) == title) echo -ag $v1 : $comval(%com3,%child,text)
                if ($comval(%com3,%child,tagName) == link) echo -ag $v1 : $comval(%com3,%child,text)                
                if ($comval(%com3,%child,tagName) == description) echo -ag $v1 : $comval(%com3,%child,text)
                if ($comval(%com3,%child,tagName) == pubDate) echo -ag $v1 : $comval(%com3,%child,text)
                inc %child
              }
              .comclose %com3
            }
          }
          inc %item
        }
      }
      else %error = No news items found.
    }
  }
  ; Handle errors
  :error
  if ($error) var %error $v1 | reseterror

  ; Close coms
  if ($com(%com)) .comclose %com
  if ($com(%com2)) .comclose %com2
  if ($com(%com3)) .comclose %com3
  if ($com(%itemcol)) .comclose %itemcol

  ; Show error
  if (%error) echo -ag Error: $v1
}

Last edited by kap; 10/04/20 08:38 AM. Reason: removed $_rss.shorten alias

GNU Terry Pratchett - Looking for a mIRC help channel -> Check #mircscripting @ irc.swiftirc.net