.cache -> gophermap
[gofetch.git] / src / be / nikiroo / gofetch / output / Gopher.java
index 1ad9731ccf1308fbf9f4c650783dd10e6da5044e..3fa6035c328d3f0731f5bc3a81ce7e38f3220abb 100644 (file)
@@ -1,7 +1,5 @@
 package be.nikiroo.gofetch.output;
 
-import java.util.List;
-
 import be.nikiroo.gofetch.StringJustifier;
 import be.nikiroo.gofetch.data.Comment;
 import be.nikiroo.gofetch.data.Story;
@@ -37,20 +35,20 @@ public class Gopher extends Output {
        }
 
        @Override
-       public String export(Story story) {
-               return append(new StringBuilder(), story, false).append("i\r\ni\r\n")
+       public String exportHeader(Story story) {
+               return append(new StringBuilder(), story, true).append("i\r\ni\r\n")
                                .toString();
        }
 
        @Override
-       public String export(Story story, List<Comment> comments) {
+       public String export(Story story) {
                StringBuilder builder = new StringBuilder();
-               append(builder, story, true);
+               append(builder, story, false);
 
                builder.append("i\r\n");
 
-               if (comments != null) {
-                       for (Comment comment : comments) {
+               if (story.getComments() != null) {
+                       for (Comment comment : story.getComments()) {
                                append(builder, comment, "");
                        }
                }
@@ -85,29 +83,33 @@ public class Gopher extends Output {
        }
 
        private StringBuilder append(StringBuilder builder, Story story,
-                       boolean links) {
-               if (links) {
+                       boolean resume) {
+               if (!resume) {
                        appendCenter(builder, story.getTitle(), true);
                        builder.append("i\r\n");
-                       appendLeft(builder, story.getDetails(), "  ");
+                       appendJustified(builder, story.getDetails(), "  ");
                        builder.append("i\r\n");
+
                        builder.append("i  o News link: ").append(story.getUrlInternal())
                                        .append("\r\n");
                        builder.append("i  o Source link: ").append(story.getUrlExternal())
                                        .append("\r\n");
                        builder.append("i\r\n");
+
+                       builder.append("i\r\n");
+
+                       appendJustified(builder, story.getFullContent(), "    ");
                } else {
                        builder.append('1').append(story.getTitle()) //
-                                       .append('\t').append("0").append(story.getSelector()) //
+                                       .append('\t').append(story.getSelector()) //
                                        .append('\t').append(hostname) //
                                        .append('\t').append(port) //
                                        .append("\r\n");
-                       appendLeft(builder, story.getDetails(), "  ");
-               }
-
-               builder.append("i\r\n");
+                       appendJustified(builder, story.getDetails(), "  ");
+                       builder.append("i\r\n");
 
-               appendLeft(builder, story.getContent(), "    ");
+                       appendJustified(builder, story.getContent(), "    ");
+               }
 
                builder.append("i\r\n");
 
@@ -126,6 +128,15 @@ public class Gopher extends Output {
                }
        }
 
+       // note: adds "i"
+       private static void appendJustified(StringBuilder builder, String text,
+                       String space) {
+               for (String line : StringJustifier.full(text,
+                               LINE_SIZE - space.length())) {
+                       builder.append("i").append(line).append("\r\n");
+               }
+       }
+
        // note: adds "i"
        private static void appendLeft(StringBuilder builder, String text,
                        String space) {