@Meta(description = "The external viewer for non-images documents (or empty to use the system default program for the given file type)",//
format = Format.STRING)
NON_IMAGES_DOCUMENT_READER, //
+ //
+ // GUI settings (hidden in config)
+ //
+ @Meta(description = "Show the side panel by default",//
+ hidden = true, format = Format.BOOLEAN, def = "true")
+ SHOW_SIDE_PANEL, //
+ @Meta(description = "Show the details panel by default",//
+ hidden = true, format = Format.BOOLEAN, def = "true")
+ SHOW_DETAILS_PANEL, //
+ @Meta(description = "Show thumbnails by default in the books view",//
+ hidden = true, format = Format.BOOLEAN, def = "false")
+ SHOW_THUMBNAILS, //
+ @Meta(description = "Show a words/images count instead of the author by default in the books view",//
+ hidden = true, format = Format.BOOLEAN, def = "false")
+ SHOW_WORDCOUNT, //
+ //
+ // Deprecated
+ //
@Meta(description = "The background colour of the library if you don't like the default system one",//
hidden = true, format = Format.COLOR)
+ @Deprecated
BACKGROUND_COLOR, //
}
Story story = new Story();
MetaData meta = getMeta();
- if (meta.getCreationDate() == null || meta.getCreationDate().isEmpty()) {
- meta.setCreationDate(StringUtils.fromTime(new Date().getTime()));
+ if (meta.getCreationDate() == null
+ || meta.getCreationDate().trim().isEmpty()) {
+ meta.setCreationDate(bsHelper
+ .formatDate(StringUtils.fromTime(new Date().getTime())));
}
story.setMeta(meta);
pg.put("meta", meta);
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
+ import java.text.ParseException;
+ import java.text.SimpleDateFormat;
+ import java.util.Date;
import be.nikiroo.fanfix.Instance;
import be.nikiroo.fanfix.bundles.Config;
import be.nikiroo.utils.Image;
+ import be.nikiroo.utils.StringUtils;
/**
* Helper class for {@link BasicSupport}, mostly dedicated to text formating for
return author;
}
+
+ /**
+ * Try to convert the date to a known, fixed format.
+ * <p>
+ * If it fails to do so, it will return the date as-is.
+ *
+ * @param date
+ * the date to convert
+ *
+ * @return the converted date, or the date as-is
+ */
+ public String formatDate(String date) {
+ long ms = 0;
+
+ if (date != null && !date.isEmpty()) {
+ // Default Fanfix format:
+ try {
+ ms = StringUtils.toTime(date);
+ } catch (ParseException e) {
+ }
+
+ // Second chance:
+ if (ms <= 0) {
+ SimpleDateFormat sdf = new SimpleDateFormat(
+ "yyyy-MM-dd'T'HH:mm:ssSSS");
+ try {
+ ms = sdf.parse(date).getTime();
+ } catch (ParseException e) {
+ }
+ }
+
+ // Last chance:
+ if (ms <= 0 && date.length() >= 10) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ try {
+ ms = sdf.parse(date.substring(0, 10)).getTime();
+ } catch (ParseException e) {
+ }
+ }
+
+ // If we found something, use THIS format:
+ if (ms > 0) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ return sdf.format(new Date(ms));
+ }
+ }
+
+ if (date == null) {
+ date = "";
+ }
+
+ // :(
+ return date;
+ }
}
Story story = new Story();
MetaData meta = getMeta(url, getInput());
if (meta.getCreationDate() == null
- || meta.getCreationDate().isEmpty()) {
- meta.setCreationDate(StringUtils.fromTime(new Date().getTime()));
+ || meta.getCreationDate().trim().isEmpty()) {
+ meta.setCreationDate(bsHelper.formatDate(
+ StringUtils.fromTime(new Date().getTime())));
}
story.setMeta(meta);
pg.put("meta", meta);
meta.setTitle(getTitle());
meta.setAuthor(getAuthor());
- meta.setDate(getDate());
+ meta.setDate(bsHelper.formatDate(getDate()));
meta.setTags(getTags());
meta.setSource(getType().getSourceName());
meta.setUrl(getSource().toString());
// Can be NULL if filtered
// When the value is NULL, we get an exception
// but the "has" method still returns true
+ Instance.getInstance().getTraceHandler()
+ .error("Cannot get image for chapter " + number + " of "
+ + getSource());
}
}
meta.setTitle(getKeyJson(json, 0, "type", "story", "title"));
meta.setAuthor(getKeyJson(json, 0, "type", "user", "name"));
- meta.setDate(getKeyJson(json, 0, "type", "story", "date_published"));
+ meta.setDate(bsHelper.formatDate(
+ getKeyJson(json, 0, "type", "story", "date_published")));
meta.setTags(getTags());
meta.setSource(getType().getSourceName());
meta.setUrl(getSource().toString());
meta.setTitle(getInfoTag(in, "TITLE"));
meta.setAuthor(getInfoTag(in, "AUTHOR"));
- meta.setDate(getInfoTag(in, "DATE"));
+ meta.setDate(bsHelper.formatDate(getInfoTag(in, "DATE")));
meta.setTags(getInfoTagList(in, "TAGS", ","));
meta.setSource(getInfoTag(in, "SOURCE"));
meta.setUrl(getInfoTag(in, "URL"));
} catch (NumberFormatException e) {
meta.setWords(0);
}
- meta.setCreationDate(getInfoTag(in, "CREATION_DATE"));
+ meta.setCreationDate(
+ bsHelper.formatDate(getInfoTag(in, "CREATION_DATE")));
meta.setFakeCover(Boolean.parseBoolean(getInfoTag(in, "FAKE_COVER")));
if (withCover && meta.getCover() == null) {
meta.setTitle(getTitle());
meta.setAuthor(getAuthor());
- meta.setDate(getDate());
+ meta.setDate(bsHelper.formatDate(getDate()));
meta.setTags(getTags());
meta.setSource(getType().getSourceName());
meta.setUrl(getSource().toString());
}
}
- if (!value.isEmpty()) {
- try {
- long time = StringUtils.toTime(value);
- value = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
- .format(time);
- } catch (ParseException e) {
- }
- }
-
return value;
}
meta.setTitle(getTitle());
meta.setAuthor(getAuthor());
- meta.setDate(getDate());
+ meta.setDate(bsHelper.formatDate(getDate()));
meta.setTags(new ArrayList<String>());
meta.setSource(getType().getSourceName());
meta.setUrl(getSourceFile().toURI().toURL().toString());