more private feeds
Posted by ark, ,
I've posted before about my little script to make atom feeds more private by expiring old posts by replacing the text, here and here. I've also posted about weak password protecting your sites. This was all that I did to have a blog that was private from the search engines but easy for people to read either in google reader or via email or in their browser. I did this using blogger.com's sftp support (I also ran a chrooted sftp server). Seems that my paranoia has fueled quite a few posts here in the past, eh! Well Blogger has decided to stop supporting sftp publishing so I've had t find another solution. Unlucky for me, I like the blogger posting UI and I think I found a good solution that will allow me to keep my content out of search engines and still make it accessible to folks that I want to read it. I'm not talking about this blog by the way, I'm talking about my daughter's blog and my personal blog. I'm going to have a blog that is invite only, you need to be specifically invited to read it, otherwise you end up at a rather unhelpful 'you need access' page with no way to contact me to ask for access. To make my blog readable in google reader all I needed to do was get the feed and make it available. I thought of a few ways to do this. First plan was to subscribe to the blog and then get some kind of email to rss gateway worked out. I wish mailman supported this but it doesn't. I did manage to get a patch to do it, but never worked on it because by the time I got the patch I also found my final solution. I wrote a Google AppEngine app that stored oauth credentials and fetched the feed from blogger, trimmed it and published it for all to see. I used code from the gdata python blogger oauth example and salmon protocol and ended up with my own 'Feed App' (Say it with a New Zealand accent) check out the source code at:

http://code.google.com/p/wtwf/source/browse/#svn/trunk/feeds/feedappwtwf

I plan to extend it to implement the expandRss functionality in a server that should be more reliable than my home network connection but for now it does the job and that makes me happy. I encountered a few problems while writing it. The oauth code required you to be logged in, but I wanted some of the urls to work without being logged in. I finally tracked it down and used users.create_login_url('/oauth/request_token') to make sure the user was logged in. The oauth.py code failed silently when the user wasn't logged in (very annoying!). I also found out that when you get the feed via oauth you end up getting all the draft blog posts too! so I had to write in a quick check to filter those out. I guess I really should make a google account that can only read the blogs then that might only get a feed with the real blog posts in it.

Now I'm off to work out how to point all my old blog posts at the new blog that's living in a subdomain and to play with the new fancy blogger templates, whee!

Comments