package jtweet.web; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import jtweet.oauth.Utils; import twitter4j.DirectMessage; import twitter4j.Status; import twitter4j.TwitterException; import freemarker.template.Template; import freemarker.template.TemplateException; @SuppressWarnings("serial") public class UpdateServlet extends JTweetServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/html; charset=UTF-8"); String type = req.getParameter("type"); String since = req.getParameter("since"); if (isLogin(req)) { if (Utils.isEmptyOrNull(getPasswd())) { twitterOAuth(getAccessToken(), getAccessTokenSecret(), req); } else { init_twitter(getUsername(), getPasswd(), req); } if (since != null) { try { long sinceid = Long.parseLong(since); paging.setSinceId(sinceid); } catch (NumberFormatException e) { } } HashMap<String, Object> root = new HashMap<String, Object>(); freemarker.template.Configuration config = new freemarker.template.Configuration(); config.setDirectoryForTemplateLoading(new File("template")); config.setDefaultEncoding("UTF-8"); root.put("addclass", "newcome"); try { root.put("user", getTuser()); Template t = null; if (type.equalsIgnoreCase("home")) { List<Status> status = twitter.getFriendsTimeline(paging); root.put("status", status); t = config.getTemplate("status_element.ftl"); } else if (type.equalsIgnoreCase("reply")) { List<Status> status = twitter.getMentions(paging); root.put("status", status); t = config.getTemplate("status_element.ftl"); } else if (type.equalsIgnoreCase("message")) { List<DirectMessage> msg = twitter.getDirectMessages(paging); root.put("msg", msg); t = config.getTemplate("message_element.ftl"); } else if (type.equalsIgnoreCase("public")) { //List<Status> status = twitter.getPublicTimeline(paging); List<Status> status = twitter.getFriendsTimeline(paging); root.put("status", status); t = config.getTemplate("status_element.ftl"); } else if (type.equalsIgnoreCase("rate")) { root.put("rate", twitter.rateLimitStatus()); t = config.getTemplate("rate.ftl"); } if (t != null) t.process(root, resp.getWriter()); } catch (TwitterException e) { // TODO Auto-generated catch block resp.sendError(e.getStatusCode()); e.printStackTrace(); } catch (TemplateException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }