package yuku.alkitabconverter.no_dnb1930;
import yuku.alkitab.util.Ari;
import yuku.alkitabconverter.bdb.BdbProses;
import yuku.alkitabconverter.bdb.BdbProses.PericopeTester;
import yuku.alkitabconverter.util.Rec;
import yuku.alkitabconverter.util.RecUtil;
import yuku.alkitabconverter.yes1.Yes1File;
import yuku.alkitabconverter.yes1.Yes1File.InfoEdisi;
import yuku.alkitabconverter.yes1.Yes1File.InfoKitab;
import yuku.alkitabconverter.yes1.Yes1File.PericopeData;
import yuku.alkitabconverter.yes1.Yes1File.PericopeData.Entry;
import yuku.alkitabconverter.yes1.Yes1File.PerikopBlok;
import yuku.alkitabconverter.yes1.Yes1File.PerikopIndex;
import yuku.alkitabconverter.yes1.Yes1File.Teks;
import yuku.alkitabconverter.yes_common.Yes1Common;
import java.io.RandomAccessFile;
import java.nio.charset.Charset;
import java.util.ArrayList;
public class Proses1 {
static String INPUT_TEKS_1 = "./bahan/no-dnb1930/in/b_dnb30.txt";
public static String INPUT_TEKS_ENCODING = "utf-8";
public static int INPUT_TEKS_ENCODING_YES = 2; // 1: ascii; 2: utf-8;
public static String INPUT_KITAB = "./bahan/no-dnb1930/in/books_name-nonums.txt";
static String OUTPUT_YES = "./bahan/no-dnb1930/out/no-dnb1930.yes";
public static int OUTPUT_ADA_PERIKOP = 1;
static String INFO_NAMA = "no-dnb1930";
static String INFO_JUDUL = "Det Norsk Bibelselskap";
static String INFO_KETERANGAN = "Det Norsk Bibelselskap (1930)";
final Charset utf8 = Charset.forName("utf-8");
public static void main(String[] args) throws Exception {
new Proses1().u();
}
private void u() throws Exception {
BdbProses bdbProses = new BdbProses();
bdbProses.setCombineSameVerse(true);
bdbProses.setPericopeTester(new PericopeTester() {
@Override public Entry getPericopeEntry(int kitab_1, int pasal_1, int ayat_1, String isi) {
if (!isi.startsWith(" ")) { // special: 2 spaces before
return null;
}
PericopeData.Entry res = new PericopeData.Entry();
res.ari = Ari.encode(kitab_1 - 1, pasal_1, ayat_1);
res.block = new PericopeData.Block();
res.block.version = 2;
res.block.title = isi.trim();
return res;
}
});
ArrayList<Rec> xrec = bdbProses.parse(INPUT_TEKS_1, "latin1");
PericopeData pericopeData = bdbProses.getPericopeData();
// remove stray @
for (Rec rec: xrec) {
if (rec.text.contains("@")) rec.text = rec.text.replace("@", "");
}
System.out.println("Total verses: " + xrec.size());
////////// PROSES KE YES
final InfoEdisi infoEdisi = Yes1Common.infoEdisi(INFO_NAMA, null, INFO_JUDUL, RecUtil.hitungKitab(xrec), OUTPUT_ADA_PERIKOP, INFO_KETERANGAN, INPUT_TEKS_ENCODING_YES, null);
final InfoKitab infoKitab = Yes1Common.infoKitab(xrec, INPUT_KITAB, INPUT_TEKS_ENCODING, INPUT_TEKS_ENCODING_YES);
final Teks teks = Yes1Common.teks(xrec, INPUT_TEKS_ENCODING);
Yes1File file = Yes1Common.bikinYesFile(infoEdisi, infoKitab, teks, new PerikopBlok(pericopeData), new PerikopIndex(pericopeData));
file.output(new RandomAccessFile(OUTPUT_YES, "rw"));
}
}