X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fcli%2FCliReader.java;fp=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fcli%2FCliReader.java;h=b28d4d4e8987479b7936699e7db14368c947d691;hb=16a81ef7656c5c692fb831927e75edde25dd77a0;hp=0000000000000000000000000000000000000000;hpb=5895a95876fe63e76e726ef7fc4c97efe2ebd5b1;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/reader/cli/CliReader.java b/src/be/nikiroo/fanfix/reader/cli/CliReader.java new file mode 100644 index 0000000..b28d4d4 --- /dev/null +++ b/src/be/nikiroo/fanfix/reader/cli/CliReader.java @@ -0,0 +1,98 @@ +package be.nikiroo.fanfix.reader.cli; + +import java.io.IOException; +import java.util.List; + +import be.nikiroo.fanfix.Instance; +import be.nikiroo.fanfix.bundles.StringId; +import be.nikiroo.fanfix.data.Chapter; +import be.nikiroo.fanfix.data.MetaData; +import be.nikiroo.fanfix.data.Paragraph; +import be.nikiroo.fanfix.data.Story; +import be.nikiroo.fanfix.reader.BasicReader; + +/** + * Command line {@link Story} reader. + *
+ * Will output stories to the console.
+ *
+ * @author niki
+ */
+class CliReader extends BasicReader {
+ @Override
+ public void read() throws IOException {
+ MetaData meta = getMeta();
+
+ if (meta == null) {
+ throw new IOException("No story to read");
+ }
+
+ String title = "";
+ String author = "";
+
+ if (meta.getTitle() != null) {
+ title = meta.getTitle();
+ }
+
+ if (meta.getAuthor() != null) {
+ author = "©" + meta.getAuthor();
+ if (meta.getDate() != null && !meta.getDate().isEmpty()) {
+ author = author + " (" + meta.getDate() + ")";
+ }
+ }
+
+ System.out.println(title);
+ System.out.println(author);
+ System.out.println("");
+
+ // TODO: progress?
+ for (Chapter chap : getStory(null)) {
+ if (chap.getName() != null && !chap.getName().isEmpty()) {
+ System.out.println(Instance.getTrans().getString(
+ StringId.CHAPTER_NAMED, chap.getNumber(),
+ chap.getName()));
+ } else {
+ System.out.println(Instance.getTrans().getString(
+ StringId.CHAPTER_UNNAMED, chap.getNumber()));
+ }
+ }
+ }
+
+ public void read(int chapter) throws IOException {
+ MetaData meta = getMeta();
+
+ if (meta == null) {
+ throw new IOException("No story to read");
+ }
+
+ // TODO: progress?
+ if (chapter > getStory(null).getChapters().size()) {
+ System.err.println("Chapter " + chapter + ": no such chapter");
+ } else {
+ Chapter chap = getStory(null).getChapters().get(chapter - 1);
+ System.out.println("Chapter " + chap.getNumber() + ": "
+ + chap.getName());
+
+ for (Paragraph para : chap) {
+ System.out.println(para.getContent());
+ System.out.println("");
+ }
+ }
+ }
+
+ @Override
+ public void browse(String source) {
+ List