enhance new media/content creation with url : external stream, local stream using STREAM_URL or youtube http.
authorcavaliet
Thu, 21 Apr 2011 18:07:59 +0200
changeset 69 784ebba76424
parent 68 5278175359e0
child 70 eccd6fa65f06
child 71 8a881c9593d0
enhance new media/content creation with url : external stream, local stream using STREAM_URL or youtube http.
src/ldt/ldt/ldt_utils/models.py
src/ldt/ldt/ldt_utils/utils.py
src/ldt/ldt/ldt_utils/views.py
--- a/src/ldt/ldt/ldt_utils/models.py	Thu Apr 21 14:19:16 2011 +0200
+++ b/src/ldt/ldt/ldt_utils/models.py	Thu Apr 21 18:07:59 2011 +0200
@@ -58,19 +58,20 @@
         
         def fget(self):
             res_src = self.src.rstrip()
-            if self.videopath and self.videopath.startswith("rtmp://"):
+            if self.videopath and self.videopath.startswith("rtmp://") and "mp3:" not in res_src and "mp4:" not in res_src:
                 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]),
+                    'mp4': lambda s: "%s:%s" % ("mp4", res_src),
+                    'f4v': lambda s: "%s:%s" % ("mp4", res_src),
+                    'mov': lambda s: "%s:%s" % ("mp4", res_src),
                 }.get(extension, lambda s:s)(res_src.lower())
             return res_src
         
         return locals()
     
-    stream_src = property(**stream_src())    
+    stream_src = property(**stream_src())
     
     def save(self, *args, **kwargs):
         super(Media, self).save(*args, **kwargs)
@@ -212,7 +213,7 @@
                 empty_media = self.__get_empty_media()
                 if empty_media:
                     return empty_media.videopath
-                else: 
+                else:
                     return None
             else:
                 return self.media_obj.videopath
--- a/src/ldt/ldt/ldt_utils/utils.py	Thu Apr 21 14:19:16 2011 +0200
+++ b/src/ldt/ldt/ldt_utils/utils.py	Thu Apr 21 18:07:59 2011 +0200
@@ -157,25 +157,11 @@
         elementfile = lxml.etree.SubElement(elementInit, 'file')
             
         elementfile.set('src', settings.WEB_URL + django.core.urlresolvers.reverse(method, args=url))
-        elementfile.set('display', '1')
         if(search):
-            elementfile.set("segsel", settings.WEB_URL + django.core.urlresolvers.reverse(search, args=url))   
-
-    
-        # /*chemin video : tant que le serveur de media n'est pas up, */
-        elementfile.set('video', settings.STREAM_URL)
-        elementfile.set('pict', "")
-        elementfile.set('extra', "")    
+            elementfile.set("segsel", settings.WEB_URL + django.core.urlresolvers.reverse(search, args=url))
 
         lxml.etree.SubElement(elementFiles, 'recent')
         lxml.etree.SubElement(elementFiles, 'library')
-    
-        username = ''
-        id = ''
-
-        elementUser = lxml.etree.SubElement(iri, 'user')
-        elementUser.set('name', username)
-        elementUser.set('id', id)
         
         return iri 
 
@@ -209,8 +195,8 @@
         elementMedia = lxml.etree.SubElement(elementMedias, 'media')
         elementMedia.set('id', content.iri_id)
         elementMedia.set('src', content.iri_url())
-
-        if content.videopath and content.videopath != "":
+        
+        if content.videopath != None :
             elementMedia.set('video', content.videopath)
         else:
             elementMedia.set('video', settings.STREAM_URL)
--- a/src/ldt/ldt/ldt_utils/views.py	Thu Apr 21 14:19:16 2011 +0200
+++ b/src/ldt/ldt/ldt_utils/views.py	Thu Apr 21 18:07:59 2011 +0200
@@ -654,8 +654,7 @@
             # see if media must be created
             cleaned_data = {}
             cleaned_data.update(media_form.cleaned_data)
-                        
-
+            
             media_input_type = content_form.cleaned_data["media_input_type"]
             
             if media_input_type == "none":
@@ -667,6 +666,9 @@
                 del cleaned_data["media_file"]
                 if not cleaned_data['videopath']:
                     cleaned_data['videopath'] = settings.STREAM_URL
+                # if the source is already http:// or rtmp:// we don't have to add STREAM_URL
+                if cleaned_data['src'].startswith("rtmp://") or cleaned_data['src'].startswith("http://"):
+                    cleaned_data['videopath'] = ''
                 media, created = Media.objects.get_or_create(src=cleaned_data['src'], defaults=cleaned_data) #@UndefinedVariable
             elif media_input_type == "url" or  media_input_type == "upload" :                
                 # copy file