--- 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