From: john Date: Fri, 18 Apr 2003 14:01:41 +0000 (+0000) Subject: support for the new MediaSearchTerm. X-Git-Tag: BEFORE_MERGE_1_1~170 X-Git-Url: http://erislabs.net/gitweb/?p=mir.git;a=commitdiff_plain;h=778eedc08cae6a883f7621eae5426781e8c147e4 support for the new MediaSearchTerm. also hardcoded a 15-article limit for newsletters so we don't open ourselves up to a dos when we start storing pdfs in memory(real soon now!) --- diff --git a/source/mircoders/servlet/ServletModuleOpenIndy.java b/source/mircoders/servlet/ServletModuleOpenIndy.java index 890c57c2..9520b87d 100755 --- a/source/mircoders/servlet/ServletModuleOpenIndy.java +++ b/source/mircoders/servlet/ServletModuleOpenIndy.java @@ -94,6 +94,7 @@ import mir.util.HTTPRequestParser; import mir.util.StringRoutines; import mircoders.entity.EntityComment; import mircoders.entity.EntityContent; +import mircoders.global.CacheKey; import mircoders.global.MirGlobal; import mircoders.media.*; import mircoders.media.UnsupportedMediaFormatExc; @@ -105,6 +106,7 @@ import mircoders.search.AudioSearchTerm; import mircoders.search.ContentSearchTerm; import mircoders.search.ImagesSearchTerm; import mircoders.search.KeywordSearchTerm; +import mircoders.search.MediaSearchTerm; import mircoders.search.TextSearchTerm; import mircoders.search.TopicSearchTerm; import mircoders.search.UnIndexedSearchTerm; @@ -125,7 +127,7 @@ import mircoders.storage.DatabaseTopics; * open-postings to the newswire * * @author mir-coders group - * @version $Id: ServletModuleOpenIndy.java,v 1.74 2003/04/16 03:26:46 zapata Exp $ + * @version $Id: ServletModuleOpenIndy.java,v 1.75 2003/04/18 14:01:41 john Exp $ * */ @@ -820,7 +822,8 @@ public class ServletModuleOpenIndy extends ServletModule ImagesSearchTerm imagesTerm = new ImagesSearchTerm(); AudioSearchTerm audioTerm = new AudioSearchTerm(); VideoSearchTerm videoTerm = new VideoSearchTerm(); - + MediaSearchTerm mediaTerm = new MediaSearchTerm(); + //make the query available to subsequent iterations Iterator j = Arrays.asList(search_variables).iterator(); @@ -897,6 +900,11 @@ public class ServletModuleOpenIndy extends ServletModule queryString = queryString + " +" + videoFragment; } + String mediaFragment = mediaTerm.makeTerm(req); + if (mediaFragment != null){ + queryString = queryString + " +" + mediaFragment; + } + if (queryString == null || queryString == ""){ queryString = ""; } @@ -1077,6 +1085,7 @@ public class ServletModuleOpenIndy extends ServletModule public void getpdf(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc, ServletModuleUserExc, ServletModuleFailure { String ID_REQUEST_PARAM = "id"; + int maxArticlesInNewsleter = 15; // it is nice not to be dos'ed try { String idParam = req.getParameter(ID_REQUEST_PARAM); if (idParam != null) { @@ -1088,9 +1097,16 @@ public class ServletModuleOpenIndy extends ServletModule REMatch[] idMatches=re.getAllMatches(idParam); + String cacheSelector=""; + + for (int i = 0; i < idMatches.length; i++){ + cacheSelector= cacheSelector + "," + idMatches[i].toString(); + } + + if (idMatches.length > 1){ pdfMaker.addLine(); - for (int i = 0; i < idMatches.length; i++){ + for (int i = 0; i < idMatches.length && i < maxArticlesInNewsleter; i++){ REMatch aMatch = idMatches[i]; String id=aMatch.toString(); EntityContent contentEnt = (EntityContent)contentModule.getById(id); @@ -1129,83 +1145,6 @@ public class ServletModuleOpenIndy extends ServletModule } - /* - * Method for dynamically generating a pdf from a fo file - * (deprecated until fop gets its act together regarding floats) - */ - - /* - public void getpdf(HttpServletRequest req, HttpServletResponse res) - throws ServletModuleExc, ServletModuleUserExc, ServletModuleFailure { - String ID_REQUEST_PARAM = "id"; - String language = req.getParameter("language"); - String generateFO=configuration.getString("GenerateFO"); - String generatePDF=configuration.getString("GeneratePDF"); - - - //don't do anything if we are not making FO files, or if we are - //pregenerating PDF's - if (generateFO.equals("yes") && generatePDF.equals("no")){ - //fop complains unless you do the logging this way - org.apache.log.Logger log = null; - Hierarchy hierarchy = Hierarchy.getDefaultHierarchy(); - log = hierarchy.getLoggerFor("fop"); - log.setPriority(Priority.WARN); - - String producerStorageRoot=configuration.getString("Producer.StorageRoot"); - String producerDocRoot=configuration.getString("Producer.DocRoot"); - // String templateDir=MirConfig.getPropWithHome("HTMLTemplateProcessor.Dir"); - String xslSheet=configuration.getString("Producer.HTML2FOStyleSheet"); - try { - String idParam = req.getParameter(ID_REQUEST_PARAM); - if (idParam != null) { - EntityContent contentEnt = - (EntityContent)contentModule.getById(idParam); - String publishPath = StringUtil.webdbDate2path(contentEnt.getValue("date")); - String foFile; - - if (language == null){ - foFile = producerStorageRoot + producerDocRoot + "/" - + publishPath + idParam + ".fo"; - } - else{ - foFile = producerStorageRoot + producerDocRoot + "/" - + language + publishPath + idParam + ".fo"; - } - logger.debug("USING FILES" + foFile + " and " + xslSheet); - XSLTInputHandler input = new XSLTInputHandler(new File(foFile), - new File(xslSheet)); - - ByteArrayOutputStream out = new ByteArrayOutputStream(); - res.setContentType("application/pdf"); - - Driver driver = new Driver(); - driver.setLogger(log); - driver.setRenderer(Driver.RENDER_PDF); - driver.setOutputStream(out); - driver.render(input.getParser(), input.getInputSource()); - - byte[] content = out.toByteArray(); - res.setContentLength(content.length); - res.getOutputStream().write(content); - res.getOutputStream().flush(); - } - else { - throw new ServletModuleExc("Missing id."); - } - } - catch (Throwable t) { - logger.error(t.toString()); - - throw new ServletModuleFailure(t); - } - } - else { - throw new ServletModuleExc("Can't generate a PDF because the config tells me not to."); - } - } - */ - public String generateOnetimePassword() { Random r = new Random(); int random = r.nextInt();