sc-voice
Version:
SuttaCentral Voice
58 lines (53 loc) • 1.58 kB
JavaScript
const should = require("should");
const fs = require('fs');
const path = require('path');
const { logger } = require('log-instance');
const { ScApi } = require('suttacentral-api');
const {
SuttaDuration,
Sutta,
SuttaFactory,
SuttaStore,
} = require("../index");
const {
BilaraData,
} = require('scv-bilara');
const scApi = new ScApi();
(async function() { try {
let sync = true;
var bd = await new BilaraData().initialize(sync);
logger.logLevel = 'warn';
let suttaIds = bd.suttaIds;
var suttaStore = await new SuttaStore({bilaraData:bd}).initialize();
var factory = await new SuttaFactory({
bilaraData:bd,
scApi,
suttaLoader: opts => suttaStore.loadBilaraSutta(opts),
}).initialize();
var scd = new SuttaDuration();
var duration = {
en:{
amy:{},
}
};
for (const suid of suttaIds) {
try {
let sutta = await factory.loadSutta(suid);
if (bd.isBilaraDoc({suid, lang:'en'})) {
sutta = factory.sectionSutta(sutta);
let resMeasure = scd.measure(sutta);
duration.en.amy[suid] = resMeasure.seconds;
console.log(suid, resMeasure.seconds);
}
} catch(e) {
console.log(e.message);
}
}
let json = JSON.stringify(duration,null,2);
let fpath = path.join(__dirname, '../src/assets', 'suid-duration.json');
fs.writeFileSync(fpath, json);
} catch(e) {
logger.warn(e.message);
throw e;
}})();