summaryrefslogtreecommitdiff
path: root/main.js
blob: 1134f268c245cbbcbda224880ef6cf6891ac73c4 (plain)
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
const { app, BrowserWindow, Menu, ipcMain, shell} = require('electron')
const path = require('path')

if (require('os').platform() === "win32") {
    logo = path.join(__dirname, "splashicon.ico");
} else if (require('os').platform() === "darwin") {
    logo = path.join(__dirname, "splashicon.icns");
} else {
    logo = path.join(__dirname, "splashicon.png");
}

const packdata = require('./package.json');

function AcLoader(callback) {
    const loader = new BrowserWindow({
        width: 800,
        height: 500,
        icon: logo,
        resizable: false,
        fullscreenable: false,
        frame: false,
        backgroundColor: packdata.colors.primary,
        show: false,
        webPreferences: {
            nodeIntegration: true,
            contextIsolation: false
        }
    })

    loader.loadFile("./splash.html");
    loader.setMenu(new Menu());

    loader.on('ready-to-show', () => {
        loader.show();
        setTimeout(() => {
            loader.webContents.send("message", "Checking license...");
            setTimeout(() => {
                loader.webContents.send("message", "Connecting to Argon servers...");
                const win = new BrowserWindow({
                    width: 1100,
                    height: 600,
                    icon: logo,
                    show: false,
                    webPreferences: {
                        preload: path.join(__dirname, "internal.js"),
                        nodeIntegration: false,
                        nodeIntegrationInWorker: false,
                        nodeIntegrationInSubFrames: false,
                        contextIsolation: true,
                        webviewTag: true,
                        enableRemoteModule: true
                    }
                })

                win.setMenu(null);
                win.webContents.userAgent = win.webContents.userAgent + " +AutomateCloud/1.0"
                win.loadURL('https://argon.minteck.org/')

                ipcMain.on('affect-message', (event, message) => {
                    loader.webContents.send("message", message);
                })

                ipcMain.on('finish-startup', () => {
                    loader.hide();
                    Menu.setApplicationMenu(Menu.buildFromTemplate([
                        {
                            label: "Argon",
                            submenu: [
                                {
                                    role: "about"
                                },
                                {
                                    type: "separator"
                                },
                                {
                                    role: "quit"
                                }
                            ]
                        },
                        {
                            role: 'editMenu',
                            submenu: [
                                {
                                    role: 'selectAll'
                                },
                                {
                                    type: 'separator'
                                },
                                {
                                    role: 'undo'
                                },
                                {
                                    role: 'redo'
                                },
                                {
                                    type: 'separator'
                                },
                                {
                                    role: 'cut'
                                },
                                {
                                    role: 'copy'
                                },
                                {
                                    role: 'paste'
                                }
                            ]
                        },

                        {
                            role: 'viewMenu',
                            submenu: [
                                {
                                    role: 'togglefullscreen'
                                }
                            ]
                        },

                        {
                            role: 'window',
                            submenu: [
                                {
                                    role: 'minimize'
                                },
                                {
                                    role: 'close'
                                }
                            ]
                        },
                        {
                            role: 'help'
                        }]));
                    win.show();

                })

                const { shell } = require('electron')

                win.webContents.on('new-window', function (event, url) {
                    event.preventDefault()
                    shell.openExternal(url)
                })
            }, 500)
        }, 500)
    })
}

app.whenReady().then(() => {
    Menu.setApplicationMenu(new Menu());
    AcLoader(() => {});

    app.on('activate', () => {
        if (BrowserWindow.getAllWindows().length === 0) {
            AcLoader(() => {});
        }
    })
})

app.on('window-all-closed', () => {
    if (process.platform !== 'darwin') {
        app.quit()
    }
})