"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):
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):
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:
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()})
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):
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)