From bd1b700e0a12a869afad024b219abb6bcfeb539a Mon Sep 17 00:00:00 2001 From: Matheus Rangel Date: Sat, 27 May 2023 13:48:25 -0300 Subject: [PATCH 1/3] Removing global.app from setup --- core/setup.js | 2 -- package.json | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/setup.js b/core/setup.js index 1e48a38..66616fd 100644 --- a/core/setup.js +++ b/core/setup.js @@ -54,8 +54,6 @@ module.exports = async function(arg) { return; } - global.electron = require('electron').remote; - global.app = electron.app; global.dialog = {}; dialog.select = async function(opt) { diff --git a/package.json b/package.json index 155ff2f..bf7b150 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,9 @@ "ws": "^8.1.0" }, "description": "Maps the right stick to motion controls for Cemu.", - "devDependencies": {}, + "devDependencies": { + "electron": "^24.4.0" + }, "entry point": "app.js", "homepage": "https://github.com/quinton-ashley/cemu-no-gyro#readme", "keywords": [ From f8f6918d694903cd1ddf15d828be39e2230c8f02 Mon Sep 17 00:00:00 2001 From: Matheus Rangel Date: Sat, 27 May 2023 18:05:02 -0300 Subject: [PATCH 2/3] Adding https support to enable smartphone usage again --- server.cert | 21 ++++++++++++++++ server.key | 28 +++++++++++++++++++++ views/js/client.js | 2 +- views/js/index.js | 62 +++++++++++++++++++++++----------------------- 4 files changed, 81 insertions(+), 32 deletions(-) create mode 100644 server.cert create mode 100644 server.key diff --git a/server.cert b/server.cert new file mode 100644 index 0000000..2e525af --- /dev/null +++ b/server.cert @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDazCCAlOgAwIBAgIUF8tP4yWAQG7snBUeIYoCOmFOfOwwDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMzA1MjcyMDQ5NDlaFw0yMzA2 +MjYyMDQ5NDlaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCXkOmGLY4W9QNU2vH5a6zHPVq6J19LS/akNJzAeCnz +PpgTpEUQ40sv72MfYgxQGucgN44Sk0ZrSkmyhCnwcNFnE6YkS0Ctaa0YN/koJfsN +yAXPJFQgZep0XgsioHBGEcHdTEFkSf2tTkw1YWVVghwjZ0Yycu8sAax6PwoGRoYF +tlKOfRCFuWXRdfYTo8aNpGc38Eoqa/yQFdT5CY4U2qxgjZpXjwfENz/Ny9MSWbPF +vVfa1JkScZyNWyb0U+vSRFMmPaueC5/rvXGZXmgxBoUUa4RmeyhHOA/Xe8pWxfE3 +qQMeHWR2Eq1/pG8vyv+UzrokcqevNPV7WBXVd7zorZ2nAgMBAAGjUzBRMB0GA1Ud +DgQWBBSUCxqM/xY5ssvLBiFz4c257Yj7ITAfBgNVHSMEGDAWgBSUCxqM/xY5ssvL +BiFz4c257Yj7ITAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB1 +dJjOjFHIiW1XGavtpnL4z+BF5VEX3AyadYEOnxuABJR42MAMPbMs3k5DbfI42p3A +iRe1mROpeUF4w286H9MlDZaEEJYxqBfiN8odIv8f/gd98gUhRZBYKMyLx2nv2MfD +q5lVuF7Ee777HnyEIDdKBOntxibvgT/2EfAO6xyoAJqHWJyqbrNaan8ulW4uTX8h +O5sjkCzCWXOGbnpuqHj797CNV282Azt44cc5Z0Nds9uma/BQRqrEsXWCj1tZfwDM +CwqieGx/Z+cDbVKoSdqWl+mhdMEB3OelcEdTfD7ZHx4wonfyylOrfemDg8yh1eNf +PgoPnRaX/li2uFOOZFpb +-----END CERTIFICATE----- diff --git a/server.key b/server.key new file mode 100644 index 0000000..3c5ffc6 --- /dev/null +++ b/server.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXkOmGLY4W9QNU +2vH5a6zHPVq6J19LS/akNJzAeCnzPpgTpEUQ40sv72MfYgxQGucgN44Sk0ZrSkmy +hCnwcNFnE6YkS0Ctaa0YN/koJfsNyAXPJFQgZep0XgsioHBGEcHdTEFkSf2tTkw1 +YWVVghwjZ0Yycu8sAax6PwoGRoYFtlKOfRCFuWXRdfYTo8aNpGc38Eoqa/yQFdT5 +CY4U2qxgjZpXjwfENz/Ny9MSWbPFvVfa1JkScZyNWyb0U+vSRFMmPaueC5/rvXGZ +XmgxBoUUa4RmeyhHOA/Xe8pWxfE3qQMeHWR2Eq1/pG8vyv+UzrokcqevNPV7WBXV +d7zorZ2nAgMBAAECggEADhn/+Clt4mnqZO83+zZO7XyiX9aA8b8AFBgHC4tCj+yf +dpheiqszGCMkLEvRjHRsU52HnOfR8fKH99F/G21LtlToLNFJk7jUz3+JsXgTKx2U +mMivARKqZShIzfBycbp+OIo7PUr7DLBPu9mzdWi1GIAn0lLKOORw+TC7TIksOASx +YeBnq6V/ZZdqTMph68zfALOGVA/DuwOhD5x3NMz5LdCBdxL5uyAnN01niL7E/dye +TvpS91oGut5xWthENx9gpkzqoLF/iB4vevrbSuX8yQWl7n30HWhxVkgL9AhV/Eo/ +CkyjKobG+vBJNoDE1WtI9r62yaRmViQUoTIsrKAUCQKBgQC5XRiu8oDEs1iy7V0a +Q0QnRf0SAZwtttkYr6SQqvi5eW1F8yBtOky+DvLwJaVpLnIwAtwv9GmlkblPPnhr +8Lubzi9xdq9caWSowMKd11cTGPaF7JUQD0Q9HAQx8Un1Z+6tiFhxdnlJ8X3IWYVa +Pgl8SyGWX6URu4fb8MRwMdjC6QKBgQDRUryWpCelFNf4uTbAhPP1kRHjQ2eso/xk +Jrw4XpotZWL9OrO33FC5e09qUW7hlRsTikXKTcnoi3FMmpq8bVv4aY9v7mHb8yD7 +rqxHY+WTkcOXQGftS5lGAxjz2yztHJIUEQHT/G6Fw3XD1gq6QqJLYzpfqOWkyruZ +thBdE1ViDwKBgEO77SUgoEVAdA0OB5NtOR5QyOUniXZ69mG67RugHjtIT9HbweGo +CBr7Q3LVjtgcjMVWhjdPzLsfwONgJIjs8uFAOr3vbK0MJig0J+mdosfru0m85ct0 +iK776dyGG0x9qg3nYMo1TKTkhd4MOFp9iOHOYnucf6k3KbIJDP8id97hAoGAU6TI +DzoRTXoCwzTfmBaIlbwedb3dk7MDi9GerLfAzBsTbzUh03qKF1Qa69UWhbXbV/eM +48YpxG7UG1Q8OMdKVP15f7S2DfodV/T4ip50gn9gtPPbk4r9+GgMdIVEcotUJAiX +vmnEkFcGm/bP2pX93DoOfWM0QKFyTX3fFBJBsCkCgYBkB6XTJBQwNPmZO5pMdv1k +xzFf+JH6SetR5uY3e0B5BIMZS6V3PDOHejQ5Nt5rKeHw2YsRQ4+mmZZeIblHA6JB +lBJHLv9eizrR/CG/TRCwPCNzXhpqBm5AhLduhrjkoB2eNyLzb7hcEWGL01OKP8+h +v1ruIXsnBgWDNZb65KUVCg== +-----END PRIVATE KEY----- diff --git a/views/js/client.js b/views/js/client.js index 546573a..bfc647a 100644 --- a/views/js/client.js +++ b/views/js/client.js @@ -16,7 +16,7 @@ function screenChange(val) { } var time = 0; var bar = window.location.href; -var wsAddress = `ws://${bar.match(/^https?:\/\/([^:]+).+$/)[1]}:1337`; +var wsAddress = `wss://${bar.match(/^https?:\/\/([^:]+).+$/)[1]}:8443/wss`; console.log(wsAddress); var ws = new WebSocket(wsAddress); ws.onopen = function(ws_evnt) { diff --git a/views/js/index.js b/views/js/index.js index 410a031..8150a2e 100644 --- a/views/js/index.js +++ b/views/js/index.js @@ -6,7 +6,6 @@ module.exports = async function (arg) { const { Mouse, Keyboard, Gamepad, or, and } = require('contro'); let gamepad = new Gamepad(); - const http = require('http'); const WebSocket = require('ws'); let btnNames = ['lt', 'rt']; @@ -60,7 +59,7 @@ module.exports = async function (arg) { $('#gyroY').on('click', toggleAxis); $('#gyroZ').on('click', toggleAxis); - function toggleControls() { + function toggleControls() {f let $btn = $(this); let axis = $btn.attr('id')[6].toLowerCase(); $btn.toggleClass('enabled'); @@ -156,35 +155,10 @@ module.exports = async function (arg) { loop(); - const wss = new WebSocket.Server({ - port: 1337, - }); - - wss.on('connection', function connection(ws) { - log('WS Connected'); - phoneIsConnected = true; - $('#phoneIndicator').text('Phone connected!'); - ws.on('message', function incoming(message) { - // log(message); - data = JSON.parse(message); - gyroServer.sendMotionData(data.gyro, null, data.ts); - }); - ws.on('error', () => { - phoneIsConnected = false; - log('WS ERROR'); - }); - ws.on('close', () => { - phoneIsConnected = false; - log('WS Disconnected'); - $('#phoneIndicator').text('Phone disconnected'); - }); - }); - ///////////////////////////////////////////////// let express = require('express'); let xps = express(); - // set up the template engine xps.set('views', __root + '/views'); xps.set('view engine', 'pug'); @@ -194,9 +168,14 @@ module.exports = async function (arg) { xps.get('/', function (req, res) { res.render('pug/client'); }); - - // start up the server - xps.listen(8080, function () { + const https = require("https"); + const httpsOptions = { + key: await fs.readFile("server.key", 'utf8'), + cert: await fs.readFile("server.cert", 'utf8') + }; + const server = https.createServer(httpsOptions, xps) + + server.listen(8443, function () { log(` ## Usage 1. Run Cemu.exe and Checked Options->GamePad mation source->DSU1->By Slot @@ -208,13 +187,34 @@ module.exports = async function (arg) { interfaces[k][i].family == 'IPv4' && interfaces[k][i].address != '127.0.0.1' ) { - let url = 'http://' + interfaces[k][i].address + ':8080'; + let url = 'https://' + interfaces[k][i].address + ':8443'; log(url); $('#phoneURL').text($('#phoneURL').text() + url + ' '); } } } }); + const wss = new WebSocket.Server({server, path: '/wss'}); + wss.on('connection', function connection(ws) { + log('WS Connected'); + phoneIsConnected = true; + $('#phoneIndicator').text('Phone connected!'); + ws.on('message', function incoming(message) { + // log(message); + data = JSON.parse(message); + gyroServer.sendMotionData(data.gyro, null, data.ts); + }); + ws.on('error', () => { + phoneIsConnected = false; + log('WS ERROR'); + }); + ws.on('close', () => { + phoneIsConnected = false; + log('WS Disconnected'); + $('#phoneIndicator').text('Phone disconnected'); + }); + }); + require('process').on('uncaughtException', function (err) { log(err); From cb1b94ddecaf62b0d05c326a23275e3653af084d Mon Sep 17 00:00:00 2001 From: Matheus Rangel Date: Sat, 27 May 2023 18:33:31 -0300 Subject: [PATCH 3/3] Adding certificate strings to js to facilitate dist build --- package.json | 3 ++- server.cert | 21 --------------------- server.key => views/js/cert.js | 27 ++++++++++++++++++++++++++- views/js/index.js | 8 ++------ 4 files changed, 30 insertions(+), 29 deletions(-) delete mode 100644 server.cert rename server.key => views/js/cert.js (55%) diff --git a/package.json b/package.json index bf7b150..57da9b7 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,8 @@ }, "description": "Maps the right stick to motion controls for Cemu.", "devDependencies": { - "electron": "^24.4.0" + "electron": "^24.4.0", + "electron-builder": "^23.6.0" }, "entry point": "app.js", "homepage": "https://github.com/quinton-ashley/cemu-no-gyro#readme", diff --git a/server.cert b/server.cert deleted file mode 100644 index 2e525af..0000000 --- a/server.cert +++ /dev/null @@ -1,21 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDazCCAlOgAwIBAgIUF8tP4yWAQG7snBUeIYoCOmFOfOwwDQYJKoZIhvcNAQEL -BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM -GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMzA1MjcyMDQ5NDlaFw0yMzA2 -MjYyMDQ5NDlaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw -HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCXkOmGLY4W9QNU2vH5a6zHPVq6J19LS/akNJzAeCnz -PpgTpEUQ40sv72MfYgxQGucgN44Sk0ZrSkmyhCnwcNFnE6YkS0Ctaa0YN/koJfsN -yAXPJFQgZep0XgsioHBGEcHdTEFkSf2tTkw1YWVVghwjZ0Yycu8sAax6PwoGRoYF -tlKOfRCFuWXRdfYTo8aNpGc38Eoqa/yQFdT5CY4U2qxgjZpXjwfENz/Ny9MSWbPF -vVfa1JkScZyNWyb0U+vSRFMmPaueC5/rvXGZXmgxBoUUa4RmeyhHOA/Xe8pWxfE3 -qQMeHWR2Eq1/pG8vyv+UzrokcqevNPV7WBXVd7zorZ2nAgMBAAGjUzBRMB0GA1Ud -DgQWBBSUCxqM/xY5ssvLBiFz4c257Yj7ITAfBgNVHSMEGDAWgBSUCxqM/xY5ssvL -BiFz4c257Yj7ITAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB1 -dJjOjFHIiW1XGavtpnL4z+BF5VEX3AyadYEOnxuABJR42MAMPbMs3k5DbfI42p3A -iRe1mROpeUF4w286H9MlDZaEEJYxqBfiN8odIv8f/gd98gUhRZBYKMyLx2nv2MfD -q5lVuF7Ee777HnyEIDdKBOntxibvgT/2EfAO6xyoAJqHWJyqbrNaan8ulW4uTX8h -O5sjkCzCWXOGbnpuqHj797CNV282Azt44cc5Z0Nds9uma/BQRqrEsXWCj1tZfwDM -CwqieGx/Z+cDbVKoSdqWl+mhdMEB3OelcEdTfD7ZHx4wonfyylOrfemDg8yh1eNf -PgoPnRaX/li2uFOOZFpb ------END CERTIFICATE----- diff --git a/server.key b/views/js/cert.js similarity index 55% rename from server.key rename to views/js/cert.js index 3c5ffc6..14e6634 100644 --- a/server.key +++ b/views/js/cert.js @@ -1,4 +1,26 @@ ------BEGIN PRIVATE KEY----- +const cert = `-----BEGIN CERTIFICATE----- +MIIDazCCAlOgAwIBAgIUF8tP4yWAQG7snBUeIYoCOmFOfOwwDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMzA1MjcyMDQ5NDlaFw0yMzA2 +MjYyMDQ5NDlaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCXkOmGLY4W9QNU2vH5a6zHPVq6J19LS/akNJzAeCnz +PpgTpEUQ40sv72MfYgxQGucgN44Sk0ZrSkmyhCnwcNFnE6YkS0Ctaa0YN/koJfsN +yAXPJFQgZep0XgsioHBGEcHdTEFkSf2tTkw1YWVVghwjZ0Yycu8sAax6PwoGRoYF +tlKOfRCFuWXRdfYTo8aNpGc38Eoqa/yQFdT5CY4U2qxgjZpXjwfENz/Ny9MSWbPF +vVfa1JkScZyNWyb0U+vSRFMmPaueC5/rvXGZXmgxBoUUa4RmeyhHOA/Xe8pWxfE3 +qQMeHWR2Eq1/pG8vyv+UzrokcqevNPV7WBXVd7zorZ2nAgMBAAGjUzBRMB0GA1Ud +DgQWBBSUCxqM/xY5ssvLBiFz4c257Yj7ITAfBgNVHSMEGDAWgBSUCxqM/xY5ssvL +BiFz4c257Yj7ITAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB1 +dJjOjFHIiW1XGavtpnL4z+BF5VEX3AyadYEOnxuABJR42MAMPbMs3k5DbfI42p3A +iRe1mROpeUF4w286H9MlDZaEEJYxqBfiN8odIv8f/gd98gUhRZBYKMyLx2nv2MfD +q5lVuF7Ee777HnyEIDdKBOntxibvgT/2EfAO6xyoAJqHWJyqbrNaan8ulW4uTX8h +O5sjkCzCWXOGbnpuqHj797CNV282Azt44cc5Z0Nds9uma/BQRqrEsXWCj1tZfwDM +CwqieGx/Z+cDbVKoSdqWl+mhdMEB3OelcEdTfD7ZHx4wonfyylOrfemDg8yh1eNf +PgoPnRaX/li2uFOOZFpb +-----END CERTIFICATE----- +` +const key = `-----BEGIN PRIVATE KEY----- MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXkOmGLY4W9QNU 2vH5a6zHPVq6J19LS/akNJzAeCnzPpgTpEUQ40sv72MfYgxQGucgN44Sk0ZrSkmy hCnwcNFnE6YkS0Ctaa0YN/koJfsNyAXPJFQgZep0XgsioHBGEcHdTEFkSf2tTkw1 @@ -26,3 +48,6 @@ xzFf+JH6SetR5uY3e0B5BIMZS6V3PDOHejQ5Nt5rKeHw2YsRQ4+mmZZeIblHA6JB lBJHLv9eizrR/CG/TRCwPCNzXhpqBm5AhLduhrjkoB2eNyLzb7hcEWGL01OKP8+h v1ruIXsnBgWDNZb65KUVCg== -----END PRIVATE KEY----- +` + +module.exports = {key, cert} \ No newline at end of file diff --git a/views/js/index.js b/views/js/index.js index 8150a2e..b7dc7e0 100644 --- a/views/js/index.js +++ b/views/js/index.js @@ -169,12 +169,8 @@ module.exports = async function (arg) { res.render('pug/client'); }); const https = require("https"); - const httpsOptions = { - key: await fs.readFile("server.key", 'utf8'), - cert: await fs.readFile("server.cert", 'utf8') - }; - const server = https.createServer(httpsOptions, xps) - + const httpsOptions = require('./cert'); + const server = https.createServer(httpsOptions, xps); server.listen(8443, function () { log(` ## Usage