Your own Lolcats widget (I Can Has Cheezburger?) February 25
OK, I’m the first to admit that the whole lolcats thing might not be for everyone. But it’s for me. If it’s for you, too, then enjoy
If you would like this widget on your site/blog, just add the code:
<script src='http://lolcats.com.89.seekdotnet.com' type='text/javascript'></script>
And here’s how it was done:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim sCacheKey As String = "CACHE_ICanHasCheezburger"
Dim oLolCat As clsLolCat
Dim sHTML As String
oLolCat = CType(Cache(sCacheKey), clsLolCat)
If oLolCat Is Nothing Then
oLolCat = PicAndCaptionGet()
Cache.Insert(sCacheKey, oLolCat, Nothing, Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration)
End If
sHTML = "<div><a href='" & oLolCat.sLinkURL & "'><img border='0' src='" & oLolCat.sPicURL & "'/></a>"
sHTML = sHTML & "<div>More at LolCats at <a href='http://icanhascheezburger.com'>I Can Has Cheezburger</a></div></div>"
sHTML = "document.write(""" & sHTML & """);"
Response.Write(sHTML)
End Sub
This first part just checks to see if we have the LolCat HTML in the cache. If we don’t then generate the HTML and put it in the cache again. Saves us hitting the http://icanhascheezburger.com site all the time (or in this case, feedburner).
Private Function PicAndCaptionGet() As clsLolCat
Dim Http As HttpWebRequest
Dim sRequestURL As String
Dim WebResponse As HttpWebResponse
Dim responseStream As Stream
Dim Reader As StreamReader
Dim sText As String
Dim oRSSDoc As New System.Xml.XmlDocument
Dim oFirstNode As System.Xml.XmlNode
Dim oLolCat As New clsLolCat
sRequestURL = "http://feeds.feedburner.com/ICanHasCheezburger?format=xml"
Http = CType(WebRequest.Create(sRequestURL), HttpWebRequest)
Http.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate")
WebResponse = CType(Http.GetResponse(), HttpWebResponse)
responseStream = WebResponse.GetResponseStream
If (WebResponse.ContentEncoding.ToLower().Contains("gzip")) Then
responseStream = New GZipStream(responseStream, CompressionMode.Decompress)
ElseIf (WebResponse.ContentEncoding.ToLower().Contains("deflate")) Then
responseStream = New DeflateStream(responseStream, CompressionMode.Decompress)
End If
Reader = New StreamReader(responseStream, Encoding.Default)
sText = Reader.ReadToEnd()
WebResponse.Close()
responseStream.Close()
oRSSDoc.LoadXml(sText)
oFirstNode = oRSSDoc.SelectSingleNode("//item")
oLolCat.sCaption = oFirstNode("title").InnerText
oLolCat.sLinkURL = oFirstNode("link").InnerText
oLolCat.sPicURL = oFirstNode("media:content").Attributes("url").Value
PicAndCaptionGet = oLolCat
End Function
End Class
Public Class clsLolCat
Public sPicURL As String
Public sCaption As String
Public sLinkURL As String
End Class
This is the code that visits the icanhascheezburger RSS feed and extracts the latest post details. This is all pretty simple stuff, with one cool bit that takes care of the gzip compression that is on the feed. Full credit must go to Rick Strahl for his post talking about gzip: http://www.west-wind.com/WebLog/posts/102969.aspx
Briggs Mar 6
ha I love this. thanks.
LOLcats were made for me.
G4HQ Apr 28
Omg! Nice! Also if u have the script where they are able to edit pictures and then submit them please post it
Thanks!