mirror of
				https://github.com/fooflington/wordsearch.git
				synced 2025-11-03 22:09:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
<%@ page language="java" contentType="application/json; charset=UTF-8"
 | 
						|
    pageEncoding="UTF-8"%>
 | 
						|
<%@ page trimDirectiveWhitespaces="true" %>
 | 
						|
<%@ page import="uk.org.mafoo.wordsearch.*" %>
 | 
						|
<%@ page import="java.util.*" %>
 | 
						|
<%@ page import="org.apache.commons.lang.StringUtils" %>
 | 
						|
<%@ page import="org.apache.commons.lang.StringEscapeUtils" %>
 | 
						|
<%@ page import="org.json.simple.JSONObject" %>
 | 
						|
<%@ page errorPage="api-error.jsp" %>
 | 
						|
<%
 | 
						|
 | 
						|
        int height = Integer.parseInt(request.getParameter("height"));
 | 
						|
        int width  = Integer.parseInt(request.getParameter("width"));
 | 
						|
        boolean simple = request.getParameter("simple") != null;
 | 
						|
        String name = StringEscapeUtils.escapeHtml(request.getParameter("name"));
 | 
						|
 | 
						|
        if (request.getParameter("words").length() > 2048) { throw new Exception("Input too large"); }
 | 
						|
        if (height > 100 || width > 100) { throw new Exception("Dimentions too large"); }
 | 
						|
 | 
						|
        List<String> words = new ArrayList<String>();
 | 
						|
        for ( String line : request.getParameter("words").split(",")) {
 | 
						|
                words.add(line.trim());
 | 
						|
        }
 | 
						|
        Collections.sort(words);
 | 
						|
 | 
						|
        char[][] grid = GridFactory.makeGrid(words, height, width, simple);
 | 
						|
 | 
						|
	List<List<String>> grid_ar = new ArrayList<List<String>>(); 
 | 
						|
	for ( char[] row : grid ) {
 | 
						|
		ArrayList<String> row_ar = new ArrayList<String>();
 | 
						|
		for ( char cell : row ) {
 | 
						|
			row_ar.add("" + cell);
 | 
						|
		}
 | 
						|
		grid_ar.add(row_ar);
 | 
						|
	}
 | 
						|
 | 
						|
	JSONObject resp = new JSONObject();
 | 
						|
	
 | 
						|
	resp.put("grid", grid_ar);
 | 
						|
	resp.put("words", words);
 | 
						|
	resp.put("height", height);
 | 
						|
	resp.put("width", width);
 | 
						|
	resp.put("isSimple", simple);
 | 
						|
 | 
						|
%>
 | 
						|
<%= resp %>
 |