aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2012-03-10 14:15:07 +0100
committerGravatar Tom Willemsen2012-03-10 14:15:07 +0100
commit20ade8543a5d30adf1d0afbdfa5381ab8734ed7c (patch)
treed017366e0627799b5adfbcda5cd35d1cfc3a67b6
parente6de0a9062b802d7fe0196a10abf909414993531 (diff)
downloadryuslash.org-20ade8543a5d30adf1d0afbdfa5381ab8734ed7c.tar.gz
ryuslash.org-20ade8543a5d30adf1d0afbdfa5381ab8734ed7c.zip
Enable parsing of markdown posts
-rw-r--r--aggregator/fixtures/initial_data.json3
-rw-r--r--aggregator/management/commands/loadfeeds.py10
-rw-r--r--aggregator/migrations/0001_initial.py12
-rw-r--r--aggregator/models.py3
4 files changed, 19 insertions, 9 deletions
diff --git a/aggregator/fixtures/initial_data.json b/aggregator/fixtures/initial_data.json
index a9a83df..36e1d3f 100644
--- a/aggregator/fixtures/initial_data.json
+++ b/aggregator/fixtures/initial_data.json
@@ -18,7 +18,8 @@
"base_url": "http://diasp.org/",
"feed_url": "public/ryuslash.atom",
"profile_url": "public/ryuslash",
- "br2nl": true
+ "br2nl": true,
+ "with_markdown": true
}
},
{
diff --git a/aggregator/management/commands/loadfeeds.py b/aggregator/management/commands/loadfeeds.py
index 3f698e4..8d9e83c 100644
--- a/aggregator/management/commands/loadfeeds.py
+++ b/aggregator/management/commands/loadfeeds.py
@@ -1,12 +1,13 @@
import feedparser
import datetime
+import markdown
from django.core.management.base import BaseCommand
from aggregator.models import Feed, Post
class Command(BaseCommand):
- help = "hi"
+ help = "Load data from saved feeds."
def handle(self, *args, **kwargs):
feeds = Feed.objects.all()
@@ -27,10 +28,15 @@ class Command(BaseCommand):
post = Post(post_id=entry.id,
title=entry.title,
- body=entry.summary,
remote_url=entry.link,
updated=updated,
feed=feed)
+
+ if feed.with_markdown:
+ post.body = markdown.markdown(entry.summary)
+ else:
+ post.body = entry.summary
+
post.save()
last_updated = Post.objects.filter(feed=feed)\
diff --git a/aggregator/migrations/0001_initial.py b/aggregator/migrations/0001_initial.py
index f3e2093..1cb4ade 100644
--- a/aggregator/migrations/0001_initial.py
+++ b/aggregator/migrations/0001_initial.py
@@ -15,11 +15,12 @@ class Migration(SchemaMigration):
('base_url', self.gf('django.db.models.fields.URLField')(max_length=255)),
('feed_url', self.gf('django.db.models.fields.CharField')(max_length=255)),
('profile_url', self.gf('django.db.models.fields.CharField')(max_length=255)),
- ('favicon_ext', self.gf('django.db.models.fields.CharField')(max_length=4)),
+ ('favicon_ext', self.gf('django.db.models.fields.CharField')(default='png', max_length=4)),
('title', self.gf('django.db.models.fields.CharField')(max_length=500, blank=True)),
('updated', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
('uses_title', self.gf('django.db.models.fields.BooleanField')(default=False)),
('br2nl', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('with_markdown', self.gf('django.db.models.fields.BooleanField')(default=False)),
))
db.send_create_signal('aggregator', ['Feed'])
@@ -48,20 +49,21 @@ class Migration(SchemaMigration):
models = {
'aggregator.feed': {
- 'Meta': {'object_name': 'Feed'},
+ 'Meta': {'ordering': "['-updated']", 'object_name': 'Feed'},
'base_url': ('django.db.models.fields.URLField', [], {'max_length': '255'}),
'br2nl': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'favicon_ext': ('django.db.models.fields.CharField', [], {'max_length': '4'}),
+ 'favicon_ext': ('django.db.models.fields.CharField', [], {'default': "'png'", 'max_length': '4'}),
'feed_url': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
'profile_url': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '500', 'blank': 'True'}),
'updated': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
- 'uses_title': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ 'uses_title': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'with_markdown': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
},
'aggregator.post': {
- 'Meta': {'object_name': 'Post'},
+ 'Meta': {'ordering': "['-updated']", 'object_name': 'Post'},
'added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'body': ('django.db.models.fields.TextField', [], {}),
'feed': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['aggregator.Feed']"}),
diff --git a/aggregator/models.py b/aggregator/models.py
index 6bc6d1a..d873e6c 100644
--- a/aggregator/models.py
+++ b/aggregator/models.py
@@ -5,11 +5,12 @@ class Feed(models.Model):
base_url = models.URLField(max_length=255)
feed_url = models.CharField(max_length=255)
profile_url = models.CharField(max_length=255)
- favicon_ext = models.CharField(max_length=4)
+ favicon_ext = models.CharField(max_length=4, default="png")
title = models.CharField(max_length=500, blank=True)
updated = models.DateTimeField(null=True, blank=True)
uses_title = models.BooleanField(default=False)
br2nl = models.BooleanField(default=False)
+ with_markdown = models.BooleanField(default=False)
def get_profile_url(self):
return self.base_url + self.profile_url