Skip to content

Commit

Permalink
added text parsing for entries
Browse files Browse the repository at this point in the history
  • Loading branch information
justquick committed Feb 17, 2010
1 parent 0a2212a commit 38cb275
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
21 changes: 20 additions & 1 deletion synagg/models.py
Expand Up @@ -7,8 +7,10 @@
from feedparser import parse
from tidylib import tidy_fragment
from picklefield import PickledObjectField
from lxml.html import parse
except ImportError:
raise ImproperlyConfigured('You must install pytidylib, django-picklefield==0.1 and feedparser==4.1')
raise ImproperlyConfigured('You must install lxml, pytidylib, django-picklefield==0.1 and feedparser==4.1')


class Feed(models.Model):
url = models.URLField('RSS/Atom Feed URL',unique=True)
Expand Down Expand Up @@ -47,6 +49,10 @@ def save(self, *a, **kw):
def __unicode__(self):
return self.title


class EntryManager(models.Manager):
pass

class Entry(models.Model):
feed = models.ForeignKey(Feed)
data = PickledObjectField()
Expand All @@ -57,5 +63,18 @@ class Entry(models.Model):
summary = property(lambda self: tidy_fragment(self.data.summary)[0])
tease = property(lambda self: self.summary.split('. ')[0])

def text(self):
try:
return filter(None, (x.text for x in parse(self.link).getroot().cssselect('body p')))
except Exception, e:
print e
return []

def update(self, *a, **kw):
data = self.data.copy()
data.update(*a, **kw)
self.data = data
self.save()

def __unicode__(self):
return self.title
2 changes: 1 addition & 1 deletion synagg/templates/synagg/feed_detail.html
Expand Up @@ -7,7 +7,7 @@ <h2><a href="{{ object.link }}">{{ object.link }}</a></h2>
<li>
<h3><a href="{{ entry.link }}">{{ entry }}</a></h3>
<p>From {{ entry.updated_parsed|date }} at {{ entry.updated_parsed|time }}</p>
<p>{{ entry.summary|safe }}</p>
{% for t in entry.text %}<p>{{ t }}</p>{% endfor %}
</li>
{% endfor %}
</ol>

0 comments on commit 38cb275

Please sign in to comment.