Add title in index pages, add reference in story
[gofetch.git] / src / be / nikiroo / gofetch / output / Gopher.java
index 7120dfac47f361011b9fbcf887af0003642765d3..aab03f67d19127145735189abd41adc79fbc41a4 100644 (file)
@@ -2,7 +2,8 @@ package be.nikiroo.gofetch.output;
 
 import be.nikiroo.gofetch.data.Comment;
 import be.nikiroo.gofetch.data.Story;
-import be.nikiroo.gofetch.support.BasicSupport.Type;
+import be.nikiroo.gofetch.support.BasicSupport;
+import be.nikiroo.gofetch.support.Type;
 import be.nikiroo.utils.StringUtils;
 import be.nikiroo.utils.StringUtils.Alignment;
 
@@ -14,7 +15,7 @@ public class Gopher extends Output {
        }
 
        @Override
-       public String getIndexHeader() {
+       public String getMainIndexHeader() {
                StringBuilder builder = new StringBuilder();
 
                appendCenter(builder, true, "NEWS", "", true);
@@ -33,7 +34,22 @@ public class Gopher extends Output {
        }
 
        @Override
-       public String getIndexFooter() {
+       public String getMainIndexFooter() {
+               return "";
+       }
+
+       @Override
+       public String getIndexHeader(BasicSupport support) {
+               StringBuilder builder = new StringBuilder();
+               appendCenter(builder, true, support.getDescription(), "", true);
+               builder.append("\r\n");
+               builder.append("\r\n");
+               builder.append("\r\n");
+               return builder.toString();
+       }
+
+       @Override
+       public String getIndexFooter(BasicSupport support) {
                return "";
        }
 
@@ -68,10 +84,13 @@ public class Gopher extends Output {
                }
 
                appendLeft(builder, menu, comment.getTitle(), "** ", "   ", space);
-               appendLeft(builder, menu, "(" + comment.getAuthor() + ")", "   ",
-                               "   ", space);
 
-               builder.append((menu ? "i" : "") + "\r\n");
+               if (comment.getAuthor() != null
+                               && !comment.getAuthor().trim().isEmpty()) {
+                       appendLeft(builder, menu, "(" + comment.getAuthor() + ")", "   ",
+                                       "   ", space);
+                       builder.append((menu ? "i" : "") + "\r\n");
+               }
 
                for (String line : comment.getContentLines()) {
                        int depth = 0;
@@ -109,6 +128,8 @@ public class Gopher extends Output {
                        appendJustified(builder, false, story.getDetails(), "  ");
                        builder.append("\r\n");
 
+                       builder.append("  o Reference: ").append(story.getId())
+                                       .append("\r\n");
                        builder.append("  o News link: ").append(story.getUrlInternal())
                                        .append("\r\n");
                        builder.append("  o Source link: ").append(story.getUrlExternal())
@@ -118,6 +139,7 @@ public class Gopher extends Output {
                        builder.append("\r\n");
 
                        appendJustified(builder, false, story.getFullContent(), "    ");
+                       builder.append("\r\n");
                } else {
                        builder.append('0').append(story.getTitle()) //
                                        .append('\t').append(story.getSelector()) //
@@ -127,11 +149,13 @@ public class Gopher extends Output {
                        appendJustified(builder, true, story.getDetails(), "  ");
                        builder.append("i\r\n");
 
-                       appendJustified(builder, true, story.getContent(), "    ");
+                       String content = story.getContent();
+                       if (!content.isEmpty()) {
+                               appendJustified(builder, true, content, "    ");
+                               builder.append("i\r\n");
+                       }
                }
 
-               builder.append(resume ? "i" : "").append("\r\n");
-
                return builder;
        }