// ==UserScript==
// @name 起点中文网、B站、YouTube去除推荐;百度去除搜索热点列表;YouTube、网易云、B站去除评论;知乎去除首页推荐
// @namespace https://greasyfork.org/
// @version 0.2.9
// @description 这个脚本的功能有:起点中文网、B站、YouTube去除推荐;百度去除搜索热点列表;网易云、B站去除评论;知乎去除首页推荐
// @author sanjie27
// @match https://book.qidian.com/*/*
// @match https://www.qidian.com/
// @match https://www.baidu.com/*
// @match https://music.163.com/*
// @match https://www.bilibili.com/*
// @match https://www.zhihu.com/*
// @match https://www.youtube.com/*
// @run-at document_start
// @grant unsafeWindow
// @grant GM_setClipboard
// @grant GM_addStyle
// @grant GM_getResourceText
// @license MIT
// @downloadURL none
// ==/UserScript==
(function () {
'use strict';
addStyle('a:hover{color: #00ff !important;' +
'transition: all 0.25s ease-out;}')
function deleteElement(x){
let element = document.getElementsByClassName(x);
for (let i = element.length-1; i >= 0 ; i--) {
element[i].parentNode.removeChild(element[i]);
}
}
function deleteManyElements(array){
for (let j = 0; j < array.length; j++){
deleteElement(array[j]);
}
}
function changeElementByClass(id){
let t = document.getElementsByClassName(id);
for (let j = t.length-1; j >= 0 ; j--) {
if(t[j].style.visibility == 'hidden'){
t[j].style.visibility = 'visible';
}
else t[j].style.visibility = 'hidden';
}
}
function changeManyElementsByClass(id){
for (let i = 0; i < id.length; i++){
changeElementByClass(id[i]);
}
}
function changeElementById(id){
let element = document.getElementById(id);
if(element){
if(element.style.visibility == 'hidden'){
element.style.visibility = 'visible';
}
else element.style.visibility = 'hidden';
}
}
function changeManyElementsById(id){
for (let i = 0; i < id.length; i++){
changeElementById(id[i]);
}
}
class Button {
constructor() {
}
insertButton() {
let mybutton = document.createElement("button");
mybutton.innerHTML = '';
mybutton.style.cssText="position:fixed;z-index:9999999;";
document.body.insertBefore(mybutton, document.body.firstChild);
let qidian = new Array("nav-list site-nav fl", "like-more-list", "book-list-wrap mb10");
let baidu = new Array("s-news-wrapper clearfix", "opr-recommends-merge-content", "cr-content");
let bili = new Array("recommend-list report-wrap-module report-scroll-module", "pop-live report-wrap-module report-scroll-module");
let music = new Array("g-wrap7");
let youtube = new Array("contents", "related");
let falg = true;
mybutton.addEventListener('click',function(){
if(falg){
changeManyElementsByClass(qidian);
changeManyElementsByClass(baidu);
changeManyElementsByClass(bili);
changeManyElementsById(youtube);
changeElementByClass("g-sd4");
changeElementById("rs");
deleteElement("Topstory-mainColumn");
mybutton.innerHTML = '';
addStyle('button{background-color: yellow;}');
falg=false;
}else{
changeManyElementsByClass(qidian);
changeManyElementsByClass(baidu);
changeManyElementsByClass(bili);
changeManyElementsById(youtube);
changeElementByClass("g-sd4");
changeElementById("rs");
mybutton.innerHTML = '';
addStyle('button{background-color: #ff0000;}');
falg=true;
}
})
}
}
class Music {
constructor() {}
hideComments() {
deleteElement("cmmts j-flag");
}
}
class Bili{
constructor(){}
hideComments(){
changeElementByClass("comment");
}
}
class Zhihu{
constructor(){}
deletePushes(){
let zhihu = new Array("Topstory-mainColumn", "TopstoryTabs TopstoryPageHeader-tabs", "Tabs AppHeader-Tabs", "zu-top-nav");
deleteManyElements(zhihu);
}
}
function addStyle(rules) {
let styleElement = document.createElement('style');
styleElement.type = 'text/css';
document.getElementsByTagName('head')[0].appendChild(styleElement);
styleElement.appendChild(document.createTextNode(rules));
}
let mymusic = new Music();
mymusic.hideComments();
let button = new Button();
button.insertButton();
let bili = new Bili();
bili.hideComments();
let zhihu = new Zhihu();
zhihu.deletePushes(); //如果不想要删除知乎的推荐等,可注释该句,方法为在句首输入"//"
function deleteElementById(x){
var adSidebar = document.getElementById(x);
if (adSidebar) {
adSidebar.parentNode.removeChild(adSidebar);
}
}
//因为本插件默认删除B站、网易云评论,知乎的首页推荐,所以在这三个网站隐藏按钮
var url = window.location.href;
if(url.indexOf("bili") >= 0 || url.indexOf("music") >=0 || url.indexOf("zhihu") >= 0){
deleteElementById("mybutton");
}
})();