Add CSB version support to backend API endpoints and search functionality
This commit is contained in:
@@ -39,11 +39,13 @@ app.use('/logos', express.static(path.join(__dirname, '../../frontend/logos')));
|
|||||||
const ESV_DATA_DIR = path.join(__dirname, '../../ESV'); // ESV local files
|
const ESV_DATA_DIR = path.join(__dirname, '../../ESV'); // ESV local files
|
||||||
const NKJV_DATA_DIR = path.join(__dirname, '../../NKJV'); // NKJV local files
|
const NKJV_DATA_DIR = path.join(__dirname, '../../NKJV'); // NKJV local files
|
||||||
const NLT_DATA_DIR = path.join(__dirname, '../../NLT'); // NLT local files
|
const NLT_DATA_DIR = path.join(__dirname, '../../NLT'); // NLT local files
|
||||||
|
const CSB_DATA_DIR = path.join(__dirname, '../../CSB'); // CSB local files
|
||||||
|
|
||||||
// Initialize search engines for each version
|
// Initialize search engines for each version
|
||||||
let esvSearchEngine = null;
|
let esvSearchEngine = null;
|
||||||
let nkjvSearchEngine = null;
|
let nkjvSearchEngine = null;
|
||||||
let nltSearchEngine = null;
|
let nltSearchEngine = null;
|
||||||
|
let csbSearchEngine = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (ESV_DATA_DIR) {
|
if (ESV_DATA_DIR) {
|
||||||
@@ -65,11 +67,18 @@ try {
|
|||||||
console.log('NLT search engine failed to initialize:', error.message);
|
console.log('NLT search engine failed to initialize:', error.message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
csbSearchEngine = new BibleSearchEngine(CSB_DATA_DIR);
|
||||||
|
} catch (error) {
|
||||||
|
console.log('CSB search engine failed to initialize:', error.message);
|
||||||
|
}
|
||||||
|
|
||||||
// Helper function to get data directory for version
|
// Helper function to get data directory for version
|
||||||
function getDataDir(version) {
|
function getDataDir(version) {
|
||||||
if (version === 'esv' && esvSearchEngine) return ESV_DATA_DIR;
|
if (version === 'esv' && esvSearchEngine) return ESV_DATA_DIR;
|
||||||
if (version === 'nkjv') return NKJV_DATA_DIR;
|
if (version === 'nkjv') return NKJV_DATA_DIR;
|
||||||
if (version === 'nlt' && nltSearchEngine) return NLT_DATA_DIR;
|
if (version === 'nlt' && nltSearchEngine) return NLT_DATA_DIR;
|
||||||
|
if (version === 'csb' && csbSearchEngine) return CSB_DATA_DIR;
|
||||||
return esvSearchEngine ? ESV_DATA_DIR : NKJV_DATA_DIR; // default to available version
|
return esvSearchEngine ? ESV_DATA_DIR : NKJV_DATA_DIR; // default to available version
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,6 +143,7 @@ app.get('/versions', (req, res) => {
|
|||||||
if (esvSearchEngine) availableVersions.push({ id: 'esv', name: 'ESV - English Standard Version' });
|
if (esvSearchEngine) availableVersions.push({ id: 'esv', name: 'ESV - English Standard Version' });
|
||||||
availableVersions.push({ id: 'nkjv', name: 'NKJV - New King James Version' });
|
availableVersions.push({ id: 'nkjv', name: 'NKJV - New King James Version' });
|
||||||
if (nltSearchEngine) availableVersions.push({ id: 'nlt', name: 'NLT - New Living Translation' });
|
if (nltSearchEngine) availableVersions.push({ id: 'nlt', name: 'NLT - New Living Translation' });
|
||||||
|
if (csbSearchEngine) availableVersions.push({ id: 'csb', name: 'CSB - Christian Standard Bible' });
|
||||||
|
|
||||||
res.json({ versions: availableVersions });
|
res.json({ versions: availableVersions });
|
||||||
});
|
});
|
||||||
@@ -221,6 +231,8 @@ app.get('/api/search', async (req, res) => {
|
|||||||
searchEngine = esvSearchEngine;
|
searchEngine = esvSearchEngine;
|
||||||
} else if (version === 'nlt' && nltSearchEngine) {
|
} else if (version === 'nlt' && nltSearchEngine) {
|
||||||
searchEngine = nltSearchEngine;
|
searchEngine = nltSearchEngine;
|
||||||
|
} else if (version === 'csb' && csbSearchEngine) {
|
||||||
|
searchEngine = csbSearchEngine;
|
||||||
} else {
|
} else {
|
||||||
searchEngine = nkjvSearchEngine; // default fallback
|
searchEngine = nkjvSearchEngine; // default fallback
|
||||||
}
|
}
|
||||||
@@ -261,6 +273,8 @@ app.get('/api/search/suggestions', async (req, res) => {
|
|||||||
searchEngine = esvSearchEngine;
|
searchEngine = esvSearchEngine;
|
||||||
} else if (version === 'nlt' && nltSearchEngine) {
|
} else if (version === 'nlt' && nltSearchEngine) {
|
||||||
searchEngine = nltSearchEngine;
|
searchEngine = nltSearchEngine;
|
||||||
|
} else if (version === 'csb' && csbSearchEngine) {
|
||||||
|
searchEngine = csbSearchEngine;
|
||||||
} else {
|
} else {
|
||||||
searchEngine = nkjvSearchEngine; // default fallback
|
searchEngine = nkjvSearchEngine; // default fallback
|
||||||
}
|
}
|
||||||
@@ -397,4 +411,10 @@ app.listen(PORT, () => {
|
|||||||
console.log(`ESV data not available - mdbible not found`);
|
console.log(`ESV data not available - mdbible not found`);
|
||||||
}
|
}
|
||||||
console.log(`NKJV data directory: ${NKJV_DATA_DIR}`);
|
console.log(`NKJV data directory: ${NKJV_DATA_DIR}`);
|
||||||
|
if (nltSearchEngine) {
|
||||||
|
console.log(`NLT data directory: ${NLT_DATA_DIR}`);
|
||||||
|
}
|
||||||
|
if (csbSearchEngine) {
|
||||||
|
console.log(`CSB data directory: ${CSB_DATA_DIR}`);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user