I’ll just get on with my ASP3 Twitter reader written in VBScript so that I can leave the past behind me again. The first part is here.
VBScript version 5 has simple and good Regex support. Some features are missing, but it’s good. It is available through a class called RegExp, like so:
Set R=New RegExp
This is the basic concept (to run it, just add these lines and the line above to a vbs-file):
'What do I want to search for? Use the Pattern property.
R.Pattern="a"
'Case insensitive.
R.IgnoreCase=True
'Do the replacement and show the result in a message box.
MsgBox R.Replace("String to search", "(new value)")
'Case insensitive.
R.IgnoreCase=True
'Do the replacement and show the result in a message box.
MsgBox R.Replace("String to search", "(new value)")
To do the detection, I’ll use this script, downloaded from here:
(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?
And here is the working code:
<%
'Create and configure the DOM Document.
Set D = Server.CreateObject("MSXML2.DOMDocument.3.0")
D.async = False
D.setProperty "ServerHTTPRequest", True
D.validateOnParse = True
D.preserveWhiteSpace = False
'Download XML data (pointing to the user's RSS feed).
Rss="http://twitter.com/statuses/user_timeline/33177615.rss"
If Not D.Load(Rss) Then
'Download failed.
Response.write "<p>We can not connect to Twitter right now.</p>"
Else
'Downloading went well. Extract the tweets.
Set TweetList = D.getElementsByTagName("item")
'Keep track on tweet count - I want to display five of them.
TweetCount = 0
'Create the Regex object and set the pattern.
Set R = New RegExp
R.Pattern = "(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?"
For Each TweetNode In TweetList
TweetCount = TweetCount + 1
'Extract the items from the tweet node.
Dt = TweetNode.childNodes(2).text
Text = TweetNode.childNodes(1).text
'If I want it, the feed contains the URL to the tweet.
Url = TweetNode.childNodes(4).text
'This is one of the ugly bits - I don't parse the date, I just grab the part that I want.
Dt = Server.HtmlEncode(Mid(Dt,1,22))
'The tweet starts with my username followed by a colon. I don't want that either.
Text = Server.HtmlEncode(Mid(Text,13,Len(Text)))
'Link detection!
Set Matches = R.Execute(Text)
If Matches.Count > 0 Then
For I = 0 To Matches.Count - 1
Text = R.Replace(Text, "<a href=""" & Matches(I) & """>" & Matches(I) & "</a>")
Next
End If
'Display it!
Response.Write "<p><b>" & Dt & "</b><br />" & Text & "</p>"
'And just quit when five tweets are displayed.
If TweetCount>=5 Then
Exit For
End If
Next
'Release reference to tweet list.
Set TweetList = Nothing
End If
'Release reference to DOM object.
Set D = nothing
%>
Leave a Reply