def get(self, name): """ uses the 'name' as key to obtain details from the datastore, then allows the user to edit it """ q = Script.all().filter('name = ', name) user = users.get_current_user() #the user is logged in at this point, owing to 'login: required' setting in apps.yaml params = {} if user: params['user'] = user params['logout_url'] = users.create_logout_url("/") result = q.fetch(1)[0] params['language'] = result.language params['description'] = result.description params['user_friendly_name'] = result.user_friendly_name params['code'] = result.code.strip() params['name'] = result.name prev_scriptlets = False if Script.all().filter('user ='******'prev_scriptlets'] = prev_scriptlets self.response.out.write(template.render('templates/edit.html', params))
def get(self): if self.request.path[-1] == '/': self.redirect(self.request.path[:-1]) name = self.request.path.split('/')[-1] script = Script.all().filter('name =', name).get() self.response.out.write("#!%s\n" % script.language) self.response.out.write(script.code)
def wrap(self): parts = self.request.path.split('/')[1:] if parts[-1] == '': parts.pop() if '.' in parts[-1]: part, ext = parts[-1].split('.') parts[-1] = part else: ext = None script = Script.all().filter('id =', parts[0]).get() version = None if script: if len(parts) > 1: if parts[1] == 'latest': return self.redirect('/%s/%s' % (script.id, script.latest_version.id)) else: version = script.version_set.filter('id =', parts[1]).get() else: version = script.latest_version if not version: self.not_found() elif self.should_run(): self.run(script, version) else: user = users.get_current_user() if script.private and script.user.key() != user.key(): return self.not_authorized() if ext == 'js': self.response.headers['Content-Type'] = 'text/javascript' self.response.out.write(version.body) else: f(self, script, version, user)
def get(self): """ gets a list of available scripts for the logged in user """ q = Script.all().filter('user ='******'login: required' setting in apps.yaml params = {} params['user'] = user params['logout_url'] = users.create_logout_url("/") params['query'] = q prev_scriptlets = False if Script.all().filter('user ='******'prev_scriptlets'] = prev_scriptlets self.response.out.write(template.render('templates/saved.html', params))
def post(self): """ deletes an script that the logged in user dosen't want """ for script_name in self.request.POST.items(): if script_name[0] == 'delete': query_item = Script.all().filter('name =', script_name[1]) if query_item.count() == 1: for item in query_item.fetch(1): item.delete() self.redirect('/saved/')
def get(self): if self.request.path[-1] == '/': self.redirect(self.request.path[:-1]) name = self.request.path.split('/')[-1] script = Script.all().filter('name =', name).get() user = users.get_current_user() if not script or (not user or user != script.user): self.redirect(users.create_login_url("/")) self._get_main(script.name, script.language, script.code)
def _save_and_redirect(self, name, language, code): if name == "": name = baseN(abs(hash(time.time())), 36) script = Script.all().filter('name =', name).get() if (script): script.language = language script.code = code script.put() else: script = Script(name=name, language=language, code=code) script.put() self.redirect('/view/%s' % script.name)
def get(self): if self.request.path[-1] == '/': self.redirect(self.request.path[:-1]) name = self.request.path.split('/')[-1] script = Script.all().filter('name =', name).get() prev_scriptlets = False if Script.all().filter('user ='******'script':script, 'lines': script.code.count("\n"), 'run_url': self.request.url.replace('view', 'run')} user = users.get_current_user() if user: params['user'] = user params['logout_url'] = users.create_logout_url("/") else: params['user'] = user params['login_url'] = users.create_login_url('/') params['prev_scriptlets'] = prev_scriptlets self.response.out.write(template.render('templates/view.html', params)) else: self.redirect('/')
def _run_script(self): name = self.request.path.split('/')[-1] script = Script.all().filter('name =', name).get() if script: payload = dict(self.request.POST) headers = dict(self.request.headers) if headers.get('Content-Type'): del headers['Content-Type'] headers['Run-Code'] = base64.b64encode(script.code) headers['Run-Code-URL'] = self.request.url.replace('run', 'code') self.response.out.write(urlfetch.fetch( url='%s?%s' % (language_engines[script.language], self.request.query_string), payload=urllib.urlencode(payload) if len(payload) else None, method=self.request.method, headers=headers).content) else: self.redirect('/')
def post(self, name): """ deletes the old entry and iserts a new one with the same name and new updated values """ language = self.request.POST['language'] description = self.request.POST['description'].strip() user_friendly_name = self.request.POST['user_friendly_name'].strip() name = self.request.POST['name'] code = self.request.POST['%s-code' % language].strip() #delete old entry q = Script.all().filter('name = ', name) for item in q: item.delete() script = Script(name=name, language=language, code=code, description=description or 'None', user_friendly_name=user_friendly_name or 'None') script.put() self.redirect('/saved/')
def get(self): user = users.get_current_user() auth_save = self.request.cookies.get("auth_save", None) if auth_save: self.response.headers.add_header("Set-Cookie", "auth_save=; expires=Wed, 11-Sep-1985 11:00:00 GMT") params = cgi.parse_qs(auth_save) script = Script(language=params["language"][0], code=params["code"][0]) script.put() self.redirect("/view/%s" % script.name) else: if user: prev_scriptlets = False if Script.all().filter("user ="******"user": user, "logout_url": users.create_logout_url("/"), "prev_scriptlets": prev_scriptlets} else: params = {"user": user, "login_url": users.create_login_url("/")} self.response.out.write(template.render("templates/main.html", params))
def _get_main(self, name, language, code): user = users.get_current_user() auth_save = self.request.cookies.get('auth_save', None) if auth_save: self.response.headers.add_header('Set-Cookie', 'auth_save=; expires=Wed, 11-Sep-1985 11:00:00 GMT') params = cgi.parse_qs(auth_save) self._save_and_redirect(params['name'][0], params['language'][0], params['code'][0]) else: scripts = Script.all().filter('user ='******'user': user, 'scripts': scripts, 'name': name, 'language': language, 'code': code} if user: params['logout_url'] = users.create_logout_url("/") else: params['login_url'] = users.create_login_url('/') self.response.out.write(template.render('templates/main.html', params))
def get(self): if self.request.path[-1] == '/': self.redirect(self.request.path[:-1]) name = self.request.path.split('/')[-1] script = Script.all().filter('name =', name).get() self.response.out.write(base64.b64encode(script.code))