diff --git a/src/main/java/com/searchcode/app/App.java b/src/main/java/com/searchcode/app/App.java index 3b460c0c..dd7868dd 100644 --- a/src/main/java/com/searchcode/app/App.java +++ b/src/main/java/com/searchcode/app/App.java @@ -125,6 +125,14 @@ public static void main(String[] args) { return new JsonTransformer().render(searchRouteService.codeSearch(request, response)); }); + get("/codesearch/rss/", (request, response) -> { + addXmlHeaders(response); + SearchRouteService searchRouteService = new SearchRouteService(); + Map map = new HashMap<>(); + map.put("result", searchRouteService.codeSearch(request, response)); + return new FreeMarkerEngine().render(new ModelAndView(map, "codesearchrss.ftl")); + }); + get("/timecodesearch/", (request, response) -> { addJsonHeaders(response); TimeSearchRouteService ars = new TimeSearchRouteService(); @@ -435,6 +443,11 @@ private static void addJsonHeaders(Response response) { response.header("Content-Type", "application/json"); } + private static void addXmlHeaders(Response response) { + response.header("Content-Encoding", "gzip"); + response.header("Content-Type", "application/rss+xml; charset=UTF-8"); + } + private static void addAuthenticatedUser(Request request) { request.session().attribute(Values.USERSESSIONID, true); } diff --git a/src/main/resources/spark/template/freemarker/codesearchrss.ftl b/src/main/resources/spark/template/freemarker/codesearchrss.ftl new file mode 100644 index 00000000..45e57f09 --- /dev/null +++ b/src/main/resources/spark/template/freemarker/codesearchrss.ftl @@ -0,0 +1,30 @@ + + + + Search for "${result.query}" + https://searchcode.com/ + Search for "${result.query}" + <#list result.codeResultList> + <#items as result> + + ${result.fileName} in ${result.repoName} + https:/searchcode.com/file/${result.codeId}/${result.codePath} + https:/searchcode.com/file/${result.codeId}/${result.codePath} + + <ol class="code-result"> + <#list result.matchingResults> + <#items as line> + <li value="${line.lineNumber?c}"> + <a href="https:/searchcode.com/file/${result.documentId?c}/${result.codePath}#${line.lineNumber?c}"> + <pre>${line.line?html}</pre> + </a> + </li> + + + </ol> + + + + + + \ No newline at end of file