diff -r fed56345e904 -r fc1210bbb854 web/ldt/ldt_utils/models.py --- a/web/ldt/ldt_utils/models.py Tue Sep 21 13:07:04 2010 +0200 +++ b/web/ldt/ldt_utils/models.py Thu Sep 23 13:45:21 2010 +0200 @@ -34,6 +34,26 @@ title = models.CharField(max_length=1024, null=True, blank=True, verbose_name=_('title')) src = models.CharField(max_length=1024, unique=True, verbose_name=_('media.src')) + def stream_src(): + + def fget(self): + res_src = self.src.rstrip() + if self.videopath and self.videopath.startswith("rtmp://"): + extension = res_src.split(".")[-1] + res_src = { + 'flv': lambda s: s, + 'mp3': lambda s: "%s:%s" %("mp3",res_src[:-4]), + 'mp4': lambda s: "%s:%s" %("mp4",res_src[:-4]), + 'f4v': lambda s: "%s:%s" %("mp4",res_src[:-4]), + }.get(extension, lambda s:s)(res_src) + return res_src + stream_src = property(**stream_src()) + + def save(self, *args, **kwargs): + super(Media, self).save(*args, **kwargs) + for content in self.content_set.all(): + content.sync_iri_file() + def __unicode__(self): strings = [] if self.title: @@ -44,6 +64,7 @@ strings.append(unicode(self.external_id)) return "|".join(strings) + class Content(models.Model): iri_id = models.CharField(max_length=1024, unique=True, default=generate_uuid, verbose_name=_('content.iri_id')) iriurl = models.CharField(max_length=1024, verbose_name=_('content.iriurl')) @@ -71,9 +92,7 @@ writer.deleteDocuments(lucene.Term("iri_id", self.iri_id)) writer.commit() - #TODO: better manage the change in .iri name and error scenario (save in temp file + rename - def save(self, *args, **kwargs): - + def sync_iri_file(self): # create iri file if needed created = False try: @@ -95,6 +114,11 @@ os.remove(iri_file_path) raise e + + #TODO: better manage the change in .iri name and error scenario (save in temp file + rename + def save(self, *args, **kwargs): + + self.sync_iri_file() # update it super(Content, self).save(*args, **kwargs) @@ -122,6 +146,15 @@ return None + def stream_src(): + + def fget(self): + if self.media_obj is not None: + return self.media_obj.stream_src + else: + return None + stream_src = property(**stream_src()) + def videopath(): #@NoSelf doc = """simulate videopath""" #@UnusedVariable