# Create your views here. from django.http import HttpResponse from django.http import HttpResponseForbidden from django.http import HttpResponseServerError from django.conf import settings from django.shortcuts import render_to_response from django.utils import simplejson from django.core.serializers import json def permission(perm): def _dec(view_func): def _view(request, *args, **kwargs): if request.user.has_perm(perm) and request.user.is_authenticated(): return view_func(request, *args, **kwargs) else: return HttpResponseForbidden() _view.__name__ = view_func.__name__ _view.__dict__ = view_func.__dict__ _view.__doc__ = view_func.__doc__ return _view return _dec class JsonResponse(HttpResponse): def __init__(self, object): content = simplejson.dumps( object, indent=2, cls=json.DjangoJSONEncoder, ensure_ascii=False) super(JsonResponse, self).__init__( content)#, content_type='application/json') self['Cache-Control'] = 'no-cache, must-revalidate' def add_package(request): a = {'b' : [1,2,3], 'dsfsd' : "sadd"} return JsonResponse(a) @permission('pyload.can_see_dl') def status(request): try: return JsonResponse(settings.PYLOAD.status_server()) except: return HttpResponseServerError() @permission('pyload.can_see_dl') def links(request): try: return JsonResponse(settings.PYLOAD.status_downloads()) except: return HttpResponseServerError() @permission('pyload.can_see_dl') def queue(request): try: return JsonResponse(settings.PYLOAD.get_queue()) except: return HttpResponseServerError() @permission('pyload.can_change_satus') def pause(request): try: return JsonResponse(settings.PYLOAD.pause_server()) except: return HttpResponseServerError() @permission('pyload.can_change_status') def unpause(request): try: return JsonResponse(settings.PYLOAD.unpause_server()) except: return HttpResponseServerError()