diff options
-rw-r--r-- | aggregator/fixtures/initial_data.json | 3 | ||||
-rw-r--r-- | aggregator/management/commands/loadfeeds.py | 10 | ||||
-rw-r--r-- | aggregator/migrations/0001_initial.py | 12 | ||||
-rw-r--r-- | aggregator/models.py | 3 |
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 |