def buildlogs(request): profile = get_user_profile(request.user) snake = profile.active_snake # SnakeVersion(user=request.user) return render(request, 'ide/buildlogs.html', { 'snake': snake, 'profile': profile })
def get_active_version(request): up = get_user_profile(request.user) v = up.active_snake if v: return get_version(request, version_id=v.id) else: return JsonResponse({})
def snake_restart(request): profile = get_user_profile(request.user) if profile.active_snake is not None: send_kill_command(request.user) response = {'message': 'requesting restart of snake version {}'.format(profile.active_snake.version)} else: response = {'message': 'requesting kill of any running snake version (no activate snake version)'} return JsonResponse(response)
def get_compile_state(request): profile = get_user_profile(request.user) snake = profile.active_snake if snake: return JsonResponse({ 'compile_state': str(snake.compile_state), 'build_log': decode_build_log(snake.build_log) }) else: return JsonResponse({})
def snake_edit(request, snake): form = CreateSnakeForm(request.POST or None) if form.is_valid(): posted_code = form.cleaned_data.get('code') posted_comment = form.cleaned_data.get('comment', '') new_version = SnakeVersion(user=request.user, parent=snake, code=posted_code, comment=posted_comment) new_version.save() new_version.activate() send_kill_command(new_version.user) return redirect('snake_edit', snake_id=new_version.id) return render(request, 'ide/ide.html', {'form': form, 'snake': snake, 'profile': get_user_profile(request.user)})
def persistent_data(request): profile = get_user_profile(request.user) if request.method in ['POST', 'PUT']: if len(request.body) > settings.PERSISTENT_MEMORY_SIZE: return HttpResponseBadRequest('max size for persistent memory blob is {0} bytes.'.format(settings.PERSISTENT_MEMORY_SIZE)) profile.persistent_data = request.body profile.save() elif request.method == 'DELETE': profile.persistent_data = bytearray([0]*settings.PERSISTENT_MEMORY_SIZE) profile.save() resp = HttpResponse(profile.persistent_data, content_type='application/octet-stream') resp['Content-Disposition'] = 'attachment; filename=persistent_data.dat' return resp
def snake_disable(request): profile = get_user_profile(request.user) if profile.active_snake is not None: response = {'message': 'disabled snake {}'.format(profile.active_snake.version)} profile.active_snake = None profile.save() send_kill_command(request.user) else: response = {'message': 'no snake was and is enabled.'} if request.is_ajax(): return JsonResponse(response) else: return redirect('snake')
def snake_edit(request, snake): form = CreateSnakeForm(request.POST or None) if form.is_valid(): posted_code = form.cleaned_data.get('code') posted_comment = form.cleaned_data.get('comment', '') snake = snake.create_new_if_changed(code=posted_code, comment=posted_comment) snake.activate() send_kill_command(snake.user) return redirect('snake_edit', snake_id=snake.id) return render(request, 'ide/ide.html', { 'form': form, 'snake': snake, 'profile': get_user_profile(request.user) })
def profile(request): return render(request, 'core/profile.html', { 'user': request.user, 'profile': get_user_profile(request.user) })
def get_viewer_key(request): up = get_user_profile(request.user) return JsonResponse({'viewer_key': up.viewer_key})
def disable_version(request, version_id): up = get_user_profile(request.user) if up.active_snake is not None and up.active_snake.id == version_id: up.active_snake = None up.save() return JsonResponse({'result': 'ok'})
def disable_active_version(request): up = get_user_profile(request.user) up.active_snake = None up.save() return JsonResponse({'result': 'ok'})
def activate_version(request, version_id): v = get_object_or_404(SnakeVersion, user=request.user, id=version_id) up = get_user_profile(request.user) up.active_snake = v up.save() return JsonResponse(version_dict(v))