X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FHtml.java;h=5fe28397e66936698a73dec7c64787bc08a43730;hb=60f723111f3f7f5bd60760afa7d0b645406b48d7;hp=f66032bfce20032f784b6df0ab4b51ce7883fce7;hpb=86d49dbc7c3eca665b7823b5de49bb73a31c7722;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/supported/Html.java b/src/be/nikiroo/fanfix/supported/Html.java index f66032b..5fe2839 100644 --- a/src/be/nikiroo/fanfix/supported/Html.java +++ b/src/be/nikiroo/fanfix/supported/Html.java @@ -3,7 +3,6 @@ package be.nikiroo.fanfix.supported; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; -import java.net.URISyntaxException; import java.net.URL; import be.nikiroo.fanfix.Instance; @@ -23,24 +22,58 @@ class Html extends InfoText { @Override protected boolean supports(URL url) { try { - File file = new File(url.toURI()); - if (file.getName().equals("index.html")) { - file = file.getParentFile(); + File txt = getTxt(url); + if (txt != null) { + return super.supports(txt.toURI().toURL()); } - - file = new File(file, file.getName()); - - return super.supports(file.toURI().toURL()); - } catch (URISyntaxException e) { } catch (MalformedURLException e) { } return false; } + @Override + protected File getInfoFile() { + File source = getSourceFile(); + if ("index.html".equals(source.getName())) { + source = source.getParentFile(); + } + + String src = source.getPath(); + File infoFile = new File(src + ".info"); + if (!infoFile.exists() && src.endsWith(".txt")) { + infoFile = new File( + src.substring(0, src.length() - ".txt".length()) + ".info"); + } + + return infoFile; + } + @Override public URL getCanonicalUrl(URL source) { + File txt = getTxt(source); + if (txt != null) { + try { + source = txt.toURI().toURL(); + } catch (MalformedURLException e) { + Instance.getTraceHandler().error( + new IOException("Cannot convert the right URL for " + + source, e)); + } + } + + return source; + } + /** + * Return the associated TXT source file if it can be found. + * + * @param source + * the source URL + * + * @return the supported source text file or NULL + */ + private static File getTxt(URL source) { try { File fakeFile = new File(source.toURI()); if (fakeFile.getName().equals("index.html")) { // "story/index.html" @@ -51,13 +84,12 @@ class Html extends InfoText { fakeFile = new File(fakeFile, fakeFile.getName() + ".txt"); // "story/story.txt" } - return fakeFile.toURI().toURL(); + if (fakeFile.getName().endsWith(".txt")) { + return fakeFile; + } } catch (Exception e) { - Instance.getTraceHandler().error( - new IOException("Cannot find the right URL for " + source, - e)); } - return source; + return null; } }