aboutsummaryrefslogtreecommitdiffstats
path: root/aggregator
diff options
context:
space:
mode:
Diffstat (limited to 'aggregator')
-rw-r--r--aggregator/feeds.py44
-rw-r--r--aggregator/migrations/0002_auto__chg_field_post_post_id.py49
2 files changed, 93 insertions, 0 deletions
diff --git a/aggregator/feeds.py b/aggregator/feeds.py
new file mode 100644
index 0000000..3274ba3
--- /dev/null
+++ b/aggregator/feeds.py
@@ -0,0 +1,44 @@
+from django.contrib.syndication.views import Feed
+from django.contrib.comments.models import Comment
+
+from .models import Post
+
+class LatestPostsFeed(Feed):
+ title = "ryuslash's RSS feed"
+ link = "/"
+ description = "Updates by ryuslash"
+
+ def items(self):
+ return Post.objects.all()[:20]
+
+ def item_title(self, item):
+ return item.title
+
+ def item_description(self, item):
+ return item.body
+
+ def item_link(self, item):
+ return "/post/%d/" % item.pk
+
+ def item_pubdate(self, item):
+ return item.updated
+
+class LatestCommentsFeed(Feed):
+ title = "ryuslash's latest comments"
+ link = "/"
+ description = "Comments on posts"
+
+ def items(self):
+ return Comment.objects.all()
+
+ def item_title(self, item):
+ return 'Comment for %s' % item.content_object.title
+
+ def item_description(self, item):
+ return item.comment
+
+ def item_link(self, item):
+ return "/post/%s/" % item.object_pk
+
+ def item_pubdate(self, item):
+ return item.submit_date
diff --git a/aggregator/migrations/0002_auto__chg_field_post_post_id.py b/aggregator/migrations/0002_auto__chg_field_post_post_id.py
new file mode 100644
index 0000000..906ed2d
--- /dev/null
+++ b/aggregator/migrations/0002_auto__chg_field_post_post_id.py
@@ -0,0 +1,49 @@
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+
+ # Changing field 'Post.post_id'
+ db.alter_column('aggregator_post', 'post_id', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255))
+
+
+ def backwards(self, orm):
+
+ # Changing field 'Post.post_id'
+ db.alter_column('aggregator_post', 'post_id', self.gf('django.db.models.fields.CharField')(max_length=500, unique=True))
+
+
+ models = {
+ 'aggregator.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', [], {'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'}),
+ 'with_markdown': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ 'aggregator.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']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'post_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+ 'remote_url': ('django.db.models.fields.URLField', [], {'max_length': '255'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {})
+ }
+ }
+
+ complete_apps = ['aggregator']