def get(self): user = users.get_current_user() user_string = _gcu() path = get_template_path('html/editor.html') template_values = {'EOV': "editor", 'user': user_string} resource_id = self.request.get('resource_id') mobile = mobileTest.mobileTest(self.request.user_agent) if mobile == 1: self.redirect('/scriptlist') return if user and resource_id != "Demo": template_values['sign_out'] = users.create_logout_url('/') screenplay = models.UsersScripts. \ get_by_resource_id_and_user(resource_id, gcu()) if not screenplay: self.redirect("/") return if screenplay.permission != 'owner': template_values['EOV'] = "viewer" unopened = models.ShareNotify. \ get_by_resource_id_and_user(resource_id, gcu()) if unopened and not unopened[0].opened: unopened[0].opened = True unopened[0].timeopened = datetime.datetime.today() unopened[0].put() elif resource_id == 'Demo': template_values['sign_out'] = '/' else: url = '/editor?resource_id=' + resource_id template_values = { 'google_sign_in': users.create_login_url(url, None, 'gmail.com'), 'yahoo_sign_in': users.create_login_url(url, None, 'yahoo.com')} path = get_template_path('html/login.html') dev_js = ['base', 'calc', 'canvas-manipulate', 'ccp', 'dom-manipulate', 'draw', 'editor', 'findAndReplace', 'init', 'keyboard', 'menu', 'mouse', 'notes', 'prompts', 'sort', 'spellcheck', 'window'] pro_js = ['editor-compiled'] dev_css = ['menu', 'menuitem', 'menuseparator', 'common', 'toolbar', 'button', 'custombutton', 'autocomplete', 'dialog', 'linkbutton', 'tab', 'tabbar', 'colormenubutton', 'palette', 'colorpalette', 'editor/bubble', 'editor/dialog', 'editor/linkdialog', 'editortoolbar'] pro_css = [] template_values['resource_id'] = resource_id template_values['MODE'] = config.MODE template_values['EDITOR_JS'] = pro_js if config.MODE == "PRO" else dev_js template_values['EDITOR_CSS'] = pro_css if config.MODE == "PRO" else dev_css template_values['GA'] = config.GA self.response.headers['Content-Type'] = 'text/html' self.response.out.write(template.render(path, template_values))
def post(self): # New Script Setup filename = "Untitled" ff = self.request.get('ff') capture = self.request.get('filename') if capture: filename = capture.replace('%20', ' ') filename = filename.replace('C:\\fakepath\\', '') user=gcu() # Format file data = StringIO.StringIO(self.request.get('script')) if ff=='txt': data = StringIO.StringIO(data.getvalue().replace('\xe2', "'")) e = chardet.detect(data.getvalue()) if e["encoding"]!=None and e["encoding"]!="ascii": r = data.getvalue().decode(e["encoding"]) r = r.replace(u"\u201c", "\"").replace(u"\u201d", "\"") #strip double curly quotes r = r.replace(u"\u2018", "'").replace(u"\u2019", "'").replace(u"\u02BC", "'") #strip single curly quotes data = StringIO.StringIO(r.encode("ascii", "replace")) contents = convert.Text(data) elif ff=='fdx': s=data.getvalue().decode('utf-8') s = s.replace(u"\u201c", "\"").replace(u"\u201d", "\"") #strip double curly quotes s = s.replace(u"\u2018", "'").replace(u"\u2019", "'").replace(u"\u02BC", "'") #strip single curly quotes data = StringIO.StringIO(s.encode("ascii", "replace")) contents = convert.FinalDraft(data) else: contents = convert.Celtx(data) resource_id = models.UsersScripts.create_unique_resource_id() s = models.ScriptData(resource_id=resource_id, data=contents, version=1, tag="", export="[[],[]]", autosave=0) s.put() u = models.UsersScripts(key_name="owner"+user+resource_id, user=user, title=filename, resource_id=resource_id, last_updated = datetime.datetime.today(), permission='owner', folder = "?none?") u.put() template_values = { 'url': resource_id } template_values['MODE'] = config.MODE template_values['GA'] = config.GA taskqueue.add(url="/spellcheckbigscript", params= {'resource_id' : resource_id}) self.response.headers['Content-Type'] = 'text/html' path = get_template_path('html/UploadComplete.html') self.response.out.write(template.render(path, template_values))
def get(self): resource_id=self.request.get('resource_id') if resource_id=="Demo": return title = permission(resource_id) if title == False: return f = ownerPermission(resource_id) r = models.Notes.get_by_resource_id(resource_id) export=[] for i in r: export.append([i.row, i.col, simplejson.loads(i.data), i.thread_id]) template_values={'j':simplejson.dumps(export), "user":gcu(), "sign_out": users.create_logout_url("/"), "title":title, "f":f } path = get_template_path('html/mobile/MobileViewNotes.html') self.response.out.write(template.render(path, template_values))
def get(self): posts = None uri = self.request.path_info.split('/') if uri[-1] == '': uri = uri[:-1] if len(uri) == 3: key = uri[2].replace("-"," ").title().replace(" ","-") posts = db.get(db.Key.from_path('BlogDB', key)) if posts is not None: posts = [posts] elif len(uri) == 2: q = BlogDB.all() q.order('-timestamp') posts = q.fetch(20) if posts is not None: for post in posts: post.link = post.get_url() post.date = post.timestamp.date() template_values = { "posts": posts} template_values['MODE'] = config.MODE template_values['GA'] = config.GA path = get_template_path('html/blog.html') self.response.out.write(template.render(path, template_values))
def get(self): resource_id = self.request.get('resource_id') p = ownerPermission(resource_id) if p == False: return r = models.ScriptData.get_historical_metadata(resource_id) for i in r: i.updated=i.timestamp.strftime("%b %d") J=simplejson.loads(i.export) i.emailed = "Emailed" if len(J[0]) > 0 else '' i.tagged = "" if i.tag == '' else 'Tag' i.autosave_class = 'autosave' if i.autosave else 'manualsave' sign_out = users.create_logout_url('/') user_email = gcu() template_values={'r':r, 'title':p, 'resource_id':resource_id, 'sign_out':sign_out, 'user': user_email, } path = get_template_path('html/revisionhistory.html') template_values['MODE'] = config.MODE template_values['GA'] = config.GA self.response.out.write(template.render(path, template_values))
def get(self): path = get_template_path('html/convert.html') template_values={'GA' : config.GA} template_values['MODE'] = config.MODE self.response.headers['Content-Type'] = 'text/html' self.response.out.write(template.render(path, template_values))
def get(self): path = get_template_path('html/blogpostgui.html') template_values = {} self.response.out.write(template.render(path, template_values))
def render(self, template_name, context): path = utils.get_template_path(template_name) self.response.out.write(template.render(path, context))