missav
Устаревшая версия за
// ==UserScript==
// @name AV_AD_Block
// @description missav
// @icon https://static.missav.com/img/favicon.png
// @namespace loadingi.local
// @version 2.0
// @author ch
// @match https://missav.com/*
// @grant GM_setValue
// @grant GM_getValue
// --有 bug grant GM_xmlhttpRequest
// @license GPL-3.0-only
// ==/UserScript==
(function() {
'use strict';
////missav.com
// 进度按钮背景
let proc_ctls = document.getElementsByClassName('isolate inline-flex rounded-md shadow-sm');
for (let i = 0; i < proc_ctls.length; i++) {
proc_ctls[i].style.backgroundColor = "#222";
}
// 进度控制 节点
var ctlNode = document.getElementsByClassName('sm:hidden flex justify-between -mx-4 px-3 pt-3 pb-1 bg-black')[0];
// 检查该节点是否存在
if (ctlNode) {
// 获取该节点内所有button元素
var buttons = ctlNode.getElementsByTagName('button');
// 遍历所有button元素,设置它们的边框样式为'none'
for (var i = 0; i < buttons.length; i++) {
buttons[i].style.color = "burlywood";
buttons[i].style.boxShadow = "none";
}
}
// Loop按钮边框
let loop_btn = document.getElementsByClassName('sm:ml-6')[0].getElementsByTagName('button')[0];
if (loop_btn){
// loop_btn.style.borderColor = "blueviolet";
loop_btn.style.borderWidth = "0px";
// loop_btn.classList.remove('border');
}
// Loop按钮边框
let logo_field = document.getElementsByClassName('font-serif')[0];
logo_field.remove();
// 展开详情
let info_text= document.getElementsByClassName('mb-1 text-secondary break-all line-clamp-2')[0];
info_text.showMore = true;
// -----------------------------------------------------------------------------------------------------------------
// 窗口失焦 暂停播放
let elements = document.getElementsByClassName('aspect-w-16 aspect-h-9');
let tagetElement = elements[11];
tagetElement.removeAttribute('@click');
tagetElement.removeAttribute('@keyup.space.window')
// 设置背景为纯黑,iPhone safari 顶部和底部将统一为黑色
document.body.style.backgroundColor = "black";
//Block Player OnceClick PopUp
if(document.querySelector("div.flex-1.order-first")){
var elem0 = document.querySelector("div.flex-1.order-first").children[0]
elem0.removeAttribute('x-init')
elem0.removeAttribute('x-data')
}
if(document.querySelector("div.relative.-mx-4.-mt-6.sm\\:m-0")){
var elem1 = document.querySelector("div.relative.-mx-4.-mt-6.sm\\:m-0").children[0]
elem1.removeAttribute(elem1.attributes[0].name)
elem1.removeAttribute('@click.once')
}
//Block GIF AD
function blockgif(){
var elmt1 = document.querySelector("link[href*='app.1aad5686.js']") //关键 js
var elmt2 = document.querySelector("script[src*='app.1aad5686.js']") //关键 js
var elmt3 = document.querySelector('div[class^="fixed right-2 bottom-2"') // 似乎未生效
var elmt4 = document.querySelector("script[src*='inpage.push.js']") // 推送iframe 的 js
var elmt5 = document.querySelector("script[src*='hartattenuate.com']") // 可疑的 js
var elmt6 = document.querySelector('div.under_player') // 播放器底部广告
var elmt7 = document.querySelector('div.space-y-5.mb-5') //页面底部广告
var elmt8 = document.getElementsByClassName('space-y-2 mb-4 ml-4 list-disc text-nord14')[0] //详情文字广告
for (var i = 1; i<=8; i++){
var obj = eval('elmt'+i)
console.log("Try elmt"+i)
if(obj){
obj.remove();
console.log('Detection! Removed -------- elmt'+i);
}else{continue}
}
//iframe blk 屏蔽所有 iframe
// document.querySelectorAll("iframe").forEach(i => i.setAttribute('style','display:none'))
document.querySelectorAll("iframe").forEach(i => {
i.remove();
console.log('Detection! Removed -------- iframe');
});
}
//Block Video AD
function blockvideoad(){
var elem004 = document.querySelector('div[class^="rootContent--"]')
console.log('trying')
if(elem004){
console.log('Detection! Removed -------- rootContent--');
elem004.parentElement.remove();
//清除计时器
//clearInterval (timerVar);
//timerVar= "";
}
}
//Block script
function blockScript(){
var anchors = document.querySelectorAll("script");
for(var i=0;i<anchors.length;i++){
if(anchors[i].innerText.indexOf("htmlAds")>0){
console.log("Detection! Removed -------- htmlAds")
anchors[i].remove()
break;
}else{console.log("noMatch")}
}
}
//LOOP
var timerVar = setInterval (function() {blockProcc(); }, 50);
var hits = 100
function blockProcc(){
//console.log('trying')
blockgif();
blockScript();
blockvideoad();
hits--
console.log(hits)
if(hits<=0){clearInterval (timerVar);console.log('exited');}
}
// 创建按钮元素
var button = document.createElement("button");
button.innerText = "点击我";
button.style.position = "fixed";
button.style.bottom = "20px";
button.style.right = "20px";
button.style.transform = "translate(-50%, -50%)";
button.style.zIndex = "1000";
button.style.padding = ".375rem .625rem";
button.style.backgroundColor = "#222";
button.style.borderRadius = "10px";
button.style.color = "burlywood";
button.style.borderWidth = "1px";
// 定义点击事件处理程序
function handleClick() {
// 获取目标<div>元素
var targetDiv = document.getElementsByClassName('flex-1 order-first')[0];
// 创建新的<div>元素
var newDiv = document.createElement('div');
// 设置新<div>元素的样式
newDiv.style.backgroundColor = 'black';
newDiv.style.opacity = '0.9';
newDiv.style.position = 'absolute';
newDiv.style.top = '0';
newDiv.style.left = '0';
newDiv.style.width = '100%';
newDiv.style.height = '100%';
newDiv.style.zIndex = '299998';
// 将新节点插入到目标节点的后面
targetDiv.parentNode.insertBefore(newDiv, targetDiv.nextSibling);
var screenWidth = window.innerWidth;
var Video_node = targetDiv.getElementsByTagName('div')[0]
Video_node.style.position = 'fixed';
Video_node.style.zIndex = '300000';
Video_node.style.left = '10px';
Video_node.style.right = '10px';
Video_node.style.top = '30%';
}
// 将点击事件处理程序绑定到按钮
button.addEventListener("click", handleClick);
// 将按钮添加到页面的主体中
document.body.appendChild(button);
})();