def getSavedGitBranch(): RELOAD_LOCK.lock() try: gitBranchFile = File(getGitBranchFile()) if gitBranchFile.isFile(): branch = FileUtils.readFileToString(gitBranchFile).strip() return branch if len(branch) > 0 else None else: return None finally: RELOAD_LOCK.unlock()
def getSavedGitUrl(): RELOAD_LOCK.lock() try: gitUrlFile = File(getGitUrlFile()) if gitUrlFile.isFile(): url = FileUtils.readFileToString(gitUrlFile).strip() return url if len(url) > 0 else None else: return None finally: RELOAD_LOCK.unlock()
def getToken(self, tokenId): self.resetErrors() index = "resumptionTokens-GET" sql = """ SELECT * FROM resumptionTokens WHERE token = ? """ fields = [tokenId] try: result = self.db.select(self.dbName, index, sql, fields) # Make sure we got a response if result is None or result.isEmpty(): return None # Create the new token to return metadataPrefix = result.get(0).get("METADATAPREFIX") expiryStr = result.get(0).get("EXPIRY") # Jython does not support %f microseconds in time parsing, makes # this more awkward then it should be in 2.6+ Python # 1: split into basic time + micro seconds (basicTime, mSecs) = expiryStr.strip().split(".") # 2: Parse the basic time expiryDt = datetime.strptime(basicTime, "%Y-%m-%d %H:%M:%S") # 3: Convert into a 'epoch' long and then to a string (has an extra ".0" on the end) epoch = "%s" % time.mktime(expiryDt.timetuple()) # 4: Remove the extraneous trailing zero and re-attach microseconds expiry = "%s%s" % (epoch.replace(".0", ""), mSecs) nextToken = result.get(0).get("NEXTTOKEN") file = File( FascinatorHome.getPath("oaipmh-results") + "/" + tokenId) resultJson = FileUtils.readFileToString(file) FileUtils.deleteQuietly(file) token = ResumptionToken(tokenId, metadataPrefix, nextToken, resultJson) token.setExpiry(expiry) return token except Exception, e: # Something is wrong self.log.error("ERROR: ", e) self.error = True self.errorMsg = self.parseError(e) return None
def getToken(self, tokenId): self.resetErrors() index = "resumptionTokens-GET" sql = """ SELECT * FROM resumptionTokens WHERE token = ? """ fields = [tokenId] try: result = self.db.select(self.dbName, index, sql, fields) # Make sure we got a response if result is None or result.isEmpty(): return None # Create the new token to return metadataPrefix = result.get(0).get("METADATAPREFIX") expiryStr = result.get(0).get("EXPIRY") # Jython does not support %f microseconds in time parsing, makes # this more awkward then it should be in 2.6+ Python # 1: split into basic time + micro seconds (basicTime, mSecs) = expiryStr.strip().split(".") # 2: Parse the basic time expiryDt = datetime.strptime(basicTime, "%Y-%m-%d %H:%M:%S") # 3: Convert into a 'epoch' long and then to a string (has an extra ".0" on the end) epoch = "%s" % time.mktime(expiryDt.timetuple()) # 4: Remove the extraneous trailing zero and re-attach microseconds expiry = "%s%s" % (epoch.replace(".0", ""), mSecs) nextToken = result.get(0).get("NEXTTOKEN") file = File(FascinatorHome.getPath("oaipmh-results")+ "/"+tokenId) resultJson = FileUtils.readFileToString(file) FileUtils.deleteQuietly(file) token = ResumptionToken(tokenId, metadataPrefix,nextToken,resultJson) token.setExpiry(expiry) return token except Exception, e: # Something is wrong self.log.error("ERROR: ", e) self.error = True self.errorMsg = self.parseError(e) return None
def execute(self): if self.loginUser == None: request.setAttribute("error", u"请重新登录。") return "/WEB-INF/ftl/show_resource_swf.ftl" param = ParamUtil(request) resourceId = self.params.safeGetIntParam("resource") resourceService = __jitar__.getResourceService() if resourceId == 0: request.setAttribute("error", u"缺少文件信息。") return "/WEB-INF/ftl/show_resource_swf.ftl" resource = resourceService.getResource(resourceId) if resource == None: request.setAttribute("error", u"无法加载资源。") return "/WEB-INF/ftl/show_resource_swf.ftl" #======================================================================= # enc = EncryptDecrypt("zhongjiaoqixing") # try: # resfile = enc.decrypt(resfile) # except: # request.setAttribute("error", u"解压缩过程中出现错误。") # return "/WEB-INF/ftl/show_resource.ftl" # finally: # encc = None #======================================================================= try: resfile = resource.href filename = resfile.lower() fileUserConfigPath = request.getSession().getServletContext( ).getInitParameter("userPath") if fileUserConfigPath == None or fileUserConfigPath == "": resfileapth = request.getSession().getServletContext( ).getRealPath("/" + resfile) else: if fileUserConfigPath.endswith("\\") == False: fileUserConfigPath = fileUserConfigPath + "\\" resfileapth = fileUserConfigPath + resfile.replace("/", "\\") ff = File(resfileapth) if ff.isFile() == False or ff.exists() == False: request.setAttribute("error", u"资源文件不存在,无法进行预览。") return "/WEB-INF/ftl/show_resource_swf.ftl" #这些文件直接显示 if filename.endswith(".jpg") or filename.endswith( ".gif") or filename.endswith(".png"): response.sendRedirect(CommonUtil.getSiteUrl(request) + resfile) return if filename.endswith(".txt"): content = FileUtils.readFileToString( ff, CommonUtil.getFileEncoding(resfileapth)) request.setAttribute("content", content) return "/WEB-INF/ftl/show_resource_txt.ftl" #PDF2SWFPath = request.getSession().getServletContext().getInitParameter("pdf2swfPath") #if PDF2SWFPath == None or PDF2SWFPath == "": #request.setAttribute("error", u"没有配置文件转换服务。") #return "/WEB-INF/ftl/show_resource_swf.ftl" if filename.endswith(".doc") or filename.endswith( ".docx" ): # or filename.endswith(".ppt") or filename.endswith(".pptx") or filename.endswith(".xls") or filename.endswith(".xlsx"): swf = resfileapth[0:resfileapth.find(".")] + ".swf" file = File(swf) if file.isFile() == False or file.exists() == False: #converter = DocConverter(JacobPDFConverter(), SWFToolsSWFConverter(PDF2SWFPath)) #converter.convert(resfileapth) #converter = None #转换服务 server_ip = request.getSession().getServletContext( ).getInitParameter("server_ip") server_port = request.getSession().getServletContext( ).getInitParameter("server_port") timeout = request.getSession().getServletContext( ).getInitParameter("timeout") fcs = FCSConverter() fcs.fcs( server_ip, server_port, timeout, resource.title, resfileapth[0:resfileapth.find(".")] + "." + filename.split(".")[-1], file.toString(), "0") request.setAttribute("resourceId", resourceId) request.setAttribute( "showWaiting", self.params.safeGetStringParam("showWaiting")) swf = CommonUtil.getSiteUrl( request) + resfile[0:resfile.find(".")] + ".swf" request.setAttribute("swf", swf) return "/WEB-INF/ftl/show_resource_swf.ftl" #if filename.endswith(".pdf"): #swf = resfileapth[0:resfileapth.find(".")] + ".swf" #file = File(swf) #if file.isFile() == False or file.exists() == False: #converter = SWFToolsSWFConverter(PDF2SWFPath) #converter.convert2SWF(resfileapth) #converter = None #request.setAttribute("resourceId", resourceId) #request.setAttribute("showWaiting", self.params.safeGetStringParam("showWaiting")) #swf = CommonUtil.getSiteUrl(request) + resfile[0:resfile.find(".")] + ".swf" #request.setAttribute("swf", swf) #return "/WEB-INF/ftl/show_resource_swf.ftl" if filename.endswith(".swf"): file = File(resfileapth) if file.isFile() == False or file.exists() == False: request.setAttribute("error", u"swf 文件不存在,无法进行预览。") return "/WEB-INF/ftl/show_resource_swf.ftl" swf = CommonUtil.getSiteUrl(request) + resfile request.setAttribute("orginIsSwf", "") request.setAttribute("swf", swf) return "/WEB-INF/ftl/show_resource_swf.ftl" request.setAttribute("error", u"此文件不支持预览。") return "/WEB-INF/ftl/show_resource_swf.ftl" except BaseException, varExption: if varExption != None: request.setAttribute( "error", u"预览此文件时出错,并且已经被捕获。<br/><br/>" + str(varExption)) else: request.setAttribute("error", u"预览此文件时出错,并且并且没有捕获到错误信息。") return "/WEB-INF/ftl/show_resource_swf.ftl"
def __activate__(self, context): self.auth = context["page"].authentication self.errorMsg = "" self.request = context["request"] self.response = context["response"] self.formData = context["formData"] self.log = context["log"] self.reportManager = context["Services"].getService("reportManager") self.reportName = None if (self.auth.is_logged_in()): if (self.auth.is_admin() == True): pass else: self.errorMsg = "Requires Admin / Librarian / Reviewer access." else: self.errorMsg = "Please login." if self.errorMsg == "": self.reportName = self.formData.get("reportName") if (self.reportName): self.report = self.reportManager.getReport(self.reportName) self.func = self.formData.get("func", "") if self.func == "" and self.request.getParameter("func"): self.func = self.request.getParameter("func") if self.func == "action": self.action = self.request.getParameter("action") if self.action == "create": self.createReport() out = self.response.getPrintWriter( "text/plain; charset=UTF-8") out.println("{\"id\":\"" + self.report.getReportName() + "\"}") out.close() return if self.action == "edit": self.editReport() out = self.response.getPrintWriter( "text/plain; charset=UTF-8") out.println("{\"id\":\"" + self.report.getReportName() + "\"}") out.close() return if self.action == "options": out = self.response.getPrintWriter( "text/plain; charset=UTF-8") out.println( FileUtils.readFileToString( File( FascinatorHome.getPath("reports") + "/reportCriteriaOptions.json"))) out.close() return if self.action == "get-json": out = self.response.getPrintWriter( "text/plain; charset=UTF-8") report = self.reportManager.getReports().get( self.request.getParameter("reportName")) queryFilters = report.config.getObject("query", "filter") jsonMap = HashMap() elementIds = ArrayList() for elementId in queryFilters: elementIds.add(elementId) Collections.sort(elementIds) for elementId in elementIds: jsonMap.put(elementId, queryFilters.get(elementId).get("value")) jsonMap.put("reportName", report.getLabel()) JsonObject.writeJSONString(jsonMap, out) out.close() return
def get_file_contents(self, path): return FileUtils.readFileToString(File(path))
def __activate__(self, context): self.auth = context["page"].authentication self.errorMsg = "" self.request = context["request"] self.response = context["response"] self.formData = context["formData"] self.log = context["log"] self.reportManager = context["Services"].getService("reportManager") self.reportName = None if (self.auth.is_logged_in()): if (self.auth.is_admin()==True): pass else: self.errorMsg = "Requires Admin / Librarian / Reviewer access." else: self.errorMsg = "Please login." if self.errorMsg == "": self.reportName = self.formData.get("reportName") if (self.reportName): self.report = self.reportManager.getReport(self.reportName) self.func = self.formData.get("func", "") if self.func == "" and self.request.getParameter("func"): self.func = self.request.getParameter("func") if self.func == "action": self.action = self.request.getParameter("action") if self.action == "create": self.createReport() out = self.response.getPrintWriter("text/plain; charset=UTF-8") out.println("{\"id\":\""+self.report.getReportName()+"\"}") out.close() return if self.action == "edit": self.editReport() out = self.response.getPrintWriter("text/plain; charset=UTF-8") out.println("{\"id\":\""+self.report.getReportName()+"\"}") out.close() return if self.action == "options": out = self.response.getPrintWriter("text/plain; charset=UTF-8") out.println(FileUtils.readFileToString(File(FascinatorHome.getPath("reports")+"/reportCriteriaOptions.json"))) out.close() return if self.action == "get-json": out = self.response.getPrintWriter("text/plain; charset=UTF-8") report = self.reportManager.getReports().get(self.request.getParameter("reportName")) queryFilters = report.config.getObject("query", "filter") jsonMap = HashMap() elementIds = ArrayList() for elementId in queryFilters: elementIds.add(elementId) Collections.sort(elementIds) for elementId in elementIds: jsonMap.put(elementId,queryFilters.get(elementId).get("value")) jsonMap.put("reportName",report.getLabel()) JsonObject.writeJSONString(jsonMap,out) out.close() return