X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FText.java;h=a6105947faab29f348f158edb32d008bc2301b5b;hb=0ec7855764b78c0956c552566fe52587c2b43f4e;hp=c9ebd18d108ddac863b5182c9554033fe2e78f6e;hpb=211f7ddb50f68aa8a999023ef6d63d5756bdace6;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/supported/Text.java b/src/be/nikiroo/fanfix/supported/Text.java index c9ebd18..a610594 100644 --- a/src/be/nikiroo/fanfix/supported/Text.java +++ b/src/be/nikiroo/fanfix/supported/Text.java @@ -1,6 +1,5 @@ package be.nikiroo.fanfix.supported; -import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -14,6 +13,7 @@ import java.util.Scanner; import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.bundles.Config; import be.nikiroo.fanfix.data.MetaData; +import be.nikiroo.utils.Image; import be.nikiroo.utils.Progress; /** @@ -28,12 +28,12 @@ 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 */ -class Text extends BasicSupport { +class Text extends BasicSupport_Deprecated { @Override protected boolean isHtml() { return false; @@ -95,9 +95,9 @@ class Text extends BasicSupport { } if (lang == null) { - lang = "EN"; + lang = "en"; } else { - lang = lang.toUpperCase(); + lang = lang.toLowerCase(); } return lang; @@ -123,7 +123,7 @@ class Text extends BasicSupport { author = authorDate.substring(0, pos); } - return fixAuthor(author); + return BasicSupportHelper.fixAuthor(author); } private String getDate(InputStream in) { @@ -151,12 +151,12 @@ class Text extends BasicSupport { return getChapterContent(source, in, 0, null); } - private BufferedImage getCover(URL source) { + private Image getCover(URL source) { String path; try { path = new File(source.toURI()).getPath(); } catch (URISyntaxException e) { - Instance.syserr(e); + Instance.getTraceHandler().error(e); path = null; } @@ -236,20 +236,55 @@ class Text extends BasicSupport { @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.syserr(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; } /**