forked from crimson-med/Doftouch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
144 lines (129 loc) · 4.37 KB
/
main.js
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
function isDev() {return process.mainModule.filename.indexOf('app.asar') === -1}
var {app, BrowserWindow, Tray, autoUpdater, dialog, session, powerSaveBlocker} = require('electron');
if (isDev() && require('./src/electron/sqrlwin')(app)) return;
app.commandLine.appendSwitch('disable-renderer-backgrounding');
powerSaveBlocker.start('prevent-app-suspension');
const appVersion = require('./package.json').version;
const os = require('os').platform();
var ManifestGetter = require('./src/electron/tasks/ManifestGetter');
var DownloadAssets = require('./src/electron/tasks/DownloadAssets');
var CheckAssets = require('./src/electron/tasks/CheckAssets');
var FileManipulator = require('./src/electron/tasks/FileManipulator');
var AssetMapGetter = require('./src/electron/tasks/AssetMapGetter');
if (!isDev()) {
var updateFeed = '';
updateFeed = os === 'darwin' ?
'http://dofucks.com:1337/updates/latest' :
'http://download.dofucks.com/win32';
autoUpdater.setFeedURL(updateFeed + '?v=' + appVersion);
autoUpdater.checkForUpdates();
autoUpdater.on('update-available', () => {
console.log('update available');
});
autoUpdater.on('update-not-available', () => {
});
autoUpdater.on('update-downloaded', (event, releaseNotes, releaseName) => {
const dialogOpts = {
type: 'info',
buttons: ['Restart', 'Later'],
title: 'Application Update',
message: process.platform === 'win32' ? releaseNotes : releaseName,
detail: 'A new version has been downloaded. Restart the application to apply the update.'
}
dialog.showMessageBox(dialogOpts, (response) => {
if (response === 0) autoUpdater.quitAndInstall()
})
});
autoUpdater.on('error', message => {
console.error('There was a problem updating the application')
console.error(message);
});
}
app.on('window-all-closed', function() {
if (process.platform != 'darwin') {
app.quit();
}
});
app.on('ready', function() {
require('./src/electron/Menu');
let win = new BrowserWindow({
width: 800,
height: 350,
frame: false,
icon: __dirname + '/src/assets/dofucks.png'
});
function ready() {
inform(win, "I think it's now ready", 100);
setTimeout(() => {
mainWindow = new BrowserWindow({
width: 1800,
height: 1000,
title: 'Dofucks',
icon: __dirname + '/src/assets/dofucks.png',
webPreferences: {
backgroundThrottling: false
}
});
mainWindow.loadURL('file://' + __dirname + '/src/browser/index.html');
mainWindow.webContents.setUserAgent("Mozilla/5.0 (Linux; Android 7.1.1; ONEPLUS A5000 Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Crosswalk/15.44.384.13 Mobile Safari/537.36")
//mainWindow.webContents.setFrameRate(5);
//mainWindow.setMinimizable(false);
mainWindow.openDevTools();
mainWindow.on('closed', function() {
mainWindow = null;
});
win.close();
}, 1000);
}
function checkAssets() {
var manifestGetter = new ManifestGetter(win);
manifestGetter.do((err) => {
if (err) {
return inform_err(win, "We can't download the file. Do you have enough space on your hard drive ?");
}
var assetMapGetter = new AssetMapGetter(win);
assetMapGetter.do((err) => {
if (err) {
return inform_err(win, "We can't download the file. Do you have enough space on your hard drive ?");
}
var assetsChecker = new CheckAssets(win, manifestGetter.assets, assetMapGetter.assets);
assetsChecker.do(() => {
var assetDownloader = new DownloadAssets(win, assetsChecker.toDownload, assetsChecker.assetsToDownload, assetsChecker.versions, manifestGetter.assets, assetMapGetter.assets);
assetDownloader.do((err, hasDownloaded) => {
if (err) {
inform_err(win, "We can't download assets. Do you have enough space on your hard drive ?");
return;
}
if (hasDownloaded) {
var fileManipulator = new FileManipulator(win);
fileManipulator.do((err) => {
ready();
});
} else {
ready();
}
});
});
})
});
}
function inform(win, text, pct) {
win.webContents.send('loadingData', {
"text": text,
"pct": pct
});
}
function inform_err(win, text) {
win.webContents.send('error', text);
}
win.loadURL('file://' + __dirname + '/src/browser/load.html');
//win.openDevTools();
win.webContents.on('did-finish-load', (event, input) => {
checkAssets();
if (!isDev()) {
setInterval(() => {
autoUpdater.checkForUpdates();
}, 1000*60*10);
}
})
});