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; /** * Support class for HTML files created with this program (as we need some * metadata available in those we create). * * @author niki */ class Html extends InfoText { @Override public String getSourceName() { return "html"; } @Override protected boolean supports(URL url) { try { File file = new File(url.toURI()); if (file.getName().equals("index.html")) { file = file.getParentFile(); } file = new File(file, file.getName()); return super.supports(file.toURI().toURL()); } catch (URISyntaxException e) { } catch (MalformedURLException e) { } return false; } @Override public URL getCanonicalUrl(URL source) { try { File fakeFile = new File(source.toURI()); if (fakeFile.getName().equals("index.html")) { // "story/index.html" fakeFile = new File(fakeFile.getParent()); // -> "story/" } if (fakeFile.isDirectory()) { // "story/" fakeFile = new File(fakeFile, fakeFile.getName() + ".txt"); // "story/story.txt" } return fakeFile.toURI().toURL(); } catch (Exception e) { Instance.getTraceHandler().error( new IOException("Cannot find the right URL for " + source, e)); } return source; } }