73 lines
2.1 KiB
JavaScript
73 lines
2.1 KiB
JavaScript
var net = require('net');
|
|
const { exec } = require("child_process");
|
|
var path = require('path');
|
|
// var localPlayerFunctioins = require('./bin/local')
|
|
|
|
async function playStuff() {
|
|
return new Promise(function (resolve, reject) {
|
|
exec(`node player.js file`, (error, stdout, stderr) => {
|
|
if (error) {
|
|
if (error.message.includes('already mounted')) {
|
|
resolve(true)
|
|
return;
|
|
} else {
|
|
resolve(false)
|
|
return;
|
|
}
|
|
} if (stderr) {
|
|
resolve(false)
|
|
return;
|
|
}
|
|
resolve(true)
|
|
})
|
|
})
|
|
}
|
|
|
|
async function pauseStuff() {
|
|
return new Promise(function (resolve, reject) {
|
|
exec(`node player.js pause`, (error, stdout, stderr) => {
|
|
if (error) {
|
|
if (error.message.includes('already mounted')) {
|
|
resolve(true)
|
|
return;
|
|
} else {
|
|
resolve(false)
|
|
return;
|
|
}
|
|
} if (stderr) {
|
|
resolve(false)
|
|
return;
|
|
}
|
|
resolve(true)
|
|
})
|
|
})
|
|
}
|
|
|
|
var server = net.createServer(function(connection) {
|
|
connection.on('data', function(data) {
|
|
// data is a Buffer, so we'll .toString() it for this example
|
|
console.log(data.toString());
|
|
const input = data.toString()
|
|
if (input.includes('play')) {
|
|
playStuff()
|
|
} else if (input.includes('pause')) {
|
|
pauseStuff()
|
|
}
|
|
});
|
|
});
|
|
|
|
// This creates a UNIX socket in the current directory named "nodejs_bridge.sock"
|
|
server.listen((path.resolve(__dirname, "nodejs_bridge.sock")));
|
|
|
|
// Make sure we close the server when the process exits so the file it created is removed
|
|
process.on('exit', function() {
|
|
server.close();
|
|
});
|
|
|
|
// Call process.exit() explicitly on ctl-c so that we actually get that event
|
|
process.on('SIGINT', function() {
|
|
process.exit();
|
|
});
|
|
|
|
// Resume stdin so that we don't just exit immediately
|
|
process.stdin.resume(); |