package jtweet.web;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jtweet.oauth.Utils;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import twitter4j.Status;
import twitter4j.TwitterException;
@SuppressWarnings("serial")
public class StatusServlet extends JTweetServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.setContentType("text/html; charset=UTF-8");
String sid = req.getParameter("id");
if (isLogin(req) && sid != null) {
if (Utils.isEmptyOrNull(getPasswd())) {
twitterOAuth(getAccessToken(), getAccessTokenSecret(), req);
} else {
init_twitter(getUsername(), getPasswd(), req);
}
getStatus(sid, resp);
} else {
redirectLogin(req, resp);
}
}
protected void getStatus(String sid, HttpServletResponse resp) throws IOException {
try {
long id = Long.parseLong(sid);
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");
Status status = twitter.showStatus(id);
root.put("status", status);
root.put("browser", browser);
Template t = config.getTemplate("status.ftl");
t.process(root, resp.getWriter());
} 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();
} catch (TemplateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}