X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FText.java;h=fb4a0ad2a7d97c73dcbe37a025df58a0e8f931c4;hb=86d49dbc7c3eca665b7823b5de49bb73a31c7722;hp=ff9d264f8494b9d68ddf73fc557acc539b59044b;hpb=62c63b0724f4bc45999cb2e7186b4b3ada479a0a;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/supported/Text.java b/src/be/nikiroo/fanfix/supported/Text.java index ff9d264..fb4a0ad 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; @@ -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,7 +151,7 @@ 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(); @@ -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.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; } /**