subtitles

This commit is contained in:
j 2010-09-18 16:44:35 +02:00
commit e64dd48ee2
4 changed files with 115 additions and 85 deletions

View file

@ -270,6 +270,16 @@ class Movie(models.Model):
stream['profiles'] = list(set(map(lambda s: int(os.path.splitext(s['profile'])[0][:-1]), self.streams.all().values('profile'))))
return stream
def get_layers(self):
layers = {}
layers['cuts'] = self.metadata.get('cuts', {})
layers['subtitles'] = {}
qs = self.files.filter(is_subtitle=True, is_main=True, available=True)
if qs.count()>0:
layers['subtitles'] = qs[0].srt()
return layers
def get_json(self, fields=None):
movie = {}
for key in self._public_fields:

View file

@ -279,7 +279,10 @@ def api_getItem(request):
itemId = json.loads(request.POST['data'])
item = get_object_or_404_json(models.Movie, movieId=itemId)
#FIXME: check permissions
response['data'] = {'item': item.get_json()}
info = item.get_json()
info['stream'] = item.get_stream()
info['layers'] = item.get_layers()
response['data'] = {'item': info}
return render_to_json_response(response)
@login_required_json
@ -316,45 +319,6 @@ def api_removeItem(request):
response = json_response(status=403, text='permissino denied')
return render_to_json_response(response)
def api_info(request):
'''
param data
string id
return {'status': {'code': int, 'text': string}, 'data': {'info': {}}}
'''
response = json_response({})
itemId = json.loads(request.POST['data'])
item = get_object_or_404_json(models.Movie, movieId=itemId)
response['data'] = {'info': movie.get_stream()}
return render_to_json_response(response)
def api_subtitles(request):
'''
param data
string id
return {'status': {'code': int, 'text': string}, 'data': {'subtitles': {}}}
'''
response = json_response({})
itemId = json.loads(request.POST['data'])
item = get_object_or_404_json(models.Movie, movieId=itemId)
response['data'] = {'subtitles': movie.metadata.get('subtitles', {})}
return render_to_json_response(response)
def api_cuts(request):
'''
param data
string id
return {'status': {'code': int, 'text': string}, 'data': {'cuts': {}}}
'''
response = json_response({})
itemId = json.loads(request.POST['data'])
item = get_object_or_404_json(models.Movie, movieId=itemId)
response['data'] = {'cuts': movie.metadata.get('cuts', {})}
return render_to_json_response(response)
@login_required_json
def api_addLayer(request):
'''