Example #1
0
def manage_stream(request, username, streamname):
    if request.user.username == username:
        
        stream = get_object_or_404(lifestream.models.Stream, user=request.user, name=streamname)
        stream_config = StreamConfig(stream.config)        
        feed_rows = stream.feed_set.all()
        stream_config.ensureFeedsConfig(feed_rows)
        feed_id_to_feed = {}
        for row in feed_rows:
            feed_id_to_feed[row.pk] = row
        feeds = []
        for feed in stream_config.config['feeds']:
            feed_row = feed_id_to_feed[feed['url_hash']]
            feeds.append({'url': feed_row.url,
                          'title': feed_row.title,
                          'pk': feed_row.pk,
                          'entries_visible_default': feed['entries_visible_default']})
        
        raw_entries = (lifestream.models.Entry.objects.order_by('-last_published_date')
                      .filter(feed__user=request.user,
                              feed__streams__name__exact = streamname))[:150]
        plugins = [StreamEditorPlugin(log)]
        entry_pair = zip(raw_entries, render_entries(request, raw_entries, plugins))        
        feed_model = lifestream.models.FeedForm()
                
        stream.url = "/u/%s/s/%s" % (username, stream.name)
            
        preferences = patchouli_auth.preferences.getPreferences(request.user)
        template_data = { 'feeds': feeds,
                                'entry_pair': entry_pair,
                                'unused_feeds': [],
                                'form': feed_model,
                                'request': request,
                                'stream': stream,
                                'stream_config': stream_config,
                                'username': request.user.username,
                                'preferences': preferences}
        [template_data.update(plugin.template_variables(template_data)) for plugin in plugins]
        return render_to_response('stream_editor.html',
                              template_data,
                              context_instance=django.template.RequestContext(request))
    else:
        return django.http.HttpResponse(HACKING_MESSAGE, status=400)
Example #2
0
def entry_pair_for_entries(request, raw_entries, plugins):
    """ Helper method """    
    return zip(raw_entries, render_entries(request, raw_entries, plugins))