Skip to content
This repository has been archived by the owner on Dec 6, 2022. It is now read-only.

Commit

Permalink
Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
Sam Richard committed Jan 19, 2011
2 parents a79f422 + e2c39a4 commit bc2644b
Show file tree
Hide file tree
Showing 7 changed files with 234 additions and 115 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
package gov.nysenate.opendirectory.servlets;

import gov.nysenate.opendirectory.models.Person;
import gov.nysenate.opendirectory.utils.Request;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.TreeSet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
public class AutoSuggestServlet extends BaseServlet {


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Request self = new Request(this,request,response);
String command = urls.getCommand(request);

String term = (String)self.httpRequest.getParameter("term");

PrintWriter out = self.httpResponse.getWriter();

if(command.equals("search")) {
out.print(doSearchSuggest(self, term));
}
else if(command.equals("skills")) {
String set = (String)self.httpRequest.getParameter("set");
out.println(doSkillsOrInterestsSuggest(self, command, term, set));
}
else if(command.equals("interests")) {
String set = (String)self.httpRequest.getParameter("set");
out.print(doSkillsOrInterestsSuggest(self, command, term, set));
}
}

public String doSkillsOrInterestsSuggest(Request self, String command, String term, String current) {
ArrayList<String> set = new ArrayList<String> (Arrays.asList(current.toLowerCase().split(",")));
ArrayList<String> suggestionSet = new ArrayList<String>();

String query = command + ":(" + term + "~) OR " + command + ":(" + term + "*) OR " + command + ":(" + term + ")";

ArrayList<Person> people = self.solrSession.loadPeopleByQuery(query, false);

for(Person person:people) {

TreeSet<String> personSet = (command.equals("skills") ? person.getSkills() : person.getInterests());

for(String value:personSet) {
if(value.toLowerCase().startsWith(term.toLowerCase())) {
if(!suggestionSet.contains(value.toLowerCase()) && !set.contains(value.toLowerCase())) {
suggestionSet.add(value.toLowerCase());
}
}
}

if(suggestionSet.size() >= 5) {
break;
}
}

String html = "";

for(int i = 0; i < suggestionSet.size(); i++) {
if(i == 0) {
html += "<li id=\"selected_suggestion\" class=\"suggestions_box\">";
}
else {
html += "<li class=\"suggestions_box\">";
}
html += suggestionSet.get(i) + "</li>";
}
return html;
}


public String doSearchSuggest(Request self, String term) {
ArrayList<Person> people = self.solrSession.loadPeopleByQuery(term, true);
int max = people.size() >= 10 ? 10 : people.size();

String html = "";
html += "<li><em>" + people.size() + " total results... (<a href=\"/opendirectory/search/?query="
+ term + "\">view all</a>)</em></li>";
for(int i = 0; i < max; i++) {
Person person = people.get(i);
html += "<li class=\"quickresult_box\"><a href=\"/" +
urls.url("person", person.getUid(),"profile") + "\" class=\"sublink\">" +
person.getFirstName() + " " + person.getLastName() +
(person.getDepartment() != null && !person.getDepartment().equals("") ?
" - " + person.getDepartment() : "") +
"</a></li>";
}
return html;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -84,13 +84,13 @@ else if(command.equals("auth")) {
}

private void doExternalRegister(Request self) throws IOException, ServletException, SolrServerException {
String firstName = (String)self.httpRequest.getParameter("firstName");
String lastName = (String)self.httpRequest.getParameter("lastName");
String email1 = (String)self.httpRequest.getParameter("email1");
String email2 = (String)self.httpRequest.getParameter("email2");
String password1 = (String)self.httpRequest.getParameter("pword1");
String password2 = (String)self.httpRequest.getParameter("pword2");
String phone = (String)self.httpRequest.getParameter("phone2");
String firstName = (String)self.httpRequest.getParameter("firstname");
String lastName = (String)self.httpRequest.getParameter("lastname");
String email1 = (String)self.httpRequest.getParameter("email");
String email2 = (String)self.httpRequest.getParameter("email_verify");
String password1 = (String)self.httpRequest.getParameter("password");
String password2 = (String)self.httpRequest.getParameter("password_verify");
String phone = (String)self.httpRequest.getParameter("phone");

String error = "";
if(firstName == null || firstName.equals("")) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,54 @@

import gov.nysenate.opendirectory.models.Person;
import gov.nysenate.opendirectory.utils.Request;
import gov.nysenate.opendirectory.utils.XmlUtils;

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.Vector;

import javax.imageio.ImageIO;
import javax.imageio.stream.ImageInputStream;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;

import com.sun.org.apache.xml.internal.security.utils.Base64;


@SuppressWarnings("serial")
public class PersonServlet extends BaseServlet {

private String avatarPath;

public String avatarPath() {
if(avatarPath==null) {
try {
String s = System.getProperty("file.separator");
File configFile = new File(getServletContext().getRealPath(s)+s+"WEB-INF"+s+"config.xml");
Document config = XmlUtils.getBuilder().parse(configFile);
Element avatar = (Element)config.getDocumentElement().getElementsByTagName("avatars").item(0);
String path = (String)avatar.getAttributes().getNamedItem("value").getTextContent().trim();
return path;

} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return avatarPath;
}


public class PersonServletException extends Exception {
public PersonServletException(String m) { super(m); }
Expand Down Expand Up @@ -48,23 +84,32 @@ public void doGet(HttpServletRequest request, HttpServletResponse response) thro
ServletOutputStream out = response.getOutputStream();
StringBuilder mResult = new StringBuilder();
mResult.append("BEGIN:VCARD\r\n");
mResult.append("VERSION:2.1");
mResult.append("VERSION:3.0\r\n");
mResult.append("\r\nN:").append(person.getLastName()).append(";").append(person.getFirstName()).append(";;;");
mResult.append("\r\nFN:").append(person.getFullName());
mResult.append("\r\nORG:").append("New York State Senate").append(";").append(person.getDepartment());
mResult.append("\r\nTITLE:").append(person.getTitle());
mResult.append("\r\nTEL;TYPE=WORK:").append(person.getPhone());
mResult.append("\r\nTEL;TYPE=OTHER:").append(person.getPhone2());
mResult.append("\r\nEMAIL;TYPE=WORK;TYPE=INTERNET;TYPE=PREF:").append(person.getEmail());
mResult.append("\r\nitem1.EMAIL;TYPE=INTERNET:").append(person.getEmail2());
mResult.append("\r\nitem1.X-ABLabel:").append("_$!<Other>!$_");
mResult.append("\r\nTEL;TYPE=WORK;TYPE=PREF:").append(person.getPhone());
mResult.append("\r\nTEL;TYPE=WORK:").append(person.getPhone2());
mResult.append("\r\nEMAIL;TYPE=WORK;TYPE=PREF;TYPE=INTERNET:").append(person.getEmail());
mResult.append("\r\nEMAIL;TYPE=WORK;TYPE=INTERNET:").append(person.getEmail2());
mResult.append("\r\nitem2.URL:").append(person.getTwitter());
mResult.append("\r\nitem2.X-ABLabel:").append("Twitter");
mResult.append("\r\nitem3.URL;TYPE=LINKEDIN:").append(person.getLinkedin());
mResult.append("\r\nitem3.URL;LINKEDIN:").append(person.getLinkedin());
mResult.append("\r\nitem3.X-ABLabel:").append("LinkedIn");
mResult.append("\r\nitem4.URL;TYPE=FACEBOOK:").append(person.getFacebook());
mResult.append("\r\nitem4.URL;FACEBOOK:").append(person.getFacebook());
mResult.append("\r\nitem4.X-ABLabel:").append("Facebook");
if(person.getPicture() != null && !person.getPicture().equals("")) {
BufferedImage image = ImageIO.read(new File(avatarPath() + "thumb/" + person.getPicture()));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "png",baos);
baos.flush();
String encodedImage = Base64.encode(baos.toByteArray());
baos.close();
mResult.append("\r\nPHOTO;TYPE=JPEG;ENCODING=BASE64:" + encodedImage.replaceAll("[\n\r]", ""));
}
mResult.append("\r\nEND:VCARD\r\n");

out.print(mResult.toString());

} else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@
*/
public class ImageConverter {

public static void resizeImage(String oldPath, String newPath, String name, String type, int width, int height) throws IOException, InterruptedException, IM4JavaException {
public static void resizeTransparentImage(String oldPath, String newPath, String name, String type, int width, int height) throws IOException, InterruptedException, IM4JavaException {
//set path to image magick tools
ProcessStarter.setGlobalSearchPath("/usr/bin/");
// ProcessStarter.setGlobalSearchPath("/usr/local/bin/");


//convert williams.JPG -resize 165x213\> -size 165x213 xc:transparent +swap -gravity center -composite williams.png
IMOperation frame = new IMOperation();
Expand All @@ -40,13 +42,12 @@ public static void resizeImage(String oldPath, String newPath, String name, Stri
}

public static String writeProfileImages(String path, String name, String type) throws IOException, InterruptedException, IM4JavaException {
resizeImage(path, path + "profile/", name, type, 165, 213);
resizeImage(path, path + "thumb/", name, type, 55, 71);
resizeTransparentImage(path, path + "profile/", name, type, 165, 213);
resizeTransparentImage(path, path + "thumb/", name, type, 55, 71);

return name + ".png";
}

public static void main(String[] args) throws IOException, InterruptedException, IM4JavaException {

}
}
10 changes: 9 additions & 1 deletion src/main/webapp/WEB-INF/web.xml
Original file line number Diff line number Diff line change
Expand Up @@ -810,7 +810,7 @@ standard deployment descriptor.
<servlet-name>FaqServlet</servlet-name>
<servlet-class>gov.nysenate.opendirectory.servlets.FaqServlet</servlet-class>
</servlet>
<servlet>
<servlet>
<servlet-name>NonSenateAccessServlet</servlet-name>
<servlet-class>gov.nysenate.opendirectory.servlets.NonSenateAccessServlet</servlet-class>
</servlet>
Expand Down Expand Up @@ -890,4 +890,12 @@ standard deployment descriptor.
<servlet-name>NonSenateAccessServlet</servlet-name>
<url-pattern>/external/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AutoSuggestServlet</servlet-name>
<servlet-class>gov.nysenate.opendirectory.servlets.AutoSuggestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AutoSuggestServlet</servlet-name>
<url-pattern>/auto/*</url-pattern>
</servlet-mapping>
</web-app>
Loading

0 comments on commit bc2644b

Please sign in to comment.