Below is the file 'ljrss.py' from this revision. You can also download the file.
#!/usr/bin/python import StringIO import httplib import urllib import gzip # # RSS client for livejournal that does gzip encoding. # def get_livejournal_rss(site, username, user_agent, uri=None, no_recurse=False): conn = httplib.HTTPConnection(site) headers = {'Accept-encoding':'gzip','User-agent':user_agent} if uri == None: uri = "http://%s/users/%s/data/rss" % (site, urllib.quote(username)) conn.request("GET", uri, headers=headers) r = conn.getresponse() if r.status == 302: # prevent evil if no_recurse: return None # probably a community new_location = r.getheader('Location', None) if not new_location.startswith('http://' + site + '/'): return None conn.close() return get_livejournal_rss(site, username, user_agent, uri=new_location, no_recurse=True) elif r.status <> 200: conn.close() return None data = r.read() if r.getheader('content-encoding', None) == 'gzip': data = gzip.GzipFile(fileobj=StringIO.StringIO(data)).read() return data if __name__ == '__main__': print get_livejournal_rss('www.livejournal.com', 'unisfa', 'http://grahame.angrygoats.net/lj-haiku; grahame@angrygoats.net')