package jtweet.web; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import jtweet.oauth.Utils; import twitter4j.Status; import twitter4j.TwitterException; import freemarker.template.Template; import freemarker.template.TemplateException; @SuppressWarnings("serial") public class MobileReplyServlet extends JTweetServlet { static final Logger logger = Logger.getLogger(MobileReplyServlet.class.getName()); String reply_id = "0"; String with_quote = "0"; Status reply_Status = null; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8"); resp.setContentType("text/html; charset=UTF-8"); reply_id = req.getParameter("id"); long intReply_Id = Long.valueOf(reply_id); logger.info("reply_id:"+intReply_Id); if (isLogin(req) && reply_id != null) { if (Utils.isEmptyOrNull(getPasswd())) { twitterOAuth(getAccessToken(), getAccessTokenSecret(), req); } else { init_twitter(getUsername(), getPasswd(), req); } getStatus(reply_id, resp); logger.info("Finished getStatus();"); } else { redirectLogin(req, resp); } with_quote = req.getParameter("quote"); ReplyTo(resp); } protected void ReplyTo(HttpServletResponse resp) throws IOException { 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"); try { //List<Status> status = twitter.getFriendsTimeline(paging); root.put("user", getTuser()); root.put("rate", twitter.rateLimitStatus()); root.put("title", "回复"+reply_id); root.put("browser", browser); root.put("quote",with_quote); root.put("page", paging.getPage()); root.put("status", reply_Status); root.put("reply_id", reply_id); Template t = config.getTemplate("mreply.ftl"); 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 logger.warning(e.getMessage()); e.printStackTrace(); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req,resp); } protected void getStatus(String sid, HttpServletResponse resp) throws IOException { try { long id = Long.parseLong(sid); reply_Status = twitter.showStatus(id); } catch (NumberFormatException e) { resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED); e.printStackTrace(); } catch (TwitterException e) { // TODO Auto-generated catch block resp.sendError(e.getStatusCode()); e.printStackTrace(); } } }