-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
123 lines (110 loc) · 3.13 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
'use strict';
const { app, BrowserWindow, globalShortcut, Menu, MenuItem, Tray, shell } = require("electron");
const isMac = process.platform === 'darwin';
let win = null,
tray = null,
contextMenu = null,
showItem = null,
hideItem = null,
hidden = false;
function Init() {
// Create Window
win = new BrowserWindow({
icon: `${__dirname}/images/plexwrap.ico`,
frame: false,
transparent: false,
width: 1280,
height: 720,
webPreferences: {
enableRemoteModule: true,
nodeIntegration: true,
webviewTag: true,
},
});
win.loadFile("index.html");
win.webContents.on('new-window', function(e, url) {
e.preventDefault();
require('electron').shell.openExternal(url);
});
// Events
win.on("hide", () => { hidden = true; });
win.on("show", () => { hidden = false; });
// Create Tray Menu
tray = new Tray(`${__dirname}/images/${ isMac ? "tray-square-mac.png" : "tray-square.png"}`);
contextMenu = new Menu();
contextMenu.append(new MenuItem({
label: "Plex Wrap",
icon: `${__dirname}/images/github.png`,
click: () => {
shell.openExternal("https://github.com/oceanity/plexwrap");
}
}));
contextMenu.append(new MenuItem({
label: "by @Oceanity",
icon: `${__dirname}/images/twitter.png`,
click: () => {
shell.openExternal("https://twitter.com/oceanity");
}
}));
contextMenu.append(new MenuItem({ type: "separator" }));
contextMenu.append(new MenuItem({
label: "Reload",
accelerator: "CommandOrControl+R",
click: () => {
win.reload();
}
}));
contextMenu.append(new MenuItem({ type: "separator" }));
contextMenu.append(new MenuItem({
label: "Quit Plex Wrap",
role: "quit"
}));
tray.setToolTip("PlexWrap");
tray.setContextMenu(contextMenu);
tray.on("click", TrayClick);
// Register Global Shortcuts
globalShortcut.register("VolumeUp", () => {
console.log("[Volume Up]");
});
globalShortcut.register("VolumeDown", () => {
console.log("[Volume Down]");
});
globalShortcut.register("VolumeMute", () => {
console.log("[Volume Mute]");
});
globalShortcut.register("MediaStop", () => {
console.log("[Stop]");
});
globalShortcut.register("MediaPlayPause", () => {
console.log("[Play/Pause]");
});
globalShortcut.register("MediaNextTrack", () => {
console.log("[Next Track]");
});
globalShortcut.register("MediaPreviousTrack", () => {
console.log("[Previous Track]");
});
}
// Tray Click
function TrayClick() {
if (!isMac) {
if (hidden) {
win.show();
}
if (!win.isFocused()) {
win.focus();
}
}
}
app.whenReady().then(Init);
app.on("window-all-closed", () => {
if (process.platform !== "darwin") {
tray.destroy();
app.quit();
}
});
app.on("activate", () => {
if (BrowserWindow.getAllWindows().length === 0) {
Init();
}
});