2019-10-19 04:30:26 +00:00
|
|
|
function removeBloat(webview) {
|
2019-10-21 00:24:24 +00:00
|
|
|
console.log("removing bloat")
|
2019-10-19 19:46:52 +00:00
|
|
|
webview.executeJavaScript(`document.getElementsByClassName("anchor-3Z-8Bb anchorUnderlineOnHover-2ESHQB")[0].remove();`) // Remove top-right help button
|
|
|
|
webview.executeJavaScript(`document.getElementsByClassName("contents-18-Yxp button-3AYNKb button-2vd_v_")[0].remove();`) // Remove gift from chat
|
2019-10-21 00:24:24 +00:00
|
|
|
webview.executeJavaScript(`document.getElementsByClassName("noticeDefault-362Ko2 notice-2FJMB4 size14-3iUx6q height36-36OHCc")[document.getElementsByClassName("noticeDefault-362Ko2 notice-2FJMB4 size14-3iUx6q height36-36OHCc").length - 1].remove();`) // Remove "get push to talk" top notification
|
|
|
|
webview.executeJavaScript(`document.getElementsByClassName("channelNotice-1-XFjC invite-OjTXrW")[document.getElementsByClassName("channelNotice-1-XFjC invite-OjTXrW").length - 1].remove();`) // Remove "invite people" notification
|
2019-10-19 04:30:26 +00:00
|
|
|
}
|
|
|
|
|
2019-10-19 18:51:08 +00:00
|
|
|
function muteMic(webview){
|
|
|
|
console.log("not talking")
|
|
|
|
webview.sendInputEvent({keyCode: 'Backspace', type: 'keyUp'});
|
|
|
|
webview.sendInputEvent({keyCode: 'Backspace', type: 'char'});
|
|
|
|
}
|
|
|
|
|
2019-10-14 19:23:56 +00:00
|
|
|
onload = () => {
|
|
|
|
const webview = document.querySelector('webview')
|
2019-10-19 18:51:08 +00:00
|
|
|
let muteTimeout = null
|
2019-10-15 00:35:25 +00:00
|
|
|
|
2019-10-20 03:38:47 +00:00
|
|
|
// Insert JS to detect when discord finishes loading
|
2019-10-16 20:52:33 +00:00
|
|
|
webview.addEventListener('did-finish-load', function() {
|
2019-10-20 03:38:47 +00:00
|
|
|
webview.executeJavaScript(`
|
|
|
|
let dlButton = document.getElementsByClassName("listItem-2P_4kh");
|
|
|
|
t = setInterval(function(){
|
|
|
|
if(dlButton.length != 0) {
|
|
|
|
console.log("discord-load-complete")
|
|
|
|
clearInterval(t)
|
|
|
|
}else {
|
|
|
|
console.log("waiting for load")
|
|
|
|
}
|
|
|
|
}, 500);
|
|
|
|
`)
|
|
|
|
});
|
2019-10-15 00:35:25 +00:00
|
|
|
|
2019-10-20 03:38:47 +00:00
|
|
|
// Send commands to preload.js
|
|
|
|
webview.addEventListener('console-message', (e) => {
|
2019-10-14 19:59:30 +00:00
|
|
|
if (e.message === "Constructed RTCPeerConnection") {
|
|
|
|
console.log("Connected to server")
|
2019-10-21 00:24:24 +00:00
|
|
|
removeBloat(webview)
|
2019-10-20 03:38:47 +00:00
|
|
|
window.postMessage({ type: "connected"}, "*")
|
2019-10-14 19:59:30 +00:00
|
|
|
}
|
2019-10-14 19:23:56 +00:00
|
|
|
|
|
|
|
if (e.message === "Close RTCPeerConnection") {
|
|
|
|
console.log("Disconnected from server")
|
2019-10-20 03:38:47 +00:00
|
|
|
window.postMessage({ type: "disconnected"}, "*")
|
2019-10-14 19:23:56 +00:00
|
|
|
}
|
2019-10-16 20:52:33 +00:00
|
|
|
|
2019-10-19 04:30:26 +00:00
|
|
|
if (e.message === "muted") {
|
|
|
|
console.log("Self Muted in Discord")
|
2019-10-21 00:24:24 +00:00
|
|
|
removeBloat(webview)
|
2019-10-20 03:38:47 +00:00
|
|
|
window.postMessage({ type: "self-muted"}, "*")
|
2019-10-19 04:30:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if (e.message === "unmuted") {
|
2019-10-20 03:38:47 +00:00
|
|
|
console.log("Self Un-Muted in Discord")
|
2019-10-21 00:24:24 +00:00
|
|
|
removeBloat(webview)
|
2019-10-20 03:38:47 +00:00
|
|
|
window.postMessage({ type: "self-unmuted"}, "*")
|
2019-10-19 04:30:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if (e.message === "signalingState => stable, negotiation needed: false") {
|
|
|
|
console.log("Mute/Unmute")
|
|
|
|
removeBloat(webview)
|
|
|
|
webview.executeJavaScript(`
|
|
|
|
if (document.querySelectorAll('[aria-label="Mute"]').length === 0){
|
|
|
|
console.log("muted")
|
|
|
|
}else {
|
|
|
|
console.log("unmuted")
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
}
|
|
|
|
|
2019-10-19 19:46:52 +00:00
|
|
|
// To be finished
|
2019-10-19 04:30:26 +00:00
|
|
|
if (e.message === "DOM changed") {
|
|
|
|
removeBloat(webview)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Execute JS into the webview after login
|
2019-10-16 20:52:33 +00:00
|
|
|
if (e.message === "discord-load-complete") {
|
2019-10-19 19:46:52 +00:00
|
|
|
webview.executeJavaScript(`document.getElementsByClassName("listItem-2P_4kh")[document.getElementsByClassName("listItem-2P_4kh").length - 1].remove();`) // Remove download button
|
2019-10-19 04:30:26 +00:00
|
|
|
removeBloat(webview)
|
2019-10-16 20:52:33 +00:00
|
|
|
}
|
2019-10-14 19:23:56 +00:00
|
|
|
})
|
|
|
|
|
2019-10-20 03:38:47 +00:00
|
|
|
// Accept commands from preload.js
|
|
|
|
window.addEventListener(
|
|
|
|
"message",
|
|
|
|
event => {
|
|
|
|
if (event.origin === "file://" && event.source === window) {
|
2019-10-15 06:21:54 +00:00
|
|
|
|
2019-10-20 03:38:47 +00:00
|
|
|
if (event.data.type === "devMode" && event.data.text === "true") {
|
|
|
|
webview.openDevTools()
|
|
|
|
}
|
2019-10-15 00:35:25 +00:00
|
|
|
|
2019-10-20 03:38:47 +00:00
|
|
|
if (event.data.type === 'micOpen'){
|
|
|
|
clearTimeout(muteTimeout) // Cancel mic-off incase of accidental double-tap
|
|
|
|
console.log("talking")
|
|
|
|
webview.sendInputEvent({keyCode: 'Backspace', type: 'keyDown'});
|
|
|
|
webview.sendInputEvent({keyCode: 'Backspace', type: 'char'});
|
|
|
|
}
|
|
|
|
|
|
|
|
if (event.data.type === 'micClose'){
|
|
|
|
muteTimeout = setTimeout(() => muteMic(webview), 1000); // 1 second threshold incase of accidental double-click or release so the user doesn't cut-out
|
|
|
|
}
|
2019-10-15 06:21:54 +00:00
|
|
|
|
2019-10-20 03:38:47 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
false
|
|
|
|
)
|
|
|
|
}
|