class Saver(): def __init__(self,outputfilename="prova2.elp",titol="Exportacio de LliureX"): self._outputfile = outputfilename self._titol = titol self.document = Package('LLiureX') self.document.set_name('Lliurex') self.document.set_description('Lliurex') self.document.set_author('Lliurex') self.document.set_title('Documentacio LLiurex') def addWikipedia(self,title,url,parent): W = WikipediaIdeviceLliurex(url) W.set_title(title) W.edit = False W.loadArticle("") W.undo = False parent.addIdevice(W) def save(self): self.document.save(self._outputfile) def AddNode(self,parent,titol): Fill = parent.createChild(); Fill.setTitle(titol) return Fill def getRoot(self): return self.document.root
def render_POST(self, request): #check the parameters required_headers = ['ldshake_frame_origin','name','sectoken'] for r_h in required_headers: if r_h not in request.args: return 'error' #get an id and increment the counter self.id_count_lock.acquire() id = self.id_count; self.id_count += 1 self.id_count_lock.release() package_name = request.args['sectoken'][0] if 'document' not in request.args: package = Package(package_name) else: fullpath = '/var/local/exelearning/' + package_name + '_' + str(random.randrange(1,999999)) + '.elp' try: elp_file = open(fullpath, "wb") elp_file.write(request.args['document'][0]) elp_file.close() package = Package.load(fullpath, True, None) package.set_name(package_name) except: return 'error' self.putChild(str(id), LdShakeDocument({ 'name': request.args['name'][0], 'sectoken': request.args['sectoken'][0], 'ldshake_frame_origin': request.args['ldshake_frame_origin'][0] }, self, package, self.webserver)) #return the resource URL return request.prePathURL() + str(id) + '/'