X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;ds=sidebyside;f=src%2Fbe%2Fnikiroo%2Fgofetch%2FFetcher.java;h=bd5a4543fda92a92da61d665205fb5744364b217;hb=e570bb42dfb90f4c31429069ac7095514ff3ee2f;hp=e53bfaf3c41d72bd566dd47ef9ec9fdd40b9d015;hpb=1647310f0abec346d291df8bbb3317da5cc65144;p=gofetch.git
diff --git a/src/be/nikiroo/gofetch/Fetcher.java b/src/be/nikiroo/gofetch/Fetcher.java
index e53bfaf..bd5a454 100644
--- a/src/be/nikiroo/gofetch/Fetcher.java
+++ b/src/be/nikiroo/gofetch/Fetcher.java
@@ -42,8 +42,8 @@ public class Fetcher {
* the sub directory and (pre-)selector to use for the resources
* (will have an impact on the files' content)
* @param type
- * the type of news to get (or the special keyword ALL to get all
- * of the supported sources)
+ * the type of news to get (or NULL to get all of the supported
+ * sources)
* @param maxStories
* the maximum number of stories to show on the resume page
* @param hostname
@@ -81,7 +81,12 @@ public class Fetcher {
BasicSupport support = BasicSupport.getSupport(type);
if (type == this.type || this.type == null) {
- list(support);
+ try {
+ list(support);
+ } catch (Exception e) {
+ new Exception("Failed to process support: " + type, e)
+ .printStackTrace();
+ }
}
gopherBuilder.append(getLink(support.getDescription(),
@@ -93,8 +98,8 @@ public class Fetcher {
}
ref = "../" + ref + "/index.html";
- htmlBuilder.append(getLink(support.getDescription(),
- ref, true, true));
+ htmlBuilder.append(getLink(support.getDescription(), ref, true,
+ true));
}
File gopherCache = new File(dir, preselector);
@@ -188,28 +193,23 @@ public class Fetcher {
List gopherLines = new ArrayList();
List htmlLines = new ArrayList();
for (i = 0; i < headers.length; i++) {
- gopherLines
- .add(IOUtils.readSmallFile(new File(varDir, headers[i])));
- htmlLines.add(IOUtils.readSmallFile(new File(varDir, headers[i]
- + ".html")));
+ 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));
+ gopherLines.add(getLink("More", support.getSelector()
+ + "gophermap_" + (page + 1), true, false));
+
+ htmlLines.add(getLink("More", "index_" + (page + 1)
+ + ".html", true, true));
}
write(gopherLines, varDir, "gophermap", "", page);
@@ -237,13 +237,18 @@ public class Fetcher {
}
/**
+ * Create a link.
*
* @param name
+ * the link name (what the user will see)
* @param ref
+ * the actual link reference (the target)
* @param menu
- * menu (gophermap, i) mode
+ * menu (gophermap, i) mode -- not used in html mode
* @param html
- * @return
+ * TRUE for html mode, FALSE for gopher mode
+ *
+ * @return the ready-to-use link in a {@link String}
*/
private String getLink(String name, String ref, boolean menu, boolean html) {
if (!html) {