Paginator der besser ins Design passt.
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from models import Feed, FeedItem
|
||||
|
||||
|
||||
admin.site.register(
|
||||
Feed,
|
||||
list_display=["title", "public_url", "last_update", 'is_functional'],
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import django.contrib.syndication.views
|
||||
|
||||
from .models import FeedItem
|
||||
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@ Update feeds for Django community page. Requires Mark Pilgrim's excellent
|
||||
Universal Feed Parser (http://feedparser.org)
|
||||
"""
|
||||
|
||||
from aggregator.models import Feed
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from aggregator.models import Feed
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Updates all RSS Feeds"
|
||||
|
||||
@@ -5,14 +5,16 @@ Created on 05.02.2011
|
||||
"""
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
import HTMLParser
|
||||
import urllib2
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.sites.models import Site
|
||||
from django.utils import timezone
|
||||
from utils.html5 import models
|
||||
import HTMLParser
|
||||
import django.db.models
|
||||
import feedparser
|
||||
import urllib2
|
||||
|
||||
from utils.html5 import models
|
||||
|
||||
|
||||
class FeedManager(django.db.models.Manager):
|
||||
@@ -35,7 +37,7 @@ class FeedItemManager(django.db.models.Manager):
|
||||
return self.select_related().filter(feed__site=site)[:max_items]
|
||||
|
||||
|
||||
class Feed(models.Model):
|
||||
class Feed(django.db.models.Model):
|
||||
title = models.CharField(max_length=500)
|
||||
site = models.ForeignKey(Site)
|
||||
feed_url = models.URLField(unique=True, max_length=255)
|
||||
@@ -51,7 +53,8 @@ class Feed(models.Model):
|
||||
parsed_feed = feedparser.parse(self.feed_url)
|
||||
html_parser = HTMLParser.HTMLParser()
|
||||
|
||||
if parsed_feed.bozo and type(parsed_feed.bozo_exception) == urllib2.URLError:
|
||||
if parsed_feed.bozo and type(
|
||||
parsed_feed.bozo_exception) == urllib2.URLError:
|
||||
self.is_functional = False
|
||||
return self.save()
|
||||
|
||||
@@ -68,16 +71,22 @@ class Feed(models.Model):
|
||||
feed_entry.get("content", u"")
|
||||
))
|
||||
)
|
||||
date_modified = feed_entry.get("published_parsed", parsed_feed.get("published_parsed", timezone.now))
|
||||
date_modified = timezone.make_aware(datetime(*date_modified[:6]), timezone.get_current_timezone())
|
||||
date_modified = feed_entry.get(
|
||||
"published_parsed",
|
||||
parsed_feed.get("published_parsed",
|
||||
timezone.now))
|
||||
date_modified = timezone.make_aware(
|
||||
datetime(*date_modified[:6]),
|
||||
timezone.get_current_timezone())
|
||||
|
||||
feed_item, updated = self.feed_items.get_or_create(guid=guid,
|
||||
defaults={
|
||||
'title': title,
|
||||
'link': link,
|
||||
'summary': summary,
|
||||
'date_modified': date_modified
|
||||
})
|
||||
feed_item, updated = self.feed_items.get_or_create(
|
||||
guid=guid,
|
||||
defaults={
|
||||
'title': title,
|
||||
'link': link,
|
||||
'summary': summary,
|
||||
'date_modified': date_modified
|
||||
})
|
||||
feed_item.save()
|
||||
self.last_update = timezone.now()
|
||||
return self.save()
|
||||
@@ -86,7 +95,7 @@ class Feed(models.Model):
|
||||
ordering = ("title",)
|
||||
|
||||
|
||||
class FeedItem(models.Model):
|
||||
class FeedItem(django.db.models.Model):
|
||||
feed = models.ForeignKey(Feed, related_name='feed_items')
|
||||
title = models.CharField(max_length=500)
|
||||
link = models.URLField(max_length=500)
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
from django.contrib.sitemaps import Sitemap
|
||||
|
||||
from models import FeedItem
|
||||
|
||||
|
||||
|
||||
# noinspection PyMethodMayBeStatic
|
||||
class FeedItemSitemap(Sitemap):
|
||||
changefreq = "never"
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
from django import template
|
||||
|
||||
from models import Feed
|
||||
|
||||
|
||||
class FeedListNode(template.Node):
|
||||
|
||||
def __init__(self, varname):
|
||||
self.varname = varname
|
||||
|
||||
@@ -26,5 +26,6 @@ def do_get_feed_list(parser, token):
|
||||
"First argument to '%s' tag must be 'as'" % bits[0]
|
||||
return FeedListNode(bits[2])
|
||||
|
||||
|
||||
register = template.Library()
|
||||
register.tag('get_feed_list', do_get_feed_list)
|
||||
|
||||
Reference in New Issue
Block a user