diff --git a/src/background/background.js b/src/background/background.js index 88044b1..eb0f833 100644 --- a/src/background/background.js +++ b/src/background/background.js @@ -227,6 +227,8 @@ const startSphinx = (callback) => { } sphinx = spawn(sphinxPath, options) + const optimizeResolvers = {} + sphinx.stdout.on('data', (data) => { console.log(`sphinx: ${data}`) if (data.includes('accepting connections')) { @@ -234,6 +236,16 @@ const startSphinx = (callback) => { if(callback) callback() } + + const checkOptimized = String(data).match(/index ([\w]+): optimized/) + if(checkOptimized) + { + if(optimizeResolvers[checkOptimized[1]]) + { + console.log('resolve optimizer', checkOptimized[1]) + optimizeResolvers[checkOptimized[1]]() + } + } }) sphinx.on('close', (code, signal) => { @@ -245,6 +257,13 @@ const startSphinx = (callback) => { console.log('sphinx closing...') exec(`"${sphinxPath}" --config "${config}" --stopwait`) } + + sphinx.waitOptimized = (table) => new Promise((resolve) => { + optimizeResolvers[table] = () => { + delete optimizeResolvers[table]; + resolve() + } + }) } // log autoupdate @@ -365,7 +384,7 @@ app.on("ready", () => { callback.apply(null, arg) }) }, app.getPath("userData"), app.getVersion(), env.name) - }, mainWindow) + }, mainWindow, sphinx) }) }); diff --git a/src/background/dbPatcher.js b/src/background/dbPatcher.js index 8048810..4ddb673 100644 --- a/src/background/dbPatcher.js +++ b/src/background/dbPatcher.js @@ -5,7 +5,7 @@ import { BrowserWindow } from "electron"; import url from 'url' import path from 'path' -module.exports = (callback, mainWindow) => { +module.exports = (callback, mainWindow, sphinxApp) => { const sphinx = mysql.createConnection({ host : config.sphinx.host, port : config.sphinx.port @@ -52,6 +52,67 @@ module.exports = (callback, mainWindow) => { patchWindow = new BrowserWindow({width: 800, height: 400, closable: false}) patchWindow.setMenu(null) + + patchWindow.loadURL("data:text/html;charset=utf-8," + encodeURI(` + +