video.eyny.com highlight 720p video
// ==UserScript== // @name eyny_highlight_720p // @name:zh-CN eyny_highlight_720p // @name:zh-TW eyny_highlight_720p // @namespace eyny_highlight_720p // @supportURL https://github.com/zhuzemin // @description video.eyny.com highlight 720p video // @description:zh-TW video.eyny.com highlight 720p video // @description:zh-CN video.eyny.com highlight 720p video // @include http://video.eyny.com/channel/* // @include http://video.eyny.com/*/playlist?list=* // @include http://video.eyny.com/*/tag/* // @include http://video.eyny.com/playlist?list=* // @include http://video.eyny.com/tag/* // @version 1.21 // @grant GM_xmlhttpRequest // @run-at document-start // @author zhuzemin // @license Mozilla Public License 2.0; http://www.mozilla.org/MPL/2.0/ // @license CC Attribution-ShareAlike 4.0 International; http://creativecommons.org/licenses/by-sa/4.0/ // @connect-src video.eyny.com // ==/UserScript== var config = { 'debug':false } var debug = config.debug ? console.log.bind(console) : function () { }; class ObjectRequest{ constructor(href) { this.method = 'GET'; this.url = href; this.data=null, this.headers = { 'User-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0', //'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8' 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Referer': window.location.href, }; this.charset = 'text/plain;charset=utf8'; this.other=null; } } var count=0; function MainWorker(){ var img_boxs=document.querySelectorAll("td.img_box"); for(var img_box of img_boxs){ var resolution=img_box.querySelectorAll("font")[1].innerText; if(resolution=="720"){ debug("Highlight."); img_box.querySelector('p').className+=" glowbox"; } } } function HandlePlaylist(divs) { debug(count); var img_box=divs[count]; var img_div_width=img_box.querySelector('div.img_div_width'); debug(img_div_width); var img_div_height=img_div_width.querySelector('div.img_div_height'); debug(img_div_height); var href=img_div_height.querySelector("a").href; debug(href); var obj=new ObjectRequest(href); request(obj,function (responseDetails) { var responseText=responseDetails.responseText; var dom = new DOMParser().parseFromString(responseText, "text/html"); var fixwidths=dom.querySelectorAll('div.fixwidth'); debug("fixwidths.length: "+fixwidths.length); if(fixwidths.length==3) { var Playlist = fixwidths[2]; var Sub_img_boxs = Playlist.querySelectorAll("td.img_box"); for (var Sub_img_box of Sub_img_boxs) { var resolution = Sub_img_box.querySelectorAll("font")[1].innerText; if (resolution == "720") { debug("Highlight."); img_box.className += " glowbox"; break; } } } if(count<divs.length){ count++; HandlePlaylist(divs); } }); } var init = function () { debug("init"); CreateStyle(); if(/http:\/\/video\.eyny\.com\/(\w*\/)?tag\//.test(window.location.href)){ var fixwidths=document.querySelectorAll('div.fixwidth'); if(fixwidths.length==4){ var Playlist=fixwidths[2]; var img_boxs=Playlist.querySelectorAll("td.img_box"); debug("img_boxs.length: "+img_boxs.length); HandlePlaylist(img_boxs); } } MainWorker(); } window.addEventListener('DOMContentLoaded', init); function request(object,func) { var retries = 3; debug(object.url); try { GM_xmlhttpRequest({ method: object.method, url: object.url, data: object.data, headers: object.headers, overrideMimeType: object.charset, timeout: 120000, //synchronous: true onload: function (responseDetails) { debug(responseDetails); if (responseDetails.status != 200 && responseDetails.status != 302) { // retry if (retries--) { // *** Recurse if we still have retries setTimeout(request, 2000); return; } } //Dowork func(responseDetails, object.other); }, ontimeout: function (responseDetails) { debug(responseDetails); //Dowork func(responseDetails, object.other); }, ononerror: function (responseDetails) { debug(responseDetails); //Dowork func(responseDetails, object.other); } }) } catch(e){ debug("Error: "+e) } } function CreateStyle(){ debug("Start: CreateStyle"); var style=document.createElement("style"); style.setAttribute("type","text/css"); style.innerHTML=` .glowbox { //background: #4c4c4c; //width: 400px; margin: 40px 0 0 40px; padding: 10px; -moz-box-shadow: 0 0 5px 5px #FFFF00; -webkit-box-shadow: 0 0 5px 5px #FFFF00; box-shadow: 0 0 5px 5px #FFFF00; } `; debug("Processing: CreateStyle"); var head=document.querySelector("head"); head.insertBefore(style,null); debug("End: CreateStyle"); }