matches, subtitles, parts

This commit is contained in:
j 2011-06-02 10:19:15 +02:00
commit c428b5e206
5 changed files with 42 additions and 14 deletions

View file

@ -52,10 +52,12 @@ def parseCondition(condition):
'text': 'string',
'year': 'string',
'length': 'string',
'list': 'list'
'list': 'list',
'layer': 'string'
}.get(key_type, key_type)
if k == 'list':
key_type = 'list'
if key_type == "string":
in_find=True
value_key = 'find__value'

View file

@ -400,8 +400,8 @@ class Item(models.Model):
save('trivia', ' '.join(self.get('trivia', [])))
#FIXME:
qs = Annotation.objects.filter(layer__type='subtitle', item=self).order_by('start')
save('dialog', '\n'.join([l.value for l in qs]))
qs = Annotation.objects.filter(layer__name='subtitles', item=self).order_by('start')
save('subtitles', '\n'.join([l.value for l in qs]))
def update_sort(self):
try:

View file

@ -41,7 +41,16 @@ def load_subtitles(itemId):
layer = models.Layer.objects.get(name='subtitles')
models.Annotation.objects.filter(layer=layer,item=item).delete()
offset = 0
for f in item.files.filter(is_main=True, is_subtitle=True, available=True).order_by('part'):
language = ''
languages = [f.language for f in item.files.filter(is_main=True, is_subtitle=True,
available=True)]
if languages:
if 'en' in languages:
language = 'en'
else:
language = languages[0]
for f in item.files.filter(is_main=True, is_subtitle=True,
available=True, language=language).order_by('part'):
user = f.instances.all()[0].volume.user
for data in f.srt(offset):
annotation = models.Annotation(
@ -54,5 +63,12 @@ def load_subtitles(itemId):
)
annotation.save()
duration = item.files.filter(Q(is_audio=True)|Q(is_video=True)) \
.filter(is_main=True, available=True, part=f.part)[0].duration
.filter(is_main=True, available=True, part=f.part)
if duration:
duration = duration[0].duration
else:
models.Annotation.objects.filter(layer=layer,item=item).delete()
break
offset += duration
item.update_find()