Skip to content

Commit

Permalink
Fixed Discord Rich Presence, added speed modifier, ads play at 16x speed
Browse files Browse the repository at this point in the history
  • Loading branch information
KyzaGitHub committed Jul 29, 2019
1 parent 10baef4 commit b02a270
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 12 deletions.
56 changes: 52 additions & 4 deletions index.css
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ body {

#toolbar.toolbar-closed>.toolbar-button {
opacity: 0;
height: 4px !important;
height: 0px !important;
line-height: 10px;
transition-duration: 0.5s;
}
Expand Down Expand Up @@ -92,17 +92,65 @@ body {
}

#playback-speed-button {
background-color: red;
min-width: 150px;
}

#playback-speed-button-icon {
background-image: url("https://image.flaticon.com/icons/svg/2/2204.svg");
width: 40%;
height: 100%;
left: 0px;
filter: invert(0%) !important;
background-position: center;
background-size: 30px;
background-repeat: no-repeat;
background-image: url("https://image.flaticon.com/icons/svg/2/2204.svg");
}

#playback-speed-button-input {
transform: translateX(66.66%) translateY(-100%);
float: left;
width: 60%;
height: 100%;
border: none;
}


#playback-speed-button-input>button {
float: right;
background-color: transparent;
width: 35%;
height: 100%;
border: none;
transition-duration: 1s;
}

/* Inputs can't resize to 0px. */
#toolbar.toolbar-closed #playback-speed-button-input>* {
display: none !important;
}

#playback-speed-button-input > input:focus {
#playback-speed-button-input>input {
background-color: transparent;
text-align: center;
width: 30%;
height: 100%;
border: none;
transition-duration: 1s;
}

#playback-speed-button-input>input:hover {
background-color: rgba(0, 0, 0, 0.2) !important;
}

#playback-speed-button-input>button:hover {
background-color: rgba(0, 0, 0, 0.2) !important;
}

#playback-speed-button-input>input:focus, #playback-speed-button-input>button:focus {
outline: none;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
display: none;
}
18 changes: 12 additions & 6 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@
<div id="playback-speed-button" class="toolbar-button">
<div id="playback-speed-button-icon"></div>
<div id="playback-speed-button-input">
<input type="number" value="1.0" min="0.1" max="2.0" step="0.1" />
<input type="number" value="1" min="0.1" max="2.0" step="0.1" />
<button onclick="this.parentElement.querySelector('input').stepUp()">></button>
<button onclick="this.parentElement.querySelector('input').stepDown()"><</button>
</div>
</div>
</div>
Expand Down Expand Up @@ -103,9 +105,11 @@
document.querySelector("video").playbackRate = ` + speed + `;
`);
}
var playbackSpeed = 1.5;
var playbackSpeedButtonInput = $("#playback-speed-button-input>input");
// Using an interval instead so I don't have to use IPC again.
// Might optimize this later.
setInterval(() => {
setPlayerSpeed(playbackSpeed);
setPlayerSpeed(playbackSpeedButtonInput.val());
}, 1000);

var progressWin;
Expand Down Expand Up @@ -376,7 +380,7 @@

// Mirror all console messages to the main page's console.
webview.on('console-message', (e) => {
console.log("Webview:\n" + e.message);
// console.log("Webview:\n" + e);
});

var firstLoad = true;
Expand Down Expand Up @@ -410,7 +414,8 @@
webview.on("did-stop-loading", loadStop);


webview.on("ipc-message", function(e) {
webview[0].addEventListener("ipc-message", function(e) {
console.log("RE");
if (e.channel === "window-data") {
var webviewDOM = $(document.createElement("html"));
webviewDOM.html(e.args[0].html);
Expand Down Expand Up @@ -442,7 +447,7 @@
} catch (e) {}
}

selectedElement = webviewDOM.querySelector("#play-pause-button");
selectedElement = webviewDOM[0].querySelector("#play-pause-button");
if (selectedElement) {
songPaused = (selectedElement.title == "Play" ? true : false);
if (songName.trim() == "" || songAuthor.trim() == "") {
Expand Down Expand Up @@ -490,6 +495,7 @@
sendRPData();

setInterval(() => {
console.log(songPaused);
sendRPData();
}, 15e3);
</script>
Expand Down
5 changes: 3 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,9 @@ function openFile(filePath, delay, tries, currentTry) {
const client = require('discord-rich-presence')('602320411216052240');

ipcMain.on("rich-presence-data", (event, arg) => {
console.log(arg);
dialog.showMessageBox({
'message': JSON.stringify(arg, null, 2)
});
setRPData(arg);
setActivity();
});
Expand All @@ -212,7 +214,6 @@ var songPaused = false;
var lookingForSong = false;

function setActivity() {
console.log(songPaused);
if (!songPaused) {
client.updatePresence({
state: songAuthor,
Expand Down
19 changes: 19 additions & 0 deletions preload.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,22 @@ function sendPageData() {

ipcRenderer.sendToHost("window-data", data);
}

var setSpeedBack = false;
setInterval(() => {
var adIcon = document.querySelector("span.advertisement.ytmusic-player-bar");
if (!adIcon.hasAttribute("hidden")) {
// Set the advertisement speed.
if (document.querySelector("video")) {
document.querySelector("video").playbackRate = 16;
}
// Mute the advertisement.
// if () {
// I actually can't find enough advertisements to test anything.
// }
setSpeedBack = false;
} else if (!setSpeedBack) {
document.querySelector("video").playbackRate = 0;
setSpeedBack = true;
}
}, 100);

0 comments on commit b02a270

Please sign in to comment.