]> git.parisson.com Git - telemeta.git/commitdiff
fix mime type comparison before playing, cleanup
authoryomguy <yomguy@parisson.com>
Tue, 5 Apr 2011 21:58:23 +0000 (23:58 +0200)
committeryomguy <yomguy@parisson.com>
Tue, 5 Apr 2011 21:58:23 +0000 (23:58 +0200)
telemeta/models/query.py
telemeta/web/base.py

index 839f5068a7fbe19f088c0663455a45fccecd739d..624bbcdac5c60726ece40d931c419d73b6cf31f5 100644 (file)
@@ -43,21 +43,26 @@ class MediaItemQuerySet(CoreQuerySet):
     "Base class for all media item query sets"
     
     def quick_search(self, pattern):
-        "Perform a quick search on various fields"
-        from telemeta.models.media import MediaItem
+        "Perform a quick search on code, title and collector name"
         pattern = pattern.strip()
-        model = MediaItem()
-        fields = model.to_dict()
-        keys =  fields.keys()
-        fields = []
-        for field in keys:
-            field_str = str(model._meta.get_field(field))
-            if 'CharField' in field_str:
-                fields.append(field)
-        q = Q(code__contains=pattern.strip()) | Q(old_code__contains=pattern.strip())
-        for field in fields:
-            q = q | word_search_q(field, pattern)
-        q = q | self.by_fuzzy_collector_q(pattern)
+        
+#        from telemeta.models.media import MediaItem
+#        mod = MediaItem()
+#        fields = mod.to_dict()
+#        keys =  fields.keys()
+#        q = self.by_fuzzy_collector_q(pattern)
+#        for field in keys:
+#            field_str = str(mod._meta.get_field(field))
+#            if 'CharField' in field_str:
+#                q = q | word_search_q(field)
+
+        q = ( Q(code__contains=pattern) |
+            Q(old_code__contains=pattern) |
+            word_search_q('title', pattern) |  
+            word_search_q('comment', pattern) |  
+            self.by_fuzzy_collector_q(pattern) )
+        
+        print q
         return self.filter(q)
 
     def without_collection(self):        
@@ -228,21 +233,17 @@ class MediaItemManager(CoreManager):
 class MediaCollectionQuerySet(CoreQuerySet):
 
     def quick_search(self, pattern):
-        "Perform a quick search on various fields"
+        "Perform a quick search on code, title and collector name"
         from telemeta.models.media import MediaCollection
         pattern = pattern.strip()
-        model = MediaCollection()
-        fields = model.to_dict()
+        mod = MediaCollection()
+        fields = mod.to_dict()
         keys =  fields.keys()
-        fields = []
+        q = self.by_fuzzy_collector_q(pattern)
         for field in keys:
-            field_str = str(model._meta.get_field(field))
-            if 'CharField' in field_str:
-                fields.append(field)
-        q = Q(code__contains=pattern.strip()) | Q(old_code__contains=pattern.strip())
-        for field in fields:
-            q = q | word_search_q(field, pattern)
-        q = q | self.by_fuzzy_collector_q(pattern)
+            field_str = str(mod._meta.get_field(field))
+            if 'CharField' in field_str or 'TextField' in field_str:
+                q = q | word_search_q(field, pattern)
         return self.filter(q)
 
     def by_location(self, location):
index 164f12377d7580e6ce10e1b646794309653b7aaa..4c641d79737f03de2ca72eb6da2decc51ca56efb 100644 (file)
@@ -412,14 +412,7 @@ class WebView(object):
                         time = ':'.join(time)
                         item.approx_duration = str(time)
                         item.save()
-        else:
-            # process first waveform to speed up imports
-#            width = 360
-#            height = 130
-#            size =  str(width) + '_' + str(height)
-#            grapher_id = 'waveform'
-#            image_file = '.'.join([public_id, grapher_id, size, 'png'])
-#            
+        else:     
             analyzers = []
             analyzers_sub = []
             if item.file:
@@ -429,18 +422,8 @@ class WebView(object):
                     subpipe = analyzer()
                     analyzers_sub.append(subpipe)
                     pipe = pipe | subpipe
-#                if not self.cache_data.exists(image_file):
-#                    path = self.cache_data.dir + os.sep + image_file
-#                    for grapher in self.graphers:
-#                        if grapher.id() == grapher_id:
-#                            break
-#                    graph = grapher(width = int(width), height = int(height))
-#                    pipe = pipe | graph
                 pipe.run()
-#                if not self.cache_data.exists(image_file):
-#                    f = open(path, 'w')
-#                    graph.render(path)
-#                    f.close()
+
                 mime_type = decoder.format()
                 analyzers.append({'name': 'Mime type', 'id': 'mime_type', 'unit': '', 'value': mime_type})
                 analyzers.append({'name': 'Channels', 'id': 'channels', 'unit': '', 'value': decoder.channels()})
@@ -472,8 +455,7 @@ class WebView(object):
             self.item_analyze(item)
         mime_type = 'text/xml'
         response = HttpResponse(self.cache_data.read_stream_bin(analyze_file), mimetype=mime_type)
-#        response['Content-Disposition'] = 'attachment; filename='+public_id+'.xml'
-        
+        response['Content-Disposition'] = 'attachment; filename='+public_id+'.xml'        
         return response        
         
     def item_visualize(self, request, public_id, visualizer_id, width, height):
@@ -541,7 +523,7 @@ class WebView(object):
             decoder = timeside.decoder.FileDecoder(audio)
             format = decoder.format()
         
-        if format == mime_type:
+        if mime_type in format:
             # source > stream
             response = HttpResponse(stream_from_file(audio), mimetype = mime_type)