views.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import feedparser
  2. import HTMLParser
  3. from django.views.decorators.cache import cache_page
  4. from django.template import RequestContext
  5. from django.shortcuts import render_to_response
  6. from django.http import HttpResponse
  7. from django.conf import settings
  8. def feed_provider(request):
  9. feed_url = ''
  10. limit = 3
  11. try:
  12. if settings.FEED_PROVIDER_URL:
  13. feed_url = settings.FEED_PROVIDER_URL
  14. if settings.FEED_PROVIDER_MAX_ENTRIES:
  15. limit = settings.FEED_PROVIDER_MAX_ENTRIES
  16. except:
  17. pass
  18. return feed(request, feed_url, limit)
  19. def feed_ffdn(request):
  20. feed_url = ''
  21. limit = 3
  22. try:
  23. if settings.FEED_FFDN_URL:
  24. feed_url = settings.FEED_FFDN_URL
  25. if settings.FEED_FFDN_MAX_ENTRIES:
  26. limit = settings.FEED_FFDN_MAX_ENTRIES
  27. except:
  28. pass
  29. return feed(request, feed_url, limit)
  30. @cache_page(60 * 60 * 24) # Cache 24h
  31. def feed(request, feed_url, limit):
  32. try:
  33. if feed_url:
  34. feed = feedparser.parse(feed_url)
  35. entries = feed.entries[:limit]
  36. return render_to_response('fragments/feed.html',
  37. {'feed_entries': entries},
  38. context_instance=RequestContext(request))
  39. except:
  40. pass
  41. return HttpResponse('')