X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2FBasicReader.java;h=61769c01f87951c5546ae59cc12948e88c1ebe9e;hb=0bb51c9c66697fe63ba066715207deabbcc1d479;hp=008e4d5bd06c22d3851e1c2b9442a13eb41b2adf;hpb=a6c830bb1ea8527a3600aa6d0e05d5b2291c4b15;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/reader/BasicReader.java b/src/be/nikiroo/fanfix/reader/BasicReader.java index 008e4d5..61769c0 100644 --- a/src/be/nikiroo/fanfix/reader/BasicReader.java +++ b/src/be/nikiroo/fanfix/reader/BasicReader.java @@ -54,7 +54,7 @@ public abstract class BasicReader implements Reader { } @Override - public synchronized Story getStory(Progress pg) { + public synchronized Story getStory(Progress pg) throws IOException { if (story == null) { story = getLibrary().getStory(meta.getLuid(), pg); } @@ -227,11 +227,20 @@ public abstract class BasicReader implements Reader { tags.append(tag); } + // TODO: i18n metaDesc.put("Author", meta.getAuthor()); metaDesc.put("Publication date", formatDate(meta.getDate())); metaDesc.put("Published on", meta.getPublisher()); metaDesc.put("URL", meta.getUrl()); - metaDesc.put("Word count", format(meta.getWords())); + String count = ""; + if (meta.getWords() > 0) { + count = StringUtils.formatNumber(meta.getWords()); + } + if (meta.isImageDocument()) { + metaDesc.put("Number of images", count); + } else { + metaDesc.put("Number of words", count); + } metaDesc.put("Source", meta.getSource()); metaDesc.put("Subject", meta.getSubject()); metaDesc.put("Language", meta.getLang()); @@ -340,49 +349,39 @@ public abstract class BasicReader implements Reader { } if (proc != null && sync) { - while (proc.isAlive()) { - try { - Thread.sleep(100); - } catch (InterruptedException e) { - } - } - } - } - - static private String format(long value) { - String display = ""; - - while (value > 0) { - if (!display.isEmpty()) { - display = "." + display; + try { + proc.waitFor(); + } catch (InterruptedException e) { } - display = (value % 1000) + display; - value = value / 1000; } - - return display; } static private String formatDate(String date) { long ms = 0; - try { - ms = StringUtils.toTime(date); - } catch (ParseException e) { - } - - if (ms <= 0) { - SimpleDateFormat sdf = new SimpleDateFormat( - "yyyy-MM-dd'T'HH:mm:ssXXX"); + if (date != null && !date.isEmpty()) { try { - ms = sdf.parse(date).getTime(); + ms = StringUtils.toTime(date); } catch (ParseException e) { } + + if (ms <= 0) { + SimpleDateFormat sdf = new SimpleDateFormat( + "yyyy-MM-dd'T'HH:mm:ssSSS"); + try { + ms = sdf.parse(date).getTime(); + } catch (ParseException e) { + } + } + + if (ms > 0) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + return sdf.format(new Date(ms)); + } } - if (ms > 0) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - return sdf.format(new Date(ms)); + if (date == null) { + date = ""; } // :(