From 289dedc153c22a5f0abf618163b51338a7088929 Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Fri, 10 Jun 2016 17:11:43 +0200 Subject: [PATCH] Added support for tracklists --- MLButton.user.js | 113 +++++++++++++++++++++++++++++++---------------- 1 file changed, 76 insertions(+), 37 deletions(-) diff --git a/MLButton.user.js b/MLButton.user.js index 369d8ae..b6cab44 100644 --- a/MLButton.user.js +++ b/MLButton.user.js @@ -1,74 +1,113 @@ // ==UserScript== // @name MonsterLyrics button // @namespace https://github.com/NorbiPeti/ -// @version 0.5 +// @version 0.6 // @description Creates a button that searches for a lyrics video! // @author NorbiPeti -// @match https://www.youtube.com/watch* -// @include http://www.youtube.com/watch* +// @match https://www.youtube.com/* +// @include http://www.youtube.com/* // @include https://www.twitch.tv/Monstercat* // @include https://live.monstercat.com/* // @grant none // ==/UserScript== window.lasttitle=""; -window.addtries=0; -window.twitchmsg=""; -function Add() { +function AddYouTube(addtries) { var title=document.getElementById("eow-title"); if(title!==null) title=title.title; + if(title!==null && (title.indexOf("Podcast")!=-1 || title.indexOf("Album")!=-1)) + { + var text=document.getElementById("eow-description").innerText; + var regexp=/(\d{1,2}(?::\d{1,2})+) (.+) - (.+)/g; + var currenttime=document.getElementsByClassName("video-stream html5-main-video")[0].currentTime; + /*var ctime=0; + if(currenttime.length==3) + { + ctime=currenttime[0]*3600; + ctime+=currenttime[1]*60; + ctime+=currenttime[2]*1; + } + else if(currenttime.length==2) + { + ctime=currenttime[0]*60; + ctime=currenttime[1]*1; + }*/ + var match = regexp.exec(text); + var lastmatch=match; + var lasttime=0; + while(match!==null) + { + var spl=match[1].split(":"); + var time=0; + if(spl.length==3) + { + time=spl[0]*3600; + time+=spl[1]*60; + time+=spl[2]*1; + } + else if(spl.length==2) + { + time=spl[0]*60; + time=spl[1]*1; + } + //console.log("Time: "+time+" CTime: "+currenttime+" LastTime: "+lasttime); + if(time>currenttime && lasttimeLyrics video"; - console.log("!"); - //window.lasturl=window.location.href; //TODO: Show Lyrics button + //TODO: Show Lyrics button } -function AddIfChanged() -{ - var namecont=document.getElementById("watch7-user-header"); - var namecontTwitch=document.getElementsByClassName("chat-line"); - var Twitch=null; +function AddTwitch() { + var twitchmsg=null; for(var i=namecontTwitch.length-1; i>=0; i--) //Reminder: Don't put i++ in a supposedly decrementing loop... It's hard to debug { if(typeof namecontTwitch[i] != 'undefined' && namecontTwitch[i].getElementsByClassName("from")[0].innerHTML=="Monstercat") { - Twitch=namecontTwitch[i].getElementsByClassName("message")[0]; + twitchmsg=namecontTwitch[i].getElementsByClassName("message")[0]; break; } } if((namecont===null || namecont.innerHTML.indexOf("Monstercat")==-1) && (Twitch===null)) return; - if(window.location.href==window.lasturl) + var cont=""; //TODO + if(cont===null) return; + if(twitchmsg!==null && twitchmsg!=="") + window.lasttitle=twitchmsg.innerHTML.replace("Now Playing: ", "").replace(/ \- Listen now: .+/g, ""); if(document.getElementById("mlbutton")!==null) return; - window.twitchmsg=Twitch; - var cont=document.getElementById("watch7-subscription-container"); - if(cont===null && Twitch===null) - return; - window.setTimeout(Add, 100); + cont.innerHTML+=""; + console.log("!"); +} + +function AddIfChanged() //...and update track text +{ + if(window.location.href.indexOf("youtube.com")!=-1) + window.setTimeout(function(){AddYouTube(0);}, 100); + else if(window.location.href.indexOf("live.monstercat.com")!=-1 || window.location.href.indexOf("twitch.tv")!=-1) + window.setTimeout(function(){AddTwitch();}, 100); } //TODO: Add for every platform, not just YouTube and add tracklist support (function() {