package be.nikiroo.gofetch.output; import be.nikiroo.gofetch.data.Comment; import be.nikiroo.gofetch.data.Story; import be.nikiroo.gofetch.support.BasicSupport.Type; public class Html extends Output { public Html(Type type, String hostname, String preselector, int port) { super(type, hostname, preselector, port); } @Override public String getIndexHeader() { String sel = preselector; if (!sel.isEmpty()) { sel = "/1" + sel; } String gopherUrl = "gopher://" + hostname + sel + ":" + port; return "

News

\n"// + "

You will find here a few pages full of news, mirroring " + gopherUrl + ".

\n"// + "

They are simply scrapped from their associated webpage and updated a few times a day.

\n"// ; } @Override public String getIndexFooter() { return ""; } @Override public String exportHeader(Story story) { StringBuilder builder = new StringBuilder(); appendPre(builder); builder.append("
\n"); appendHtml(builder, story, true); builder.append("
\n"); builder.append("
\n"); appendPost(builder); return builder.toString(); } @Override public String export(Story story) { StringBuilder builder = new StringBuilder(); appendPre(builder); builder.append("
\n"); appendHtml(builder, story, false); builder.append("
\n"); if (story.getComments() != null) { for (Comment comment : story.getComments()) { appendHtml(builder, comment, " "); } } builder.append("
\n"); appendPost(builder); return builder.toString(); } private void appendPre(StringBuilder builder) { builder.append("\n"); builder.append("\n"); builder.append("\n"); builder.append(" \n"); builder.append(" \n"); builder.append("\n"); builder.append("\n"); } private void appendPost(StringBuilder builder) { builder.append("\n"); } private void appendHtml(StringBuilder builder, Comment comment, String space) { builder.append(space) .append("
\n"); builder.append(space).append("

").append(comment.getTitle()) .append("

\n"); builder.append(space).append("
") .append(comment.getAuthor()).append("
\n"); builder.append(space).append("
") .append(comment.getContent()).append("
\n"); for (Comment subComment : comment) { appendHtml(builder, subComment, space + " "); } builder.append(space).append("
\n"); } private StringBuilder appendHtml(StringBuilder builder, Story story, boolean resume) { if (resume) { builder.append("

" + story.getTitle() + "

\n"); } else { builder.append("

" + story.getTitle() + "

\n"); } builder.append("
(" + story.getDetails() + ")
\n"); builder.append("
\n"); if (!resume) { builder.append(" \n"); builder.append("
\n"); } builder.append("
\n"); if (resume) { builder.append(" " + story.getContent() + "\n"); } else { builder.append(" " + story.getFullContent() + "\n"); } builder.append("
\n"); return builder; } }