X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fcli%2FCliReader.java;fp=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fcli%2FCliReader.java;h=d8d3a6c1e70b9a5b317d4c62e9f6bcf89783fb16;hp=701ea481e40bf3ae6e2dba8a2d46d69f01b3a35e;hb=124442f1bc9bfc67f74b2c20cdeea90bec3cd89c;hpb=8ffc8b73e96e80657545f7d713cd065cf7ede786 diff --git a/src/be/nikiroo/fanfix/reader/cli/CliReader.java b/src/be/nikiroo/fanfix/reader/cli/CliReader.java index 701ea48..d8d3a6c 100644 --- a/src/be/nikiroo/fanfix/reader/cli/CliReader.java +++ b/src/be/nikiroo/fanfix/reader/cli/CliReader.java @@ -104,7 +104,27 @@ class CliReader extends BasicReader { @Override public void search(SupportType searchOn, String keywords, int page, int item, boolean sync) throws IOException { - // TODO + BasicSearchable search = BasicSearchable.getSearchable(searchOn); + + if (page == 0) { + System.out.println(search.searchPages(keywords)); + } else { + List metas = search.search(keywords, page); + + if (item == 0) { + System.out.println("Page " + page + " of stories for: " + + keywords); + displayStories(metas); + } else { + // ! 1-based index ! + if (item <= 0 | item > metas.size()) { + throw new IOException("Index out of bounds: " + item); + } + + MetaData meta = metas.get(item - 1); + displayStory(meta); + } + } } @Override @@ -160,17 +180,7 @@ class CliReader extends BasicReader { if (item <= count) { if (metas != null) { MetaData meta = metas.get(item - 1); - System.out.println(page + "/" + item + ": " - + meta.getTitle()); - System.out.println(); - System.out.println(meta.getUrl()); - System.out.println(); - System.out.println("Tags: " + meta.getTags()); - System.out.println(); - for (Paragraph para : meta.getResume()) { - System.out.println(para.getContent()); - System.out.println(""); - } + displayStory(meta); } else { SearchableTag subtag = subtags.get(item - 1); @@ -190,11 +200,7 @@ class CliReader extends BasicReader { // TODO i18n System.out.println(String.format("Content of %s: ", fqnTag)); - int i = 1; - for (MetaData meta : metas) { - System.out.println(i + ": " + meta.getTitle()); - i++; - } + displayStories(metas); } else { // TODO i18n System.out.println(String.format("Subtags of %s: ", @@ -230,4 +236,25 @@ class CliReader extends BasicReader { } } } + + private void displayStory(MetaData meta) { + System.out.println(meta.getTitle()); + System.out.println(); + System.out.println(meta.getUrl()); + System.out.println(); + System.out.println("Tags: " + meta.getTags()); + System.out.println(); + for (Paragraph para : meta.getResume()) { + System.out.println(para.getContent()); + System.out.println(""); + } + } + + private void displayStories(List metas) { + int i = 1; + for (MetaData meta : metas) { + System.out.println(i + ": " + meta.getTitle()); + i++; + } + } }