diff --git a/menu.js b/menu.js index 496518f..04b75b6 100644 --- a/menu.js +++ b/menu.js @@ -1,3 +1,4 @@ +const path = require('path') module.exports = async kernel => { const hasEnv = await kernel.exists(__dirname, 'facefusion', 'env'); @@ -9,82 +10,117 @@ module.exports = async kernel => { if (kernel.running(__dirname, 'start.js')) { - const session = await kernel.require(__dirname, 'session.json'); - - menu = - [ - { - icon: 'fa-solid fa-spin fa-circle-notch', - text: 'Running ' + session.mode - }, - { - icon: 'fa-solid fa-desktop', - text: 'Server', - href: 'start.js', - params: - { - fullscreen: true - } - } - ]; - if (session && session.url) - { - menu.push( - { - icon: 'fa-solid fa-rocket', - text: 'Open session', - href: session.url, - target: '_blank' - }); - } - return menu; - } - menu = - [ - { - icon: 'fa-solid fa-power-off', - text: 'Launch default', - href: 'start.js', - params: - { - run: true, - fullscreen: true, - mode: 'Default' - } - }, - { - icon: 'fa-solid fa-gauge', - text: 'Launch benchmark', - href: 'start.js', - params: - { - run: true, - fullscreen: true, - mode: 'Benchmark' - } - }, - { - icon: 'fa-solid fa-camera', - text: 'Launch webcam', - href: 'start.js', - params: - { - run: true, - fullscreen: true, - mode: 'Webcam' - } - }, - { - icon: 'fa-solid fa-rotate', - text: 'Update', - href: 'update.js', - params: - { - run: true, - fullscreen: true - } - } - ]; + const memory = kernel.memory.local[path.resolve(__dirname, "start.js")] + if (memory && memory.url && memory.mode) + { + menu = + [ + { + icon: 'fa-solid fa-rocket', + text: 'Open session', + href: memory.url, + target: '_blank' + }, + { + icon: 'fa-solid fa-desktop', + text: 'Server (' + memory.mode + ')', + href: 'start.js', + params: + { + fullscreen: true + } + } + ]; + } + else + { + menu = + [ + { + icon: 'fa-solid fa-desktop', + text: 'Server', + href: 'start.js', + params: + { + fullscreen: true + } + } + ]; + } + } + else + { + menu = + [ + { + icon: 'fa-solid fa-power-off', + text: 'Launch default', + href: 'start.js', + params: + { + run: true, + fullscreen: true, + mode: 'Default' + } + }, + { + icon: 'fa-solid fa-gauge', + text: 'Launch benchmark', + href: 'start.js', + params: + { + run: true, + fullscreen: true, + mode: 'Benchmark' + } + }, + { + icon: 'fa-solid fa-camera', + text: 'Launch webcam', + href: 'start.js', + params: + { + run: true, + fullscreen: true, + mode: 'Webcam' + } + } + ]; + } + menu = menu.concat( + [ + { + icon: 'fa-solid fa-rotate', + text: 'Update', + href: 'update.js', + params: + { + run: true, + fullscreen: true + } + }, + { + icon: 'fa-solid fa-plug', + text: 'Install', + href: 'install.js', + params: + { + run: true, + fullscreen: true + } + }, + { + icon: 'fa-regular fa-circle-xmark', + text: 'Factory Reset', + href: 'reset.js', + params: + { + run: true, + fullscreen: true + } + } + ] + ) } else { diff --git a/reset.js b/reset.js new file mode 100644 index 0000000..8784ae8 --- /dev/null +++ b/reset.js @@ -0,0 +1,8 @@ +{ + "run": [{ + "method": "fs.rm", + "params": { + "path": "facefusion" + } + }] +} diff --git a/start.js b/start.js index b24b688..d236e98 100644 --- a/start.js +++ b/start.js @@ -35,21 +35,17 @@ module.exports = () => } }, { - method: 'self.set', + method: 'local.set', params: { - 'session.json': - { - mode: '{{local.mode}}', - url: '{{input.stdout.match(/(http:\\S+)/gi)[0]}}' - } + url: '{{input.stdout.match(/(http:\\S+)/gi)[0]}}' } }, { method: 'browser.open', params: { - uri: '{{self.session.url}}', + uri: '{{local.url}}', target: '_blank' } }