import java.net.URL;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.AbstractMap.SimpleEntry;
-import java.util.ArrayList;
import java.util.Date;
-import java.util.List;
-import java.util.Map.Entry;
+import java.util.Map;
+import java.util.TreeMap;
import be.nikiroo.fanfix.Instance;
import be.nikiroo.fanfix.bundles.Config;
}
@Override
- public synchronized Story getStory(Progress pg) {
+ public synchronized Story getStory(Progress pg) throws IOException {
if (story == null) {
story = getLibrary().getStory(meta.getLuid(), pg);
}
*
* @return the information
*/
- public static List<Entry<String, String>> getMetaDesc(MetaData meta) {
- List<Entry<String, String>> metaDesc = new ArrayList<Entry<String, String>>();
+ public static Map<String, String> getMetaDesc(MetaData meta) {
+ Map<String, String> metaDesc = new TreeMap<String, String>();
// TODO: i18n
tags.append(tag);
}
- metaDesc.add(new SimpleEntry<String, String>("Author", meta.getAuthor()));
- metaDesc.add(new SimpleEntry<String, String>("Publication date",
- formatDate(meta.getDate())));
- metaDesc.add(new SimpleEntry<String, String>("Published on", meta
- .getPublisher()));
- metaDesc.add(new SimpleEntry<String, String>("URL", meta.getUrl()));
- metaDesc.add(new SimpleEntry<String, String>("Word count", format(meta
- .getWords())));
- metaDesc.add(new SimpleEntry<String, String>("Source", meta.getSource()));
- metaDesc.add(new SimpleEntry<String, String>("Subject", meta
- .getSubject()));
- metaDesc.add(new SimpleEntry<String, String>("Language", meta.getLang()));
- metaDesc.add(new SimpleEntry<String, String>("Tags", tags.toString()));
+ // 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());
+ 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());
+ metaDesc.put("Tags", tags.toString());
return metaDesc;
}
}
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 = "";
}
// :(