X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fgofetch%2Foutput%2FHtml.java;h=385df8bf8da919416ccf672a623fa9288c0ab585;hb=3e62b034c1981ae6329f06b3f8c0ee25c3683789;hp=ab7489b47dedf593f409139057be1a24b9d03a72;hpb=737852686d8897331706ed4b902dbd9d5038cb53;p=gofetch.git
diff --git a/src/be/nikiroo/gofetch/output/Html.java b/src/be/nikiroo/gofetch/output/Html.java
index ab7489b..385df8b 100644
--- a/src/be/nikiroo/gofetch/output/Html.java
+++ b/src/be/nikiroo/gofetch/output/Html.java
@@ -1,19 +1,38 @@
package be.nikiroo.gofetch.output;
-import java.util.List;
-
import be.nikiroo.gofetch.data.Comment;
import be.nikiroo.gofetch.data.Story;
-import be.nikiroo.gofetch.support.BasicSupport.Type;
+import be.nikiroo.gofetch.support.Type;
+import be.nikiroo.utils.StringUtils;
public class Html extends Output {
- public Html(Type type) {
- super(type);
+ public Html(Type type, String hostname, String preselector, int port) {
+ super(type, hostname, preselector, port);
}
@Override
public String getIndexHeader() {
- return "
Hello world!
TODO\n";
+ String sel = preselector;
+ if (!sel.isEmpty()) {
+ sel = "/1" + sel;
+ }
+
+ String gopherUrl = "gopher://" + hostname + sel + ":" + port;
+
+ StringBuilder builder = new StringBuilder();
+ appendPre(builder);
+
+ builder.append("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"//
+ );
+
+ appendPost(builder);
+
+ return builder.toString();
}
@Override
@@ -22,59 +41,120 @@ public class Html extends Output {
}
@Override
- public String export(Story story) {
- return appendHtml(new StringBuilder(), story, true).append("
\n")
- .toString();
+ 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, List comments) {
+ public String export(Story story) {
StringBuilder builder = new StringBuilder();
- appendHtml(builder, story, false);
+ appendPre(builder);
- // TODO: ext link and link
+ builder.append("\n");
+ appendHtml(builder, story, false);
+ builder.append("
\n");
- builder.append("
");
- for (Comment comment : comments) {
- appendHtml(builder, comment, " ");
+ 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");
+ builder.append("\n");
+ }
+
+ private void appendPost(StringBuilder builder) {
+ builder.append("\n");
+ }
+
private void appendHtml(StringBuilder builder, Comment comment, String space) {
- builder.append(space).append(
- "
").append(comment.getTitle()) .append("
\n"); - builder.append(space).append("" + line + "
"); + } + builder.append("" - + story.getTitle() + "
"); + + story.getTitle() + "\n"); + } else { + builder.append("" + story.getTitle() + "
\n"); + } + + builder.append("\n"); + + if (!resume) { + builder.append("
\n"); + builder.append("- News link: " + story.getUrlInternal()
+ + "
\n");
+ builder.append(" - Source link: " + story.getUrlExternal()
+ + "
\n");
+ builder.append("
\n"); + builder.append("\n"); + } + + builder.append("
" + story.getTitle() + "
"); + builder.append(" " + + StringUtils.xmlEscape(story.getFullContent()) + .replace("\n", "").replace("[ ", "
") + .replace(" ]", "
") + "\n"); } - builder.append(""); - builder.append("