Improved support for Linux

This commit is contained in:
Markil3
2021-09-04 15:11:36 -06:00
parent 5e4ae23978
commit c24d6c2367
11 changed files with 297 additions and 174 deletions

View File

@@ -0,0 +1,111 @@
console.debug("Loading youtube.js")
var video;
function onload()
{
video = document.getElementsByClassName('video-stream html5-main-video')[0];
statusUpdate = e => {
return onStatusUpdate(getState(), e.srcElement.currentTime, getSongData());
};
// video.addListener("timeupdate", statusUpdate);
// video.addListener("play", statusUpdate);
// video.addListener("pause", statusUpdate);
// video.addListener("ended", statusUpdate);
video.ontimeupdate = statusUpdate;
video.onplay = statusUpdate;
video.onpause = statusUpdate;
video.onended = statusUpdate;
}
function getSongData()
{
return {
type: "edu.regis.universeplayer.browser.InternetSong",
location: "window.location.href",
title: getTitle(),
artists: getArtists(),
trackNum: 0,
discNum: 0,
duration: parseInt(getLength() * 1000),
album: null
}
}
function getState()
{
if (!video)
{
return "EMPTY";
}
else if (video.ended)
{
return "FINISHED";
}
else if (video.paused)
{
return "PAUSED";
}
else
{
return "PLAYING";
}
}
function getTime()
{
return video.currentTime;
}
function getLength()
{
return video.duration;
}
function getTitle()
{
return document.getElementsByTagName("meta").title.content;
}
function getArtists()
{
return [document.getElementById("channel-name").getElementsByTagName("a")[0].text];
}
function play()
{
if (video != null)
{
video.play();
return true;
}
return false;
}
function pause()
{
if (video != null)
{
video.pause();
return true;
}
return false;
}
function seek(time)
{
if (video != null)
{
video.currentTime = time;
return true;
}
return false;
}
if (document.readyState === "complete")
{
onload();
}
else
{
window.addEventListener("load", onload);
}