您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
When clicking like/dislike add data about them to localStorage, then color links.
// ==UserScript== // @name Youtube show likes and dislikes! // @namespace Vamael // @description When clicking like/dislike add data about them to localStorage, then color links. // @include https://www.youtube.com/* // @include https://youtube.com/* // @include http://www.youtube.com/* // @include http://youtube.com/* // @version 1.03 // @grant none // @require https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js // ==/UserScript== if (window.top === window.self) { try{ //var date = new Date; //console.log("Page loaded at " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds()); var vidID = youtube_parser(window.location.href); addEventListeners(); ifAlreadyLiked(); applyColors(); } catch(e){ alert("Error!\n" + e); } } function addEventListeners(){ $(document) .on('click', ".like-button-renderer-like-button-unclicked", function(){ //console.log("Pressed like"); setData('add','like'); }) .on('click', ".like-button-renderer-like-button-clicked", function(){ //console.log("Pressed liked like"); setData('remove'); }) .on('click', ".like-button-renderer-dislike-button-unclicked", function(){ //console.log("Pressed dislike"); setData('add','dislike'); }) .on('click', ".like-button-renderer-dislike-button-clicked", function(){ //console.log("Pressed disliked dislike"); setData('remove'); }); } function ifAlreadyLiked(){ if(document.getElementsByClassName('like-button-renderer-like-button-clicked').length > 0){ if(window.getComputedStyle(document.getElementsByClassName('like-button-renderer-like-button-clicked')[0]).getPropertyValue("display") != 'none'){ setData('add','like'); } else if(window.getComputedStyle(document.getElementsByClassName('like-button-renderer-dislike-button-clicked')[0]).getPropertyValue("display") != 'none'){ setData('add','dislike'); } } } function setData(whatDo, type){ switch(whatDo){ case "add": if(type == 'like'){ localStorage[vidID] = 'like'; } else{ localStorage[vidID] = 'dislike'; } break; case "remove": localStorage.removeItem(vidID); break; } } function applyColors(){ $('#watch7-sidebar a, #player-playlist a, #browse-items-primary a, #results a').filter(function() { return this.href.match(/watch/); }).each(function(){ var id = youtube_parser($(this).attr("href")); if(localStorage[id]){ if(localStorage[id] == 'like'){ $(this).attr("style","background-color:rgba(0,255,0,0.2) !important"); } else{ $(this).attr("style","background-color:rgba(255,0,0,0.2) !important"); } } else{ $(this).css("background-color",''); } }); } function youtube_parser(url){ var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/; var match = url.match(regExp); return (match&&match[7].length==11)? match[7] : false; } var s_ajaxListener = new Object(); s_ajaxListener.tempOpen = XMLHttpRequest.prototype.open; s_ajaxListener.tempSend = XMLHttpRequest.prototype.send; s_ajaxListener.callback = function () { // this.method :the ajax method used // this.url :the url of the requested script (including query string, if any) (urlencoded) // this.data :the data sent, if any ex: foo=bar&a=b (urlencoded) if(this.method == "POST"){ applyColors(); } else if(this.url.substring(0,12) == '/browse_ajax'){ setTimeout(function(){ applyColors(); },5000); } } XMLHttpRequest.prototype.open = function(a,b) { if (!a) var a=''; if (!b) var b=''; s_ajaxListener.tempOpen.apply(this, arguments); s_ajaxListener.method = a; s_ajaxListener.url = b; if (a.toLowerCase() == 'get') { s_ajaxListener.data = b.split('?'); s_ajaxListener.data = s_ajaxListener.data[1]; } } XMLHttpRequest.prototype.send = function(a,b) { if (!a) var a=''; if (!b) var b=''; s_ajaxListener.tempSend.apply(this, arguments); if(s_ajaxListener.method.toLowerCase() == 'post')s_ajaxListener.data = a; s_ajaxListener.callback(); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址