From b61eb681f4c0de7cf0fb8718480c50d2a3669558 Mon Sep 17 00:00:00 2001 From: yomguy Date: Tue, 5 Apr 2011 23:58:23 +0200 Subject: [PATCH] fix mime type comparison before playing, cleanup --- telemeta/models/query.py | 51 ++++++++++++++++++++-------------------- telemeta/web/base.py | 26 ++++---------------- 2 files changed, 30 insertions(+), 47 deletions(-) diff --git a/telemeta/models/query.py b/telemeta/models/query.py index 839f5068..624bbcda 100644 --- a/telemeta/models/query.py +++ b/telemeta/models/query.py @@ -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): diff --git a/telemeta/web/base.py b/telemeta/web/base.py index 164f1237..4c641d79 100644 --- a/telemeta/web/base.py +++ b/telemeta/web/base.py @@ -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) -- 2.39.5