class FFNode(template.Node):
    def __init__(self, action, template_name, **kwargs):
        self.template_name = template_name
        self.options = kwargs
        self.ff = FriendFeed()
        
        self.render = getattr(self,action)

    def user_feed(self, context):
        username_var = template.Variable(self.options['username'])
        username = username_var.resolve(context)
	try:
	    items = self.ff.fetch_user_feed(username)['entries']
	    items_requested = int(self.options.get('num_items', len(items)))
	    num_items = min(items_requested, len(items))
	    context['items'] = items[:num_items]
	    context['username'] = username
	except URLError:
	    context['items'] = []
	    context['username'] = username
        return render_to_string(self.template_name, context)
 def __init__(self, action, template_name, **kwargs):
     self.template_name = template_name
     self.options = kwargs
     self.ff = FriendFeed()
     
     self.render = getattr(self,action)