X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FText.java;h=a6105947faab29f348f158edb32d008bc2301b5b;hb=276f95c6ca9a79d2fc6879877b240cefb4ceb598;hp=14379113f69aee0cee80b6aa95e5474821180344;hpb=0ffa47548f474c1330d8d723300d9aa7a4894736;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/supported/Text.java b/src/be/nikiroo/fanfix/supported/Text.java index 1437911..a610594 100644 --- a/src/be/nikiroo/fanfix/supported/Text.java +++ b/src/be/nikiroo/fanfix/supported/Text.java @@ -28,7 +28,7 @@ import be.nikiroo.utils.Progress; * number *
  • A description of the story must be given as chapter number 0
  • *
  • A cover may be present, with the same filename but a PNG, JPEG or JPG - * extension * * * @author niki @@ -95,9 +95,9 @@ class Text extends BasicSupport_Deprecated { } if (lang == null) { - lang = "EN"; + lang = "en"; } else { - lang = lang.toUpperCase(); + lang = lang.toLowerCase(); } return lang; @@ -236,20 +236,55 @@ class Text extends BasicSupport_Deprecated { @Override protected boolean supports(URL url) { + return supports(url, false); + } + + /** + * Check if we supports this {@link URL}, that is, if the info file can be + * found OR not found. + * + * @param url + * the {@link URL} to check + * @param info + * TRUE to require the info file, FALSE to forbid the info file + * + * @return TRUE if it is supported + */ + protected boolean supports(URL url, boolean info) { + boolean infoPresent = false; if ("file".equals(url.getProtocol())) { File file; try { file = new File(url.toURI()); + file = assureNoTxt(file); file = new File(file.getPath() + ".info"); } catch (URISyntaxException e) { Instance.getTraceHandler().error(e); file = null; } - return file == null || !file.exists(); + infoPresent = (file != null && file.exists()); } - return false; + return infoPresent == info; + } + + /** + * Remove the ".txt" extension if it is present. + * + * @param file + * the file to process + * + * @return the same file or a copy of it without the ".txt" extension if it + * was present + */ + protected File assureNoTxt(File file) { + if (file.getName().endsWith(".txt")) { + file = new File(file.getPath().substring(0, + file.getPath().length() - 4)); + } + + return file; } /**