This commit is contained in:
j 2011-01-04 13:02:32 +05:30
commit 40d97b5f6b
4 changed files with 63 additions and 13 deletions

View file

@ -57,6 +57,7 @@ def _order_query(qs, sort, prefix='sort__'):
qs = qs.order_by(*order_by)
return qs
def _parse_query(data, user):
query = {}
query['range'] = [0, 100]
@ -68,6 +69,7 @@ def _parse_query(data, user):
#group by only allows sorting by name or number of itmes
return query
def _get_positions(ids, get_ids):
positions = {}
for i in get_ids:
@ -77,6 +79,7 @@ def _get_positions(ids, get_ids):
pass
return positions
def find(request):
'''
param data {
@ -222,6 +225,7 @@ Positions
actions.register(find)
def autocomplete(request):
'''
param data
@ -265,6 +269,7 @@ def autocomplete(request):
return render_to_json_response(response)
actions.register(autocomplete)
def getItem(request):
'''
param data
@ -283,6 +288,7 @@ def getItem(request):
return render_to_json_response(response)
actions.register(getItem)
@login_required_json
def editItem(request):
'''
@ -434,21 +440,27 @@ def frame(request, id, position, size):
raise Http404
return HttpFileResponse(frame, content_type='image/jpeg')
def image_to_response(item, image, size=None):
if size:
size = int(size)
path = image.path.replace('.jpg', '.%d.jpg'%size)
if not os.path.exists(path):
image_size = max(image.width, image.height)
if size > image_size:
return redirect('/%s/icon.jpg' % item.itemId)
extract.resize_image(image.path, path, size=size)
else:
path = image.path
return HttpFileResponse(path, content_type='image/jpeg')
def poster(request, id, size=None):
item = get_object_or_404(models.Item, itemId=id)
if size == 'large':
size = None
if item.poster:
if size:
size = int(size)
poster_path = item.poster.path.replace('.jpg', '.%d.jpg'%size)
if not os.path.exists(poster_path):
poster_size = max(item.poster.width, item.poster.height)
if size > poster_size:
return redirect('/%s/poster.jpg' % item.itemId)
extract.resize_image(item.poster.path, poster_path, size=size)
else:
poster_path = item.poster.path
return image_to_response(item, item.poster, size)
else:
if not size:
size='large'
@ -456,6 +468,15 @@ def poster(request, id, size=None):
poster_path = os.path.join(settings.STATIC_ROOT, 'png/posterDark.48.png')
return HttpFileResponse(poster_path, content_type='image/jpeg')
def icon(request, id, size=None):
item = get_object_or_404(models.Item, itemId=id)
if item.icon:
return image_to_response(item, item.icon, size)
else:
raise Http404
def timeline(request, id, timeline, size, position):
item = get_object_or_404(models.Item, itemId=id)
if timeline == 'strip':
@ -464,6 +485,7 @@ def timeline(request, id, timeline, size, position):
timeline = '%s.%s.%04d.png' %(item.timeline_prefix, size, int(position))
return HttpFileResponse(timeline, content_type='image/png')
def video(request, id, profile):
item = get_object_or_404(models.Item, itemId=id)
stream = get_object_or_404(item.streams, profile=profile)
@ -497,4 +519,3 @@ def video(request, id, profile):
response['Content-Disposition'] = 'attachment; filename="%s"' % filename
return response
return HttpFileResponse(path, content_type=content_type)