This repository was archived by the owner on Jun 26, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 980
Expand file tree
/
Copy pathusocket.js
More file actions
82 lines (66 loc) · 1.99 KB
/
Copy pathusocket.js
File metadata and controls
82 lines (66 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import net from 'net';
import fs from 'fs';
import _debug from 'debug';
const SOCKET_FILENAME = '/var/tmp/ieasemusic.sock';
let debug = _debug('dev:usocket');
let error = _debug('dev:usocket:error');
function handler(data, player) {
var payload = JSON.parse(data.toString());
switch (payload.command) {
case 'toggle':
player.webContents.send('player-toggle');
break;
case 'next':
player.webContents.send('player-next');
break;
case 'prev':
player.webContents.send('player-previous');
break;
case 'play':
player.webContents.send('player-play', {
id: payload.id,
});
break;
case 'changeMode':
player.webContents.send('player-mode', {
mode: payload.mode,
});
break;
case 'goodbye':
player.goodbye();
break;
case 'show':
let isVisible = player.isVisible();
isVisible ? player.hide() : player.show();
break;
case 'bug':
require('electron').shell.openExternal('https://github.com/trazyn/ieaseMusic/issues');
break;
}
}
function createServer(shared, player) {
fs.unlink(SOCKET_FILENAME, () => {
var server = net.createServer(
s => {
debug('🐶 Client connected >>>');
s.on('end', () => debug('🐱 Client disconnected <<<'));
s.on('data', data => handler(data, player));
s.on('error', err => console.error(err));
s.write(JSON.stringify(shared));
}
);
server.on(
'error',
err => {
error(err);
}
);
server.listen(
SOCKET_FILENAME,
() => {
debug('🐤 Server bound on %s', SOCKET_FILENAME);
}
);
});
}
export default createServer;