r104 - in trunk/src/main: java/org/chorem/bow resources
Author: bpoussin Date: 2010-07-28 11:23:31 +0200 (Wed, 28 Jul 2010) New Revision: 104 Url: http://chorem.org/repositories/revision/bow/104 Log: add support for search in search engine (default seeks.fr) if we start with ':' in OpenSearch request Modified: trunk/src/main/java/org/chorem/bow/BowConfig.java trunk/src/main/java/org/chorem/bow/ControllerServlet.java trunk/src/main/resources/bow.properties Modified: trunk/src/main/java/org/chorem/bow/BowConfig.java =================================================================== --- trunk/src/main/java/org/chorem/bow/BowConfig.java 2010-07-27 16:14:23 UTC (rev 103) +++ trunk/src/main/java/org/chorem/bow/BowConfig.java 2010-07-28 09:23:31 UTC (rev 104) @@ -152,6 +152,15 @@ } /** + * Get default search engine + * + * @return search engine url + */ + public String getSearchEngine() { + return getOption(Option.SEARCH_ENGINE.key); + } + + /** * Get bow address from as string. * * @return addressFrom @@ -199,6 +208,8 @@ null, String.class, false, false), SERVLET_ALIAS("servlet.alias", _("bow.config.servlet.bow.description"), null, String.class, false, false), + SEARCH_ENGINE("search.engine", _("bow.config.search.engine.description"), + null, String.class, false, false), BOW_SMTPSERVER("bow.smtpServer", _("bow.config.bow.smtpServer.description"), null, String.class, false, false), BOW_ADDRESSFROM("bow.addressFrom", _("bow.config.bow.addressFrom.description"), Modified: trunk/src/main/java/org/chorem/bow/ControllerServlet.java =================================================================== --- trunk/src/main/java/org/chorem/bow/ControllerServlet.java 2010-07-27 16:14:23 UTC (rev 103) +++ trunk/src/main/java/org/chorem/bow/ControllerServlet.java 2010-07-28 09:23:31 UTC (rev 104) @@ -285,11 +285,27 @@ * @throws ServletException if a servlet error occurs * @description set the openSearch result */ - protected void actionOpenSearchResult(HttpServletRequest request, HttpServletResponse response, HttpSession session, User user, String token) + protected void actionOpenSearchResult(HttpServletRequest request, + HttpServletResponse response, HttpSession session, User user, String token) throws IOException, ServletException, NoSuchAlgorithmException { String searchLine = request.getParameter("searchLine"); - if (searchLine != null && searchLine.matches("^http://[^ ]*") && !searchLine.contains(" ")) { + if (searchLine != null && searchLine.matches("^http://[^ ]*")) { response.sendRedirect(searchLine); + } else if (searchLine != null && searchLine.startsWith(":")) { + searchLine = searchLine.substring(1); // suppress first ":" + + WikittyProxy proxy = BowProxy.getInstance(); + Preference pref = proxy.restore(Preference.class, user.getWikittyId()); + + String searchEngineURL = pref.getSearchEngineUrlResults(); + if (searchEngineURL == null || "".equals(searchEngineURL)) { + BowConfig config = BowConfig.getInstance(); + searchEngineURL = config.getSearchEngine(); + } + searchEngineURL = searchEngineURL.replace("{searchTerms}", searchLine); + searchEngineURL = response.encodeRedirectURL(searchEngineURL); + + response.sendRedirect(searchEngineURL); } else { session.setAttribute("user", user); initializeToken(session, user); Modified: trunk/src/main/resources/bow.properties =================================================================== --- trunk/src/main/resources/bow.properties 2010-07-27 16:14:23 UTC (rev 103) +++ trunk/src/main/resources/bow.properties 2010-07-28 09:23:31 UTC (rev 104) @@ -6,3 +6,4 @@ bow.smtpServer=smtp bow.addressFrom=bow@chorem.org bow.admins=brossa_b@epitech.net +search.engine=http://seeks.fr/search?expansion=1&action=expand&q={searchTerms}
participants (1)
-
bpoussin@users.chorem.org