您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
make Youtube under ur control
当前为
// ==UserScript== // @name u-Youtube // @name:zh-CN 功夫制霸YouTube // @name:en u-Youtube // @name:ua u-Youtube // @name:ja カンフー支配YouTube // @name:ko 쿵푸 지배YouTube // @name:it u-Youtube // @name:de u-Youtube // @name:fr u-Youtube // @namespace https://github.com/rasso1/u-Youtube // @version 0.981 // @description make Youtube under ur control // @description:en make Youtube under ur control // @description:ja あなたのコントロール下でYouTubeを作る // @description:ko 유튜브를 당신의 통제하에 두십시오 // @description:it rendi youtube sotto il tuo controllo // @description:de Machen Sie YouTube unter Ihrer Kontrolle // @description:fr faire de youtube sous votre contrôle // @author ok! // @match https://www.youtube.com/* // @run-at document-start // @contributionURL https://paypal.me/kongfuY // ==/UserScript== (function() { 'use strict'; var sec_sub,sec_fwd,wheel_sec,buffer_time,dark_mode,video_quality,video_speed,english_mode; var expand_description = 1; var youtube_hand = { dark_eye:function (){ if(localStorage.getItem('dark_mode')==1){ document.querySelector("html").setAttribute("dark",true); //document.querySelector("html").setAttribute("contentEditable",true); } else if(document.querySelector("html").hasAttribute("dark")) {document.querySelector("html").removeAttribute("dark")} }, dark_eye1:function (){ if(localStorage.getItem('dark_mode')==1){ var style_type = document.createElement("style");style_type.id = "style_type"; style_type.innerHTML = `#end > div.dropdown-hover > div{font-size:12px;color:#bbb !important;background-color:#202020 !important;} #end > div.dropdown-hover > button{background-color:#222 !important;} #end > div.dropdown-hover path{fill:transparent !important;stroke:white !important;} #end > div.dropdown-hover > div > div{color:#aaa !important;background-color:#202020 !important;} #end > div.dropdown-hover > div > div p{font-size:12px;color:#bbb !important;background-color:#202020 !important;} .dropdown-hover button div{font-size:12px;color:#aaa !important;background-color:#333 !important;} #sec_sub,#sec_fwd,#wheel_sec,#buffer_time{font-size:12px;color:#bbb !important;background-color:#333 !important;border-radius:5px;}`; document.head.appendChild(style_type); } }, //播放设置 play_menu:function(){ var html_app = document.createElement("div"); html_app.innerHTML = ` <button style="border:none;outline:none;background-color:#fff;height:37px;width:37px;margin-right:10px;" aria-label="缓存/速度设置"><svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" style="pointer-events: none; display: block; width: 100%; height: 100%;"><g class="style-scope yt-icon"> <path d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.1-1.65c.2-.15.25-.42.13-.64l-2-3.46c-.12-.22-.4-.3-.6-.22l-2.5 1c-.52-.4-1.08-.73-1.7-.98l-.37-2.65c-.06-.24-.27-.42-.5-.42h-4c-.27 0-.48.18-.5.42l-.4 2.65c-.6.25-1.17.6-1.7.98l-2.48-1c-.23-.1-.5 0-.6.22l-2 3.46c-.14.22-.08.5.1.64l2.12 1.65c-.04.32-.07.65-.07.98s.02.66.06.98l-2.1 1.65c-.2.15-.25.42-.13.64l2 3.46c.12.22.4.3.6.22l2.5-1c.52.4 1.08.73 1.7.98l.37 2.65c.04.24.25.42.5.42h4c.25 0 .46-.18.5-.42l.37-2.65c.6-.25 1.17-.6 1.7-.98l2.48 1c.23.1.5 0 .6-.22l2-3.46c.13-.22.08-.5-.1-.64l-2.12-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z" fill="transparent" stroke="black"></path> </g></svg> </button> <div style="background:#fff;border-radius: 10px;left: -160px;right: 0;margin-left: 0;margin-right: -100px;padding-top: 10px;" class="dropdown-box fadeInDown"><div class="item clearfix" style="border-radius:10px;"><p style="margin:10px auto;font-size:18px;"><span class="mandarin invisible">播放设置 </span><span class="english">Playback Setting </span><font size=2>Chs </font><input style="margin:auto" id="english_mode" class="switch switch-anim" type="checkbox" checked></p> <div style="margin:10px auto;font-size:12px;"><hr /><hr /></div> <p style="margin:10px auto;font-size:16px;"><span class="mandarin invisible" style="margin:10px auto;font-size:16px;">当前速度: </span><span class="english">current speed: </span><span id="speed_display"></span></p> <p style="margin:10px auto;font-size:16px;"><span class="mandarin invisible">选择播放速度: </span><span class="english">specify speed: </span><button id="speed_button" style="background-color: #5bb7fe;border-radius:5px;color:white;font-size:12px;"> 1x </button></p><input type="range" min="0" max="100" value="25" class="slider" id="speed_slider"><br /><br /> <p style="margin:10px auto;font-size:16px;"><span class="mandarin invisible">跳过片头秒数: </span><span class="english">skip the title: </span><input type="text" id="sec_fwd" style="width:40px;height:12px;vertical-align: middle;padding: 5px;background-color:#fff;border: 2px solid #ddd;border-radius:5px;font-size:12px;" placeholder="seconds"> <p style="margin:10px auto;font-size:16px;"><span class="mandarin invisible">跳过片尾秒数: </span><span class="english">skip the end: </span><input type="text" id="sec_sub" style="width:40px;height:12px;vertical-align: middle;padding: 5px;background-color: #fff;border: 2px solid #ddd;border-radius:5px;font-size:12px;" placeholder="seconds"></p> <p style="margin:10px auto;font-size:16px;"><span class="mandarin invisible">鼠标滚动秒数: </span><span class="english">mouse scroll: </span><input type="text" id="wheel_sec" style="width:40px;height:12px;vertical-align: middle;padding: 5px;background-color: #fff;border: 2px solid #ddd;border-radius:5px;font-size:12px;" placeholder="seconds"></p> <p style="margin:10px auto;font-size:16px;"><span class="mandarin invisible">暂停缓存秒数: </span><span class="english">pause n cashing: </span><input type="text" id="buffer_time" style="width:40px;height:12px;vertical-align: middle;padding: 5px;background-color: #fff;border: 2px solid #ddd;border-radius:5px;font-size:12px;" placeholder="seconds"></p> <p style="margin:10px auto;font-size:16px;"><span class="mandarin invisible">播放质量: </span> <span class="english">specify resolution </span> <select id="video_quality" style="border-radius:5px;"><option value="auto">auto</option><option value="hd2160">4K 2160p</option><option value="hd1440">HD 1440p</option><option value="hd1080">HD 1080p</option><option value="hd720">720p</option> <option value="large">480p</option><option value="medium">360p</option><option value="small">240p</option><option value="tiny">144p</option> </select></p> <p style="margin:10px auto 20px auto;font-size:16px;"><span class="mandarin invisible">暗夜模式 : </span><span class="english">dark mode: </span><input style="margin:auto" id="dark_mode" class="switch switch-anim" type="checkbox" checked></p> <p style="margin:10px auto 20px auto;font-size:16px;"><span class="mandarin invisible">心意捐赠: </span><span class="english">donate: </span><a href="https://paypal.me/kongfuY" style="color:#5bb7fe;">paypal.me/kongfuY</a></p></div></div> <style>#speed_slider {width: 175px;}.invisible {display: none;}.ytd-feed-filter-chip-bar-renderer.style-scope{z-index:999 !important;}.fadeInDown{-webkit-animation:fadeInDown .5s .2s ease both;-moz-animation:fadeInDown .5s .2s ease both}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-moz-keyframes fadeInDown{0%{opacity:0;-moz-transform:translateY(-10px)}100%{opacity:1;-moz-transform:translateY(0)}}.dropdown{position:relative}.dropdown-box{display:none;position:absolute;z-index:9999999999}.dropdown-box.top{bottom:100%;padding-bottom:10px;left:50%;margin-left:-80px}.dropdown-box.bottom{top:100%;padding-top:10px;left:50%;margin-left:-80px}.dropdown-box.left{left:100%;padding-left:10px;bottom:0}.dropdown-box.right{right:100%;padding-right:10px;bottom:0}.dropdown-box .item{padding:10px;width:250px;border-radius:2px}.dropdown-hover{position:relative}.dropdown-hover:hover .dropdown-box{display:block}</style> <style>a {color: #670000;}.switch {width: 26px;height: 13px;position: relative;border: 1px solid #dfdfdf;background-color: #fdfdfd;box-shadow: #dfdfdf 0 0 0 0 inset; border-radius: 18px;background-clip: content-box;display: inline-block;-webkit-appearance: none;user-select: none;outline: none;} .switch:before { content: '';width: 13px;height: 13px;position: absolute;top: 0;left: 0;border-radius: 12px;background-color: #fff;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);}.switch:checked {border-color: #5bb7fe;box-shadow: #5bb7fe 0 0 0 16px inset;background-color: #5bb7fe;}.switch:checked:before {left: 15px;}.switch.switch-anim {transition: border cubic-bezier(0, 0, 0, 1) 0.4s, box-shadow cubic-bezier(0, 0, 0, 1) 0.4s;}.switch.switch-anim:before {transition: left 0.3s;}.switch.switch-anim:checked {box-shadow: #5bb7fe 0 0 0 14px inset;background-color: #5bb7fe;transition: border ease 0.4s, box-shadow ease 0.4s, background-color ease 1.2s;}.switch.switch-anim:checked:before {transition: left 0.3s;}.text-red {color: #aaa;}</style> `; html_app.classList.add('dropdown-hover'); document.querySelector("#end").appendChild(html_app); // var speed_display=document.getElementById("speed_display"),speed_slider=document.getElementById("speed_slider"),speed_button=document.getElementById("speed_button"), y=document.getElementById("sec_sub"),z=document.getElementById("wheel_sec"),x=document.getElementById("buffer_time"),w=document.getElementById("dark_mode"), s=document.getElementById("video_quality"),v=document.getElementById("sec_fwd"),t=document.getElementById("english_mode"); dark_mode = localStorage.getItem('dark_mode');var english_mode = localStorage.getItem('english_mode'); const mandarins = document.querySelectorAll('.mandarin');const englishs = document.querySelectorAll('.english'); video_speed = localStorage.getItem('speed');sec_fwd = localStorage.getItem('sec_fwd');sec_sub = localStorage.getItem('sec_sub'); wheel_sec = localStorage.getItem('wheel_sec');buffer_time = localStorage.getItem('buffer_time');video_quality = localStorage.getItem('video_quality'); english_mode = localStorage.getItem('english_mode'); //判读英文菜单 if(localStorage.getItem('english_mode')==1){ for (const mandarin of mandarins) { mandarin.className -= ' invisible'; } for (const english of englishs) { english.className += ' invisible'; } } video_speed?speed_display.innerHTML=video_speed+"x":speed_display.innerHTML="1x"; setTimeout(function (){ if(video_speed&&document.querySelector('#movie_player')) document.querySelector("#movie_player > div.html5-video-container > video").playbackRate = video_speed;},4000); speed_slider.value = localStorage.getItem('speed')*25; speed_slider.oninput=function(){localStorage.setItem('speed',this.value/25);video_speed = localStorage.getItem('speed');video_speed?speed_display.innerHTML=video_speed+"x":speed_display.innerHTML="1x"; document.querySelector("#movie_player > div.html5-video-container > video").playbackRate = video_speed; } speed_button.onclick=function(){localStorage.setItem('speed',1);video_speed = localStorage.getItem('speed');video_speed?speed_display.innerHTML=video_speed+"x":speed_display.innerHTML="1x"; document.querySelector("#movie_player > div.html5-video-container > video").playbackRate = video_speed; speed_slider.value = localStorage.getItem('speed')*25; } sec_fwd?v.value=sec_fwd:v.value=""; v.onchange=function(){localStorage.setItem('sec_fwd',this.value);sec_fwd = localStorage.getItem('sec_fwd');sec_fwd?v.value=sec_fwd:v.value=""; } sec_sub?y.value=sec_sub:y.value=""; y.onchange=function(){localStorage.setItem('sec_sub',this.value);sec_sub = localStorage.getItem('sec_sub');sec_sub?y.value=sec_sub:y.value=""; } wheel_sec?z.value=wheel_sec:z.value=""; z.onchange=function(){localStorage.setItem('wheel_sec',this.value);wheel_sec = localStorage.getItem('wheel_sec');wheel_sec?z.value=wheel_sec:z.value=""; } buffer_time?x.value=buffer_time:x.value=""; x.onchange=function(){localStorage.setItem('buffer_time',this.value);buffer_time = localStorage.getItem('buffer_time');buffer_time?x.value=buffer_time:x.value=""; } w.checded=dark_mode; if(dark_mode!=1){document.getElementById("dark_mode").removeAttribute('checked');} w.onchange=function(){if(w.checked){localStorage.setItem('dark_mode','1');youtube_hand.dark_eye();youtube_hand.dark_eye1();} else{localStorage.setItem('dark_mode',0); document.querySelector("html").removeAttribute("dark"); document.querySelector('#style_type').remove(); } dark_mode = localStorage.getItem('dark_mode'); } t.checded=english_mode; if(english_mode!=1){document.getElementById("english_mode").removeAttribute('checked');} t.onchange=function(){if(t.checked){localStorage.setItem('english_mode','1'); for (const mandarin of mandarins) { mandarin.className -= ' invisible';} for (const english of englishs) { english.className += ' invisible';} } else{localStorage.setItem('english_mode',0); for (const mandarin of mandarins) { mandarin.className += ' invisible';} for (const english of englishs) { english.className -= ' invisible';} } english_mode = localStorage.getItem('english_mode'); } if(video_quality){ for(var i=0;i<s.length;i++){ if(s.options[i].value==video_quality){ s.options[i].selected=true; } } } s.onchange=function (){ var quality_value = s[s.selectedIndex].getAttribute("value"); localStorage.setItem('video_quality',quality_value); video_quality = localStorage.getItem('video_quality'); var avail_quali;var v_elem = document.querySelector("#movie_player"); if((avail_quali = v_elem.getAvailableQualityLevels())&&avail_quali.indexOf(video_quality) == -1){ v_elem.setPlaybackQualityRange(avail_quali[0],avail_quali[0]); } else{v_elem.setPlaybackQualityRange(video_quality,video_quality);} } }, play_main:function (){ sec_fwd = localStorage.getItem('sec_fwd'); sec_sub = localStorage.getItem('sec_sub'); wheel_sec = localStorage.getItem('wheel_sec'); buffer_time = localStorage.getItem('buffer_time'); var video_speed = localStorage.getItem('speed'); var video_elem,v_elem; //每3秒试执行主应用操作 var main_timer = setInterval(function () { video_elem = document.querySelector("#movie_player > div.html5-video-container > video"); v_elem = document.querySelector("#movie_player"); if (video_elem){ main_opr(); video_elem.ondurationchange = main_opr; clearInterval(main_timer);} },500) //主应用操作 function main_opr() { //视频质量选择 var avail_quali;var current_time; if((avail_quali = v_elem.getAvailableQualityLevels())&&avail_quali.indexOf(video_quality) == -1){ v_elem.setPlaybackQualityRange(avail_quali[0],avail_quali[0]); } else{v_elem.setPlaybackQualityRange(video_quality,video_quality);} //点开视频介绍 if(expand_description){ if(document.getElementById("action-panel-details")) { document.getElementById("action-panel-details").classList.remove("yt-uix-expander-collapsed"); } if(document.querySelector("#more > .more-button.style-scope.ytd-video-secondary-info-renderer")) { document.querySelector("#more > .more-button.style-scope.ytd-video-secondary-info-renderer").click(); } } //前跳过秒数+速度+播放质量设定 video_elem.oncanplay = function(){ if(video_speed&&video_elem){ video_elem.playbackRate = video_speed;} // if(current_time>200){current_time=0} if(sec_fwd&&(video_elem.currentTime < sec_fwd/1)){ video_elem.currentTime += sec_fwd/1; video_elem.oncanplay = ""; } // video_elem.currentTime += 1; } //暂停缓存 sec_sub = localStorage.getItem('sec_sub'); video_elem.onpause = function(){ if(!buffer_time||buffer_time == 0){return;} if(parseInt(video_elem.currentTime)==parseInt(video_elem.duration)){current_time=0;video_elem.onpause = "";video_elem.onplay = "";video_elem.oncanplaythrough ="";} else{current_time = parseInt(video_elem.currentTime); video_elem.oncanplaythrough = function(){ if(parseInt(video_elem.currentTime)==parseInt(video_elem.duration)){current_time=0;video_elem.onpause = "";video_elem.onplay = "";video_elem.oncanplaythrough ="";} else{video_elem.currentTime +=2; if(sec_sub){ if((video_elem.currentTime-current_time)>(buffer_time?buffer_time:0)||(video_elem.duration<(video_elem.currentTime+parseInt(sec_sub)+10))) {video_elem.currentTime = current_time; console.log(current_time);console.log(video_elem.currentTime); video_elem.oncanplaythrough='';current_time=0;} } else{ if((video_elem.currentTime-current_time)>(buffer_time?buffer_time:0)||(video_elem.duration<(video_elem.currentTime+30))) {video_elem.currentTime = current_time; video_elem.oncanplaythrough='';} } } } video_elem.currentTime += 1; } } video_elem.onplay = function(){ if(parseInt(video_elem.currentTime)==parseInt(video_elem.duration-1)){current_time = 0;video_elem.onpause = "";video_elem.onplay = "";video_elem.oncanplaythrough ="";} // new else if(current_time){video_elem.currentTime = current_time; video_elem.oncanplaythrough = ""; //current_time=0;console.log("onplay ok2") } } video_elem.onended = function(){current_time = 0;video_elem.onpause = "";video_elem.onplay = "";video_elem.oncanplaythrough =""; } //中键全屏 video_elem.addEventListener("mouseup", function(e) { e.preventDefault(); if(e.button==1){ //video_elem.webkitRequestFullscreen(); document.querySelector("#movie_player > div.ytp-chrome-bottom > div.ytp-chrome-controls > div.ytp-right-controls > button.ytp-fullscreen-button.ytp-button").click(); //document.webkitCancelFullScreen(); } }, false); //中键全屏 // v_big.addEventListener("mouseup", function(e) { // e.preventDefault(); // if(e.button==1){ //video_elem.webkitRequestFullscreen(); // if (!document.fullscreenElement) { // document.querySelector("#movie_player > div.ytp-chrome-bottom > div.ytp-chrome-controls > div.ytp-right-controls > button.ytp-fullscreen-button.ytp-button").click(); /* if(video_elem.requestFullscreen){ return video_elem.requestFullscreen(); }else if(video_elem.webkitRequestFullScreen){ return video_elem.webkitRequestFullScreen(); }else if(video_elem.mozRequestFullScreen){ return video_elem.mozRequestFullScreen(); }else{ return video_elem.msRequestFullscreen(); } */ // } // else{ // document.querySelector("#movie_player > div.ytp-chrome-bottom > div.ytp-chrome-controls > div.ytp-right-controls > button.ytp-fullscreen-button.ytp-button").click(); //document.webkitCancelFullScreen(); // } // } // }, false); /* video_elem.onauxclick = function(e){e.preventDefault()}; video_elem.onauxclick = function(event) {event.preventDefault();video_elem.webkitRequestFullscreen();} video_elem.onauxclick = video_elem.addEventListener("mouseup", mid_key, true); function mid_key(e) { // e.preventDefault(); if(e.button==1){ //video_elem.webkitRequestFullscreen(); if (!document.fullscreenElement) { if(video_elem.requestFullscreen){ video_elem.removeEventListener("mouseup", mid_key, true); return video_elem.requestFullscreen(); }else if(video_elem.webkitRequestFullScreen){ video_elem.removeEventListener("mouseup", mid_key, true); return video_elem.webkitRequestFullScreen(); }else if(video_elem.mozRequestFullScreen){ return video_elem.mozRequestFullScreen(); }else{ return video_elem.msRequestFullscreen(); } } else{document.webkitCancelFullScreen();} } }*/ // 滚轮前进后退 video_elem.onwheel = function(e){e.preventDefault()}; v_elem.onwheel = wheel_e; function wheel_e (event) { event.preventDefault(); //console.log(event.deltaY); // event.deltaY = Math.min(Math.max(.125,event.deltaY), 4); //console.log(wheel_sec); video_elem.currentTime += parseInt(event.deltaY>0?wheel_sec/1:-wheel_sec) ; v_elem.onwheel=""; setTimeout(function(){v_elem.onwheel= wheel_e;},300); //同时重设播放速度 video_speed = localStorage.getItem('speed'); document.querySelector("#movie_player > div.html5-video-container > video").playbackRate = video_speed; } /* // 在视频框内按键ctrl或鼠标右键,直接跳到下一集 v_elem.addEventListener("keydown", function(e) { if (e.keyCode == 17) { e.preventDefault(); next_exec(); } }, false); v_elem.addEventListener("contextmenu", function(e) { e.preventDefault(); next_exec(); }, false); */ //每隔25秒获取播放剩余时间,如在25秒内则执行主程序 if(sec_sub !== ""&&sec_sub !=0){ const sec_sub2=sec_sub/1+12; setInterval(function(){ let left_duration = get_dura(),sel_part = document.querySelector("#movie_player > div.html5-video-container > video"); if((left_duration < sec_sub) && (left_duration !== 0) && sel_part) { next_exec(); // clearInterval(auto_play); } }, 1000); } //next part 执行 function next_exec(){ const sel_part2 = document.querySelector("#movie_player > div.ytp-chrome-bottom > div.ytp-chrome-controls > div.ytp-left-controls > a.ytp-next-button.ytp-button"); if (sel_part2) {console.log("clicked next---");sel_part2.click();current_time=0;} } //获取播放剩余时间 function get_dura() { const sel_start = document.querySelector("#movie_player > div.html5-video-container > video").currentTime; const sel_fin = document.querySelector("#movie_player > div.html5-video-container > video").duration; if (sel_fin) { return sel_fin-sel_start; } return 0; } } }, move_menu:function (){ //点开显示其余items document.querySelector("#sections > ytd-guide-section-renderer:nth-child(2) > #items > ytd-guide-collapsible-entry-renderer > #expander-item > #endpoint").click(); //移动频道到左顶部 document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1)").parentNode.append(document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1)")) //页面写入script和style var a_bug = document.createElement("script"); a_bug.innerHTML = `// 监听draggable的相关事件 function dragstart_handler(ev) { console.log("dragStart"); // Add the target element's id to the data transfer object ev.dataTransfer.setData("text", ev.target.id); ev.dataTransfer.setData("text1", ev.target); console.log(ev.dataTransfer.getData("text1")); ev.dataTransfer.dropEffect = "move"; } function dragEnter(ev) { console.log("dragenter"); ev.preventDefault(); ev.target.className += ' drag-over'; } function dragLeave(e) { ev.preventDefault(); this.className = 'droppable'; } function dragover_handler(ev) { ev.preventDefault(); //ev.dataTransfer.dropEffect = "move" } function drop_handler(ev) { ev.preventDefault(); // Get the id of the target and add the moved element to the target's DOM var data = ev.dataTransfer.getData("text"); var first=ev.target.firstChild; //得到第一个元素 ev.target.insertBefore(document.getElementById(data),first); //在第原来的第一个元素之前插入 //ev.target.appendChild(document.getElementById(data)); } function dragend_handler(ev) { console.log("dragEnd"); // Remove all of the drag data ev.dataTransfer.clearData(); //localStorage.setItem("itemstate",document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) #items").outerHTML); //itemdetail写入localStorage var json = []; var data = {}; var items_length=document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer").length for(var i=0;i<items_length-1;i++){ data = {}; //data.id = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer")[i].id; //data.imgsrc = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer #img")[i].src; data.text =document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer")[i].innerText; //data.href = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer > #endpoint")[i].href; json.push(data); } var jsonString = JSON.stringify(json);//[{"id":1,"imgsrc":"test1","text":2}] localStorage.setItem("itemdetail",jsonString); //localStorage.setItem("item_new",""); } function noAllowDrop(ev) { console.log("stopPropagation"); ev.stopPropagation(); } //点击订阅或退订时,删除localStorage内已有相同item if(document.querySelector("#inner-header-container #subscribe-button")){var subscribe_button = document.querySelector("#inner-header-container #subscribe-button")} else if(document.querySelector("#meta-contents #top-row > #subscribe-button")){var subscribe_button = document.querySelector("#meta-contents #top-row > #subscribe-button");} // var subscribe_button = document.querySelector("#inner-header-container #subscribe-button")?document.querySelector("#inner-header-container #subscribe-button"):document.querySelector("#meta-contents #top-row > #subscribe-button"); if(subscribe_button){ subscribe_button.onclick=function(){ //localStorage.setItem("item_new",document.querySelector("#text > a").innerText); //localStorage.removeItem("itemdetail",document.querySelector("#channel-name #text").innerText); let obj = JSON.parse(localStorage.itemdetail); for(let j=obj.length-1;j>-1;j--){ if(obj[j]&&obj[j].text==document.querySelector("#channel-name #text").innerText){ let items_down = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer"); items_down.forEach(function(element,index,array) { if(element.firstElementChild.title==document.querySelector("#channel-name #text").innerText){ document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) #items").append(element); return false; } }) delete obj[j];} } localStorage.setItem("itemdetail",JSON.stringify(obj)); console.log("delete suc"); } } `; document.body.appendChild(a_bug); var style_type2 = document.createElement("style");style_type2.id = "style_type"; style_type2.innerHTML = `#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer{margin: 1em 0em 1em 0em !important;} .drag-over { border-style: dashed; } .droppable{} `; //#expandable-items > ytd-guide-entry-renderer{margin: 1.2em 0em 1.2em 0em !important;} document.head.appendChild(style_type2); //开始操作 var menu_opr = setInterval(function(){ /* const droppables = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer"); const draggable = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer > #endpoint"); droppables.forEach(function(element,index,array) { element.setAttribute("ondrop","drop_handler(event);"); element.setAttribute("ondragover","dragover_handler(event);"); }) */ // const droppables = document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1)"); if(document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) #items > ytd-guide-entry-renderer")){ const droppables = document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) > #items"); const draggable = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer"); const no_draggable = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer > #endpoint"); // const no_droppable = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer > #endpoint > tp-yt-paper-item"); // const no_droppable = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer > #endpoint *"); const no_droppable = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items *"); const draggable2 = document.querySelectorAll("#expandable-items > ytd-guide-entry-renderer"); const no_draggable2 = document.querySelectorAll("#expandable-items > ytd-guide-entry-renderer > #endpoint"); // const no_droppable2 = document.querySelectorAll("#expandable-items > ytd-guide-entry-renderer > #endpoint *"); droppables.setAttribute("ondrop","drop_handler(event);"); droppables.setAttribute("ondragover","dragover_handler(event);"); // droppables.setAttribute("ondragenter","dragEnter(event);"); // droppables.setAttribute("ondragleave","dragLeave(event);"); no_draggable.forEach(function(element,index,array) { element.setAttribute("draggable",false); }); no_draggable2.forEach(function(element,index,array) { element.setAttribute("draggable",false); }); no_droppable.forEach(function(element,index,array) { element.setAttribute("ondragover","noAllowDrop(event);"); }); // no_droppable2.forEach(function(element,index,array) { // element.setAttribute("ondragover","noAllowDrop(event);"); //}); draggable.forEach(function(element,index,array) { if(index<array.length){ element.setAttribute("draggable",true); element.setAttribute("ondragstart","dragstart_handler(event);"); element.setAttribute("ondragend","dragend_handler(event);"); if(!element.id){element.setAttribute("id","move"+index);} } }); let index_x =0; draggable2.forEach(function(element,index,array) { index_x=index+7; element.setAttribute("draggable",true); element.setAttribute("ondragstart","dragstart_handler(event);"); element.setAttribute("ondragend","dragend_handler(event);"); element.setAttribute("id","move"+index_x); }); //把隐藏内容拉出来,放入items const parent_item = document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) #items"); let insert_sec = document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) #items > ytd-guide-collapsible-entry-renderer"); let new_content2=document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) #items > ytd-guide-collapsible-entry-renderer #expanded #expandable-items > ytd-guide-entry-renderer"); new_content2.forEach(function(element){parent_item.insertBefore(element,insert_sec)}); // localStorage.setItem("itemstate",JSON.stringify(ddd)); // localStorage.setItem("itemstate",ddd.outerHTML); //取出保存在localStorage的itemstate,并还原回网页 /* if(localStorage.getItem("itemstate")){ document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) #items").outerHTML=localStorage.getItem("itemstate"); } */ const obj = JSON.parse(localStorage.getItem("itemdetail")); //getItem("itemdetail")然后写入网页列表 if(localStorage.getItem("itemdetail")){ /* //标记id-move draggable.forEach(function(element,index,array) { if(index<array.length){ element.setAttribute("draggable",true); element.setAttribute("ondragstart","dragstart_handler(event);"); element.setAttribute("ondragend","dragend_handler(event);"); if(localStorage.getItem("item_new")){ if(element.firstElementChild.title==localStorage.getItem("item_new")){ element.setAttribute("id","move"+draggable.length); parent_item.append(element); } } else{element.setAttribute("id","move"+index);} } }); let index_x =0; draggable2.forEach(function(element,index,array) { index_x=index+7; element.setAttribute("draggable",true); element.setAttribute("ondragstart","dragstart_handler(event);"); element.setAttribute("ondragend","dragend_handler(event);"); element.setAttribute("id","move"+index_x); }); */ var items_drag = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer"); for(var j=obj.length-1;j>-1;j--){ // if(j==0){ items_drag.forEach(function(element,index,array) { //console.log(element.firstElementChild.title); //console.log(obj[j].text); if(obj[j]&&element.firstElementChild.title==obj[j].text){ parent_item.prepend(element); return false; } }) // } /* else if(j>0) { items_drag.forEach(function(element,index,array) { if(element.firstElementChild.title==obj[j].text){ parent_item.insertBefore(element,parent_item.firstElementChild.nextSibling); console.log(element.firstElementChild.title); console.log(obj[j].text); return false; } }) } */ } //document.querySelector("#"+obj[j].id+" yt-formatted-string").innerText=obj[j].text; //document.querySelector("#"+obj[j].id+" #img").src=obj[j].imgsrc; //document.querySelector("#"+obj[j].id+" #endpoint").href=obj[j].href; //ttt=j-1; /* if(j==0){ parent_item.prepend(document.querySelector("#"+obj[j].id)); } else if(j>0) { //console.log(document.querySelector("#"+obj[j].id)); //console.log(ttt); parent_item.insertBefore(document.querySelector("#"+obj[j].id),document.querySelector("#"+obj[j-1].id).nextSibling); } */ // } //把当日订阅置顶 document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) > #items").prepend(document.querySelector("#sections > ytd-guide-section-renderer:nth-child(2) #items > ytd-guide-entry-renderer:nth-child(4)")); clearInterval(menu_opr); } },100) } } //ev.dataTransfer.setData("text/html", ev.target.outerHTML); /* //点击订阅时记录频道名称 var button_onclick = setInterval(function(){ console.log("okbutton"); if(document.querySelector("#subscribe-button")){ document.querySelector("#subscribe-button").onclick=function(){ localStorage.setItem("item_new",document.querySelector("#text > a").innerText); localStorage.removeItem(document.querySelector("#text > a").innerText); } // clearInterval(button_onclick); } },8000) */ var load_menu = setInterval(function(){ //youtube_hand.dark_eye(); if(document.querySelector("#end")){ youtube_hand.play_menu(); youtube_hand.play_main(); youtube_hand.dark_eye1(); //document.querySelector("html").onpropertychange = youtube_hand.dark_eye; clearInterval(load_menu); } },100) setInterval(function(){ youtube_hand.dark_eye();},200) var move_ma=setInterval(function(){ if(document.querySelector("#sections > ytd-guide-section-renderer:nth-child(2)")) { youtube_hand.move_menu(); /* let ddd= document.querySelector("#sections > ytd-guide-section-renderer:nth-child(2) #items"); let new_content1= document.querySelector("#sections > ytd-guide-section-renderer:nth-child(2) #items").innerHTML; let new_content2=document.querySelector("#sections > ytd-guide-section-renderer:nth-child(2) #items > ytd-guide-collapsible-entry-renderer #expanded #expandable-items").innerHTML; ddd.outerHTML ='<div id="items" class="style-scope ytd-guide-section-renderer" ondrop="drop_handler(event);" ondragover="dragover_handler(event);">'+new_content1+new_content2+'</div>'; */ clearInterval(move_ma); } },200) })();