- File cache = new File(varDir, ".cache");
- File cacheHtml = new File(varDir, "index.html");
- FileWriter writer = new FileWriter(cache);
- try {
- FileWriter writerHtml = new FileWriter(cacheHtml);
- try {
- if (headers.length > 0) {
- Arrays.sort(headers);
- int from = headers.length - 1;
- int to = headers.length - maxStories;
- if (to < 0) {
- to = 0;
- }
- for (i = from; i >= to; i--) {
- writer.append(IOUtils.readSmallFile(new File(varDir,
- headers[i])));
-
- writerHtml.append(IOUtils.readSmallFile(new File(
- varDir, headers[i] + ".html")));
- }
+ // Reverse sort:
+ Arrays.sort(headers);
+ List<String> tmp = Arrays.asList(headers);
+ Collections.reverse(tmp);
+ headers = tmp.toArray(new String[] {});
+ //
+
+ // Write the index (with "MORE" links if needed)
+ int page = 0;
+ List<String> gopherLines = new ArrayList<String>();
+ List<String> htmlLines = new ArrayList<String>();
+ for (i = 0; i < headers.length; i++) {
+ File gopherFile = new File(varDir, headers[i]);
+ File htmlFile = new File(varDir, headers[i] + ".html");
+
+ if (gopherFile.exists())
+ gopherLines.add(IOUtils.readSmallFile(gopherFile));
+ if (htmlFile.exists())
+ htmlLines.add(IOUtils.readSmallFile(htmlFile));
+
+ boolean enoughStories = (i > 0 && i % maxStories == 0);
+ boolean last = i == headers.length - 1;
+ if (enoughStories || last) {
+ if (!last) {
+ gopherLines.add(getLink("More", support.getSelector()
+ + "gophermap_" + (page + 1), true, false));
+
+ htmlLines.add(getLink("More", "index_" + (page + 1)
+ + ".html", true, true));