package com.tyndalehouse.step.tools.esv;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.regex.Pattern;
import org.apache.commons.io.FileUtils;
import org.crosswire.jsword.book.Book;
import org.crosswire.jsword.book.BookData;
import org.crosswire.jsword.book.BookException;
import org.crosswire.jsword.book.Books;
import org.crosswire.jsword.book.OSISUtil;
import org.crosswire.jsword.passage.Key;
import org.crosswire.jsword.passage.NoSuchKeyException;
import org.crosswire.jsword.passage.Verse;
import org.crosswire.jsword.versification.BookName;
public class EsvToText {
static Pattern punc = Pattern.compile("[.,<>/?;:'@#~][{}=\\'_+\\-\\]\"`*()!]*");
public static void main(final String[] args) throws NoSuchKeyException, BookException, IOException {
BookName.setFullBookName(false);
final Book esv = Books.installed().getBook("ESV-THE");
final Key key = esv.getKey("Gen.1-Mal.4");
final StringBuilder txt = new StringBuilder(128000);
final Iterator<Key> iterator = key.iterator();
int count = 0;
while (iterator.hasNext()) {
final Key next = iterator.next();
count++;
if (next instanceof Verse) {
final Verse verse = (Verse) next;
if (verse.getVerse() == 0) {
continue;
}
}
txt.append(next.getName());
txt.append(' ');
final BookData bd = new BookData(esv, next);
final String text = OSISUtil.getCanonicalText(bd.getOsisFragment());
final String newText = punc.matcher(text).replaceAll(" ").replace(' ', ' ').replace('\n', ' ')
.replace(" ", " ");
txt.append(newText);
txt.append('\n');
}
System.out.println(count);
FileUtils.writeStringToFile(new File("d:\\temp\\esv_text.txt"), txt.toString());
}
}