@@ -4,10 +4,10 @@ import { app, dialog } from "electron";
44import { update as updateSettings } from "./settingsManager" ;
55import { openFileDialog } from "./presenceDevManager" ;
66import {
7- rpcClients ,
8- setActivity ,
9- clearActivity ,
10- getDiscordUser
7+ rpcClients ,
8+ setActivity ,
9+ clearActivity ,
10+ getDiscordUser
1111} from "./discordManager" ;
1212import { trayManager } from ".." ;
1313
@@ -17,70 +17,74 @@ export let server: Server;
1717export let connected : boolean = false ;
1818
1919export function init ( ) {
20- return new Promise ( resolve => {
21- //* Create server
22- //* create SocketIo server, don't server client
23- //* Try to listen to port 3020
24- //* If that fails/some other error happens run socketError
25- //* If someone connects to socket socketConnection
26- server = createServer ( ) ;
27- io = socketIo ( server , { serveClient : false } ) ;
28- server . listen ( 3020 , ( ) => {
29- //* Resolve promise
30- resolve ( ) ;
31- console . log ( "Opened socket" ) ;
32- } ) ;
33- server . on ( "error" , socketError ) ;
34- io . on ( "connection" , socketConnection ) ;
35- } ) ;
20+ return new Promise ( ( resolve ) => {
21+ //* Create server
22+ //* create SocketIo server, don't server client
23+ //* Try to listen to port 3020
24+ //* If that fails/some other error happens run socketError
25+ //* If someone connects to socket socketConnection
26+ server = createServer ( ) ;
27+ io = socketIo ( server , { serveClient : false } ) ;
28+ io . origins ( ( o , c ) => {
29+ if ( o !== "*" ) c ( "Not a chrome extension, socket denied." , false ) ;
30+ c ( null , true ) ;
31+ } ) ;
32+ server . listen ( 3020 , ( ) => {
33+ //* Resolve promise
34+ resolve ( ) ;
35+ console . log ( "Opened socket" ) ;
36+ } ) ;
37+ server . on ( "error" , socketError ) ;
38+ io . on ( "connection" , socketConnection ) ;
39+ } ) ;
3640}
3741
3842function socketConnection ( cSocket : socketIo . Socket ) {
39- //* Set exported socket letiable to current socket
40- //* Handle setActivity event
41- //* Handle clearActivity event
42- //* Handle settingsUpdate
43- //* Handle presenceDev
44- //* Handle version request
45- //* Once socket user disconnects run cleanup
46- console . log ( "Socket connection" ) ;
47- socket = cSocket ;
48- getDiscordUser ( ) . then ( user => socket . emit ( "discordUser" , user ) ) ;
49- socket . on ( "setActivity" , setActivity ) ;
50- socket . on ( "clearActivity" , clearActivity ) ;
51- socket . on ( "settingUpdate" , updateSettings ) ;
52- socket . on ( "selectLocalPresence" , openFileDialog ) ;
53- socket . on ( "getVersion" , ( ) =>
54- socket . emit ( "receiveVersion" , app . getVersion ( ) . replace ( / [ \D ] / g, "" ) )
55- ) ;
56- socket . once ( "disconnect" , ( ) => {
57- connected = false ;
58- trayManager . update ( ) ;
59- //* Destroy all open RPC connections
60- console . log ( "Socket disconnected." ) ;
61- rpcClients . forEach ( c => c . destroy ( ) ) ;
62- } ) ;
63- connected = true ;
64- trayManager . update ( ) ;
43+ //* Set exported socket letiable to current socket
44+ //* Handle setActivity event
45+ //* Handle clearActivity event
46+ //* Handle settingsUpdate
47+ //* Handle presenceDev
48+ //* Handle version request
49+ //* Once socket user disconnects run cleanup
50+ console . log ( "Socket connection" ) ;
51+ socket = cSocket ;
52+ getDiscordUser ( ) . then ( ( user ) => socket . emit ( "discordUser" , user ) ) ;
53+ socket . on ( "setActivity" , setActivity ) ;
54+ socket . on ( "clearActivity" , clearActivity ) ;
55+ socket . on ( "settingUpdate" , updateSettings ) ;
56+ socket . on ( "selectLocalPresence" , openFileDialog ) ;
57+ socket . on ( "getVersion" , ( ) =>
58+ socket . emit ( "receiveVersion" , app . getVersion ( ) . replace ( / [ \D ] / g, "" ) )
59+ ) ;
60+ socket . once ( "disconnect" , ( ) => {
61+ connected = false ;
62+ trayManager . update ( ) ;
63+ //* Destroy all open RPC connections
64+ console . log ( "Socket disconnected." ) ;
65+ rpcClients . forEach ( ( c ) => c . destroy ( ) ) ;
66+ } ) ;
67+ connected = true ;
68+ trayManager . update ( ) ;
6569}
6670
6771app . on ( "quit" , ( ) => {
68- if ( socket && socket . connected ) socket . disconnect ( true ) ;
72+ if ( socket && socket . connected ) socket . disconnect ( true ) ;
6973} ) ;
7074
7175//* Runs on socket errors
7276function socketError ( e : any ) {
73- //* If port in use
74- console . log ( `Socket error :\n${ e . message } ` ) ;
75- if ( e . code === "EADDRINUSE" ) {
76- //* Focus app
77- //* Show error dialog
78- //* Exit app afterwards
79- app . focus ( ) ;
80- dialog . showErrorBox (
81- "Oh noes! Port error..." ,
82- `${ app . name } could not bind to port ${ e . port } .\nIs ${ app . name } running already?`
83- ) ;
84- app . quit ( ) ;
85- }
77+ //* If port in use
78+ console . log ( `Socket error :\n${ e . message } ` ) ;
79+ if ( e . code === "EADDRINUSE" ) {
80+ //* Focus app
81+ //* Show error dialog
82+ //* Exit app afterwards
83+ app . focus ( ) ;
84+ dialog . showErrorBox (
85+ "Oh noes! Port error..." ,
86+ `${ app . name } could not bind to port ${ e . port } .\nIs ${ app . name } running already?`
87+ ) ;
88+ app . quit ( ) ;
89+ }
8690}
0 commit comments