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");
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");
}
private StringBuilder appendHtml(StringBuilder builder, Story story,
boolean resume) {
if (resume) {
builder.append(" \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;
}
}
").append(comment.getTitle()) .append("
\n"); builder.append(space).append("