Fix [more] links (point to gophermap, not text)
[gofetch.git] / src / be / nikiroo / gofetch / Fetcher.java
index 496b2f7602c59e6d7330b15d41626f6d14e5dcb7..e53bfaf3c41d72bd566dd47ef9ec9fdd40b9d015 100644 (file)
@@ -85,7 +85,7 @@ public class Fetcher {
                        }
 
                        gopherBuilder.append(getLink(support.getDescription(),
-                                       support.getSelector(), false));
+                                       support.getSelector(), true, false));
 
                        String ref = support.getSelector();
                        while (ref.startsWith("/")) {
@@ -93,13 +93,14 @@ public class Fetcher {
                        }
                        ref = "../" + ref + "/index.html";
 
-                       htmlBuilder.append(getLink(support.getDescription(), ref, true));
+                       htmlBuilder.append(getLink(support.getDescription(), 
+                                       ref, true, true));
                }
 
                File gopherCache = new File(dir, preselector);
                gopherCache.mkdirs();
                File htmlIndex = new File(gopherCache, "index.html");
-               gopherCache = new File(gopherCache, ".cache");
+               gopherCache = new File(gopherCache, "gophermap");
 
                Output gopher = new Gopher(null, hostname, preselector, port);
                Output html = new Html(null, hostname, preselector, port);
@@ -196,13 +197,22 @@ public class Fetcher {
                        boolean last = i == headers.length - 1;
                        if (enoughStories || last) {
                                if (!last) {
-                                       gopherLines.add(getLink("More", "/.cache_" + (page + 1),
-                                                       false));
-                                       htmlLines.add(getLink("More", "index_" + (page + 1)
-                                                       + ".html", true));
+                                       gopherLines.add(getLink("More", 
+                                               support.getSelector() 
+                                                       + "gophermap_" 
+                                                       + (page + 1),
+                                               true, 
+                                               false));
+                                       
+                                       htmlLines.add(getLink("More", 
+                                               "index_" 
+                                                       + (page + 1)
+                                                       + ".html",
+                                               true, 
+                                               true));
                                }
 
-                               write(gopherLines, varDir, ".cache", "", page);
+                               write(gopherLines, varDir, "gophermap", "", page);
                                write(htmlLines, varDir, "index", ".html", page);
                                gopherLines = new ArrayList<String>();
                                htmlLines = new ArrayList<String>();
@@ -226,10 +236,19 @@ public class Fetcher {
                }
        }
 
-       private String getLink(String name, String ref, boolean html) {
+       /**
+        * 
+        * @param name
+        * @param ref
+        * @param menu
+        *            menu (gophermap, i) mode
+        * @param html
+        * @return
+        */
+       private String getLink(String name, String ref, boolean menu, boolean html) {
                if (!html) {
-                       return new StringBuilder().append("1" + name).append("\t")
-                                       .append("1" + ref) //
+                       return new StringBuilder().append((menu ? "1" : "0") + name)
+                                       .append("\t").append(ref) //
                                        .append("\t").append(hostname) //
                                        .append("\t").append(Integer.toString(port)) //
                                        .append("\r\n").toString();