def post(self): resource_id = self.request.get('resource_id') p = ownerPermission(resource_id) if p == False: return collaborators = self.request.get('collaborators').lower() collabList = collaborators.split(',') #uniquify the list uCollabList = set([c for c in collabList if c != '']) #don't duplicate sharing rows = models.UsersScripts.get_by_resource_id(resource_id) existing_collaborators = set([row.user.lower() for row in rows]) new_collaborators = list(uCollabList - existing_collaborators) for collaborator in new_collaborators: u = models.UsersScripts(key_name="collab"+collaborator+resource_id, resource_id=resource_id, permission="collab", user=collaborator, last_updated=datetime.datetime.today(), title=p, folder="?none?") u.put() s = models.ShareNotify(user=collaborator, resource_id = resource_id, timeshared = datetime.datetime.today(), timeopened = datetime.datetime.today(), opened=False) s.put() if new_collaborators and self.request.get('sendEmail') == 'y': user = users.get_current_user().email() subject = user + " has shared a script with you on RawScripts.com" body_message = "http://www.rawscripts.com/editor?resource_id="+resource_id result = urlfetch.fetch("http://www.rawscripts.com/text/notify.txt") htmlbody = result.content html = htmlbody.replace("SCRIPTTITLE", p) html = html.replace("USER",users.get_current_user().email()) html = html.replace("SCRIPTURL", body_message) divArea = '' if self.request.get('addMsg') == 'y': divArea = "<div style='width:300px; margin-left:20px; font-size:12pt; font-family:serif'>" divArea += self.request.get('msg') divArea += "<br><b>--" + user + "</b></div>" html = html.replace("TEXTAREA", divArea) body = body_message + """ --- This Script written and sent from RawScripts.com. Check it out---""" mail.send_mail(sender=users.get_current_user().email(), to=new_collaborators, subject=subject, body = body, html = html) self.response.headers['Content-Type'] = 'text/plain' self.response.out.write(",".join(new_collaborators))
def post(self): resource_id = self.request.get('resource_id') title = ownerPermission(resource_id) if title == False: return screenplays = models.UsersScripts.get_by_resource_id(resource_id) for screenplay in screenplays: screenplay.permission = 'hardDelete' screenplay.put()
def post(self): resource_id = self.request.get('resource_id') p = ownerPermission(resource_id) if p == False: return rename = self.request.get('rename') screenplays = models.UsersScripts.get_by_resource_id(resource_id) for screenplay in screenplays: screenplay.title = rename screenplay.put()
def post(self): resource_id = self.request.get('resource_id') response = '0' p = ownerPermission(resource_id) if p != False: response = '1' screenplays = models.UsersScripts. \ get_by_resource_id(resource_id) for screenplay in screenplays: self.update_screenplay(screenplay) self.response.headers['Content-Type']='text/plain' self.response.out.write(response)
def post(self): resource_id = self.request.get('resource_id') p = permission(resource_id) if p == False: return title_page = self.request.get('title_page') subject = self.request.get('subject') body_message = self.request.get('body_message') result = urlfetch.fetch("http://www.rawscripts.com/text/email.txt") htmlbody = result.content html = htmlbody.replace("FILLERTEXT", body_message) body = body_message + """ --- This Script written and sent from RawScripts.com. Check it out---""" # Make Recipient list instead of just one recipients=self.request.get('recipients').split(',') title = p latest = models.ScriptData.get_latest_version(resource_id) if not latest: return data = simplejson.loads(latest.data) title_page_obj = None if str(title_page) == '1': title_page_obj = models.TitlePageData.get_or_create(resource_id, title) newfile = export.Pdf(data, title_page_obj) filename = title + '.pdf' try: mail.send_mail(sender=users.get_current_user().email(), to=recipients, subject=subject, body=body, html=html, attachments=[(filename, newfile.getvalue())]) except: self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('not sent') return if ownerPermission(resource_id) != False: J = simplejson.loads(latest.export) t = str(datetime.datetime.today()) for recipient in recipients: J[0].append([recipient, t]) latest.export = simplejson.dumps(J) latest.put() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('sent')
def post(self): resource_id=self.request.get('resource_id') if resource_id=="Demo": return p = ownerPermission(resource_id) if p == False: return fromPage=self.request.get('fromPage') thread_id = self.request.get('thread_id') r = models.Notes.get_by_resource_id_and_thread_id(resource_id, thread_id) r.delete() un = models.UnreadNotes.get_by_resource_id(resource_id, thread_id=thread_id) for i in un: i.delete()
def post(self): resource_id = self.request.get('resource_id') title = ownerPermission(resource_id) if title == False: return new_resource_id = models.UsersScripts.create_unique_resource_id() screenplay = None if self.request.path =='/revisionduplicate': v = int(self.request.get('version')) screenplay = models.ScriptData.get_version(resource_id, v) else: screenplay = models.ScriptData.get_latest_version(resource_id) data = screenplay.data version = screenplay.version s = models.ScriptData(resource_id=new_resource_id, data=data, version=version+1, export="[[],[]]", tag="", autosave=0) s.put() d= models.DuplicateScripts(new_script = new_resource_id, from_script = resource_id, from_version=version) d.put() user = gcu() u = models.UsersScripts(key_name="owner"+user+new_resource_id, user=user, title='Copy of '+title, resource_id=new_resource_id, last_updated = datetime.datetime.today(), permission='owner', folder = "?none?") u.put() spelling_data = models.SpellingData.get_by_resource_id(resource_id) wrong = spelling_data.wrong if spelling_data else '[]' ignore = spelling_data.ignore if spelling_data else '[]' s = models.SpellingData(resource_id=new_resource_id, wrong=wrong, ignore=ignore) s.put() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('/editor?resource_id='+new_resource_id)
def post(self): resource_id=self.request.get('resource_id') if resource_id=="Demo": return p = ownerPermission(resource_id) if p == False: return positions = self.request.get('positions') J = simplejson.loads(positions) for i in J: r = models.Notes.get_by_resource_id_and_thread_id(resource_id, str(i[2])) r.row = i[0] r.col = i[1] r.updated = datetime.datetime.utcnow() r.put() self.response.headers["Content-type"]="plain/text" self.response.out.write('1')
def post(self): resource_id=self.request.get('resource_id') p = ownerPermission(resource_id) if p == False: return screenplay = None version = self.request.get('version') if version =='latest': screenplay = models.ScriptData.get_last_version_number(resource_id) else: screenplay = models.ScriptData.get_version(resource_id, int(version)) data = simplejson.loads(screenplay.data) v = ['s','a','c','d','p','t'] contents='' for text, line_format in data: text = cgi.escape(text, quote=True) contents+='<p class="'+v[line_format]+'">'+text+"</p>" self.response.headers['Content-Type']='text/plain' self.response.out.write(contents)
def post(self): resource_id=self.request.get('resource_id') p = ownerPermission(resource_id) if p == False: return person = self.request.get('removePerson').lower() row = models.UsersScripts.get_by_resource_id_and_user(resource_id, person) if not row or row.permission != 'collab': return row.delete() notes = models.UnreadNotes.get_by_resource_id_and_user(resource_id, person) for note in notes: note.delete() notifications = models.ShareNotify.get_by_resource_id_and_user(resource_id, person) for n in notifications: n.delete() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write(person)
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 post(self): resource_id = self.request.get('resource_id') thread_id=self.request.get('thread_id') msg_id=self.request.get('msgId') if resource_id=="Demo": self.response.out.write('deleted') return r = models.Notes.get_by_resource_id_and_thread_id(resource_id, thread_id) if r==None: self.response.out.write('no thread') return p = ownerPermission(resource_id) J = simplejson.loads(r.data) newJ=[] deleted=False for i in J: if i[2]==msg_id: if p!=False or i[1]==gcu(): deleted=True else: newJ.append(i) else: newJ.append(i) if len(newJ)==0: r.delete() else: r.data=simplejson.dumps(newJ) r.updated = datetime.datetime.utcnow() r.put() self.response.headers['Content-Type'] = 'text/plain' if not deleted: self.response.out.write('error') return un = models.UnreadNotes.get_by_resource_id(resource_id, thread_id=thread_id) for i in un: if i.msg_id==msg_id: i.delete() self.response.out.write('deleted')
def post(self): resource_id=self.request.get('resource_id') p = ownerPermission(resource_id) if p == False: return ids = [] new_script = resource_id while True: q = models.DuplicateScripts.all() q.filter('new_script =', new_script) r = q.get() if r is None: break new_script = r.from_script ids.append([new_script, r.from_version]) out=[] for past_resource_id, past_version in ids: data = models.ScriptData.get_historical_metadata(past_resource_id, past_version) for e in data: updated = e.timestamp.strftime("%b %d") out.append([past_resource_id, updated, e.version, e.autosave, e.export, e.tag]) j = simplejson.dumps(out) self.response.headers['Content-Type']= 'text/plain' self.response.out.write(j)
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))