-
Notifications
You must be signed in to change notification settings - Fork 0
/
menu.js
126 lines (117 loc) · 4.39 KB
/
menu.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
const contextMenu = require("electron-context-menu");
const {nativeImage, clipboard, Menu} = require("electron");
function Create(contents) {
contextMenu({
window: contents,
showInspectElement: true,
prepend: (defaultActions, parameters, browserWindow) => [
{
label: 'Copy image',
visible: parameters.mediaType === 'canvas',
click: (menuItem, browserWindow, event) => {
browserWindow.webContents.mainFrame.framesInSubtree.filter((frame) => {
if (frame.url === 'https://rkyfxfex.aimia.dmmgames.com/pc/iframe') {
frame.executeJavaScript(`
function takeScreenshot() {
let canvas = document.querySelector('#unity-canvas');
return canvas.toDataURL("image/png")
}
takeScreenshot()
`).then((result) => {
let b64 = nativeImage.createFromDataURL(result)
clipboard.writeImage(b64)
})
}
})
}
},
{
label: 'Save image',
visible: parameters.mediaType === 'canvas',
click: (menuItem, browserWindow, event) => {
browserWindow.webContents.mainFrame.framesInSubtree.filter((frame) => {
if (frame.url === 'https://rkyfxfex.aimia.dmmgames.com/pc/iframe') {
frame.executeJavaScript(`
function saveImage() {
let canvas = document.querySelector('#unity-canvas');
canvas.toBlob((blob) => {
const a = document.createElement('a');
a.download = 'imys_screenshot_' + new Date().toLocaleString("en-CA", {hour12: false, timeZone: "Asia/Hong_Kong"}).
replace(/-/g, '_').
replace(/, /g, '_').
replace(/:/g, '_') + '.png';
a.href = URL.createObjectURL(blob);
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
});
}
saveImage()
`)
}
})
}
}
]
});
}
let gameWindow = null
let blockSkip = true
let Template = [
{
label: "File",
submenu: [
{
role: 'quit',
label: "Exit",
}
]
},
{
label: "View",
submenu: [
{role: 'reload'},
{role: 'forceReload'},
{role: 'toggleDevTools'},
{type: 'separator'},
{role: 'resetZoom'},
{role: 'zoomIn', accelerator: 'CommandOrControl+='},
{role: 'zoomIn', accelerator: 'CommandOrControl+numadd', visible: false, acceleratorWorksWhenHidden: true},
{role: 'zoomOut'},
{role: 'zoomOut', accelerator: 'CommandOrControl+numsub', visible: false, acceleratorWorksWhenHidden: true},
{type: 'separator'},
{role: 'togglefullscreen'}
]
},
{
label: "Tools",
submenu: [
{
label: 'Block abysshole skip ✔️',
click: function () {
blockSkip = !blockSkip;
RefreshCustomMenuLabel()
}
}
]
}
]
function RefreshCustomMenuLabel() {
// Block skip
if (blockSkip) {
Template[2].submenu[0].label = 'Block abysshole skip ✔️'
} else {
Template[2].submenu[0].label = 'Block abysshole skip ❌'
}
let menu = Menu.buildFromTemplate(Template);
Menu.setApplicationMenu(menu);
}
function CustomMenu(mainWindow) {
gameWindow = mainWindow
let menu = Menu.buildFromTemplate(Template)
Menu.setApplicationMenu(menu)
}
function GetBlockSkip() {
return blockSkip
}
module.exports = {Create, CustomMenu, GetBlockSkip}