From 9ee71ce6dd0e5e9d29f6666e97b54b3d57dbb1b4 Mon Sep 17 00:00:00 2001 From: j <0x006A@0x2620.org> Date: Tue, 18 Sep 2012 12:20:18 +0200 Subject: [PATCH] split program update and current json --- pandora/tv/models.py | 17 +++++++++++++---- pandora/tv/tasks.py | 3 +-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/pandora/tv/models.py b/pandora/tv/models.py index 3396c587..4e2d0821 100644 --- a/pandora/tv/models.py +++ b/pandora/tv/models.py @@ -21,15 +21,16 @@ class Channel(models.Model): def __unicode__(self): return u"%s %s" % (self.list or 'All', self.run) - def json(self, user): - now = datetime.now() + def update_program(self, now=None): + if not now: + now = datetime.now() cansee = settings.CONFIG['capabilities']['canSeeItem']['guest'] if self.list: items = self.list.get_items(self.list.user).filter(rendered=True, level__lte=cansee, sort__duration__gt=0) else: items = Item.objects.filter(rendered=True, level__lte=cansee, sort__duration__gt=0) if items.count() == 0: - return {} + return None program = self.program.order_by('-start') changed = False @@ -59,7 +60,15 @@ class Channel(models.Model): program = self.program.order_by('-start') if changed: self.save() - return program[0].json(user, now) + return program[0] + + def json(self, user): + now = datetime.now() + program = self.update_program(now) + if not program: + return {} + else: + return program.json(user, now) class Program(models.Model): created = models.DateTimeField(auto_now_add=True) diff --git a/pandora/tv/tasks.py b/pandora/tv/tasks.py index ad49dcd3..edf92f25 100644 --- a/pandora/tv/tasks.py +++ b/pandora/tv/tasks.py @@ -9,6 +9,5 @@ import models @periodic_task(run_every=timedelta(days=1), queue='encoding') def update_program(**kwargs): - user = User.objects.all()[0] for c in models.Channel.objects.all(): - c.json(user) + c.update_program()