From c0394f2461854b2735aa5ff7b5435b5bc1978498 Mon Sep 17 00:00:00 2001 From: bnewbold Date: Wed, 27 Apr 2011 20:23:42 -0400 Subject: a few small todo items - add 3 more categories of pics from acidcow: celebs, girls, and cars - add favicon url field to PicFeed - credits/license field for Pic and PicSet - sort json/sets_by_feed (most recent first) - add 'is_active' mechanism to disable feeds w/o deleting --- piccast/feeds/management/commands/scrape_feeds.py | 2 +- piccast/feeds/models.py | 8 ++++++++ piccast/feeds/views.py | 8 ++++---- 3 files changed, 13 insertions(+), 5 deletions(-) (limited to 'piccast/feeds') diff --git a/piccast/feeds/management/commands/scrape_feeds.py b/piccast/feeds/management/commands/scrape_feeds.py index c391470..2371f97 100644 --- a/piccast/feeds/management/commands/scrape_feeds.py +++ b/piccast/feeds/management/commands/scrape_feeds.py @@ -144,7 +144,7 @@ def scrape_feed(feed_shortname): del f if(feed_shortname == u"acidcow"): - psets = filter(lambda s: s['category'] in (u'Pics', u'Picdump'), psets) + psets = filter(lambda s: s['category'] in (u'Pics', u'Picdump',u'Celebs',u'Girls',u'Cars'), psets) new_psets = filter(lambda s: \ 0 == len(PicSet.objects.filter(source_url=s['source_url'])), \ diff --git a/piccast/feeds/models.py b/piccast/feeds/models.py index cf8fc77..716bd78 100644 --- a/piccast/feeds/models.py +++ b/piccast/feeds/models.py @@ -23,6 +23,7 @@ class Pic(models.Model): original_width = models.PositiveIntegerField(null=True,blank=True) source_url = models.URLField(blank=True) caption = models.TextField(blank=True) + credits = models.TextField(blank=True) is_nsfw = models.NullBooleanField(null=True, blank=True) def __unicode__(self): @@ -39,6 +40,7 @@ class Pic(models.Model): 'original_width': self.original_width, 'source_url': self.source_url, 'caption': self.caption, + 'credits': self.credits, 'is_nsfw': self.is_nsfw, } @@ -48,6 +50,7 @@ class Pic(models.Model): 'original_url': self.original_url, 'original_height': self.original_height, 'original_width': self.original_width, + 'credits': self.credits, } class PicFeed(models.Model): @@ -56,6 +59,8 @@ class PicFeed(models.Model): shortname = models.SlugField(blank=False) source_url = models.URLField(blank=True) rssfeed_url = models.URLField(blank=True) + favicon_url = models.URLField(blank=True) + is_active = models.BooleanField(default=False) title = models.CharField(max_length=80, blank=True) description = models.TextField(blank=True) image = models.ForeignKey('feeds.Pic', blank=True, null=True) @@ -71,6 +76,7 @@ class PicFeed(models.Model): 'shortname': self.shortname, 'source_url': self.source_url, 'rssfeed_url': self.rssfeed_url, + 'favicon_url': self.favicon_url, 'title': self.title, 'description': self.description, 'image': @@ -85,6 +91,7 @@ class PicSet(models.Model): source_url = models.URLField(blank=True) title = models.CharField(max_length=128, blank=False) description = models.TextField(blank=True) + credits = models.TextField(blank=True) keywords = models.CharField(max_length=256, blank=True) image = models.ForeignKey('feeds.Pic', null=True,blank=True) feed = models.ForeignKey('feeds.PicFeed', null=True,blank=False) @@ -101,6 +108,7 @@ class PicSet(models.Model): 'source_url': self.source_url, 'title': self.title, 'description': self.description, + 'credits': self.credits, 'keywords': self.keywords, 'image': (self.image.serializable_short() if self.image else None), diff --git a/piccast/feeds/views.py b/piccast/feeds/views.py index 8ea4b98..84d2d8d 100644 --- a/piccast/feeds/views.py +++ b/piccast/feeds/views.py @@ -16,22 +16,22 @@ def basic_frontpage(request): return HttpResponse(basic_html); def newest_feeds(request): - feeds = PicFeed.objects.order_by('-created')[:20] + feeds = PicFeed.objects.filter(is_active=True).order_by('-created')[:20] return HttpResponse(json.dumps({'list': [f.serializable() for f in feeds]}, indent=2), mimetype="application/json") def sets_by_feed(request, req_feed): # TODO: validate req_feed - sets = PicSet.objects.filter(feed=req_feed) + sets = PicSet.objects.filter(feed=req_feed).order_by('-created') return HttpResponse(json.dumps({'list': [s.serializable() for s in sets]}, indent=2), mimetype="application/json") def sets_by_feedslug(request, req_feedslug): # TODO: validate req_feedslug - feed = PicFeed.objects.filter(shortname=req_feedslug) + feed = PicFeed.objects.filter(shortname=req_feedslug).order_by('-created') sets = PicSet.objects.filter(feed=feed) return HttpResponse(json.dumps({'list': [s.serializable() for s in sets]}, indent=2), mimetype="application/json") def pics_by_set(request, req_picset): # TODO: validate req_picset - pics = Pic.objects.filter(set=req_picset) + pics = Pic.objects.filter(set=req_picset).order_by('id') return HttpResponse(json.dumps({'list':[p.serializable() for p in pics]}, indent=2), mimetype="application/json") -- cgit v1.2.3