Ejemplo n.º 1
0
def user_river_sources(request,owner_name):
  if request.method == 'GET':
    owner_profile = request.owner_user.userprofile
    web_feeds = owner_profile.web_feeds.all()\
                                       .order_by('source__title')\
                                       .select_related("source")
    if request.user == request.owner_user:
      other_sources = owner_profile.sources.all()
    else:
      other_sources = owner_profile.public_sources.all()
    other_sources = other_sources.exclude(webfeed__userprofile=owner_profile)\
                                 .order_by("title")
    def add_tag_to_feed(feed):
      tag_names = get_item_tag_names(request.owner_user,feed)
      feed.main_tag_name = tag_names[0] if tag_names else ""
      return feed
    web_feeds = [add_tag_to_feed(f) for f in web_feeds.iterator()]
    web_feeds.sort(key=lambda f:f.main_tag_name)
    d = add_base_template_context_data({
        'tagged_web_feeds': web_feeds,
        'user_tags': get_user_tags(request.owner_user), 
        'other_sources': other_sources,
        'num_sources' : len(web_feeds)+other_sources.count(),
        'source_add_bookmarklet': generate_source_add_bookmarklet(
          request.build_absolute_uri("/"),request.user.username),
        }, request.user.username, owner_name)
    expectedFormat = request.GET.get("format","html")
    if expectedFormat.lower()=="opml":
      return render_to_response('sources_opml.xml',d,
                                context_instance=RequestContext(request),
                                mimetype="text/xml")
    else:
      return render_to_response('sources.html',d,
                                context_instance=RequestContext(request))
  elif request.user != request.owner_user:
    return HttpResponseForbidden()
  elif request.method == 'POST':
    try:
      src_info = simplejson.loads(request.body)
    except Exception:
      src_info = {}
    if not u"url" in src_info:
      return HttpResponseBadRequest("Only a JSON formatted request with a 'url' parameter is accepted.")
    q = QueryDict('', mutable=True)
    q.update(src_info)
    request.POST = q
    return user_river_source_add(request, owner_name)
  # TODO
  # elif request.method == 'DELETE':
  #   return user_river_source_stop_following(request, owner_name)
  else:
    return HttpResponseNotAllowed(['GET','POST'])
Ejemplo n.º 2
0
 def test_get_user_tags(self):
     tagSet = get_user_tags(self.user_a)
     self.assertEqual(3, len(tagSet))
     self.assertIn(self.tag_mouf, tagSet)
     self.assertIn(self.tag_glop, tagSet)
     self.assertIn(self.tag_hop, tagSet)
Ejemplo n.º 3
0
 def test_get_user_tags(self):
   tagSet = get_user_tags(self.user_a)
   self.assertEqual(3,len(tagSet))
   self.assertIn(self.tag_mouf,tagSet)
   self.assertIn(self.tag_glop,tagSet)
   self.assertIn(self.tag_hop,tagSet)