// ==UserScript==
// @name Adblock4limbo_adsRemoveProject
// @namespace https://limbopro.com/
// @version 0.1.2
// @license CC BY-NC-SA 4.0
// @description 毒奶去广告计划油猴脚本版;通过 JavaScript 移除 Pornhub/低端影视/Jable/哔滴影视等视频网站上的视频广告和图片广告,获取Jable上的M3U8资源链接,保持界面清爽干净无打扰!
// @author limbopro
// @match https://ddrk.me/*
// @match https://jable.tv/*
// @match https://www.btbdys.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=limbopro.com
// @run-at document-end
// @grant none
// ==/UserScript==
var ads_host=[
"pornhub.com",
"ddrk.me",
"jable.tv",
"www.btbdys.com"
]
var url = document.location.href;
console.log(url); // 看看当前 URL
var i;
for (i=0;i<ads_host.length;i++){
if (url.indexOf(ads_host[i]) !== -1){
var values = ads_host[i]; // 释放参数值
console.log(values) // 看看控制台输出了个啥
}
}
function switch_ads_host(x){ // 匹配参数值 执行相应函数
switch (x) {
case 'pornhub.com':
pornhub_skipAds()
pornhub_scriptAds()
pornhub_css_catch()
break;
case 'ddrk.me':
ddrk_css_catch();
break;
case 'jable.tv':
jable_css_catch();
jable_removeAds();
cloudflarePass();
button_m3u8("div.my-3");
javascript_dynamic_add("https://limbopro.com/Adguard/Adblock4limbo.function.js");
break;
case 'www.btbdys.com':
btbdys_css_catch();
video_AdsSkip();
url_blank2self();
btbdys_delayRemoveAds();
break;
default:
console.log("Catch Nothing!")
}
}
switch_ads_host(values)
// 无数函数及方法的组合使脚本更灵活
// 移除带广告脚本
function pornhub_scriptAds(){
var i;
var script = document.getElementsByTagName("script");
for (i=0; i<script.length; i++){
if (script[i].src.indexOf("ads_batch") !== -1) {
script[i].remove()
}
if (script[i].innerHTML.indexOf("ads_batch") !== -1){
script[i].remove()
}
}
}
// 移除网站上的图片广告
function pornhub_css_catch(){
var newstyle=".topAdContainter,div.topAdContainter,.adContainer.clearfix,.adContainer,div#adSpot,a[href*=\"ads\"]," +
".video-wrapper > #player + [class],.underplayerAd,.realsex,.adsbytrafficjunky,.adLink," +
"#pb_template,#main-container > .abovePlayer,.sponsor-text," +
".video-wrapper > div#player~div[class$=\" hd clear\"],#hd-rightColVideoPage > .clearfix:first-child," +
".playerFlvContainer > div#pb_template[style],a[href*='livehd']," +
"[href*='premium_signup?type=PremiumBtn'] {display:none !important;}" +
".mgp_container .mgp_optionsMenu.mgp_level3 .mgp_subPage>.mgp_content{opacity:0;pointer-events:auto;transform:translate(-260px, 0) !important}" +
".mgp_preRollSkipButton {z-index:8;position:absolute;padding:10px 25px;background:rgba(0,0,0,.55)}"; // 样式文本
var creatcss=document.createElement("style"); // 新建style tag
creatcss.innerHTML=newstyle; // 插入样式文本
document.getElementsByTagName('head')[0].appendChild(creatcss) // 追加新Style至第一个 head 标签后
}
// 自动跳过 interstitial 插页式广告
function pornhub_skipAds(){
const ele_skip = "[onclick*='clearModalCookie']"
const exist = document.querySelectorAll(ele_skip);
if (document.querySelectorAll(ele_skip).length > 0){
const href = exist[1].href;
window.location = href;
}
}
// 隐藏广告样式
function ddrk_css_catch(){
const newstyle = ".entry { padding: 0px !important ; margin: 0%; }"+
"[id*='afc_sidebar'], #fkasjgf, #sajdhfbjwhe, img,[href*='kst'],[href*='###']{"+
"visibility: hidden !important;"+
"width: 1px !important;"+
"height:1px !important; "+
"opacity:0 !important;"+
"cursor: pointer;"+
"pointer-events:none !important;"+
"z-index: -999;"+
"}"
const creatcss = document.createElement("style"); // 新建style tag
creatcss.innerHTML=newstyle; // 插入样式文本
document.getElementsByTagName('head')[0].appendChild(creatcss) // 追加新Style至第一个 head 标签后
}
// 隐藏广告样式
function jable_css_catch(){
const newstyle = "iframe," +
"div[class*=\"exo\"], " +
".exo-native-widget-outer-container," +
//"div[class*=\"col-6 col-sm-4 col-lg-3\"]," +
"a[target*=\"_blank\"]," +
"a[href*=\"trwl1\"]," +
"div[data-width=\"300\"]," +
"div.text-center.mb-e-30," +
"div[data-width*=\"300\"]," +
"div[style*=\"300px\"]," +
"section[class*=\"justify\"]," +
"iframe[width=\"728\"][height=\"90\"]," +
"#site-content > div.container > section.pb-3.pb-e-lg-40.text-center," +
".text-center > a[target=\"_blank\"] > img," +
"a[href*=\"?banner=\"]," +
".badge," +
"a[href=\"http://uus52.com/\"] {display:none !important;} "
const creatcss = document.createElement("style"); // 新建style tag
creatcss.innerHTML=newstyle; // 插入样式文本
document.getElementsByTagName('head')[0].appendChild(creatcss) // 追加新Style至第一个 head 标签后
}
// 设置 cookie
function jable_removeAds(){ // Cookie 设定及注入
document.cookie = "zone-cap-3403709=1";
document.cookie = "kt_tcookie=1";
document.cookie = "ts_popunder=1";
document.cookie = "cf_chl_prog=b";
var ads_host = [
'r.trwl1.com',
'r.www.com'
];
var i,l;
for (l = 0; l < ads_host.length; l++) {
var css_sel = "a[href*='" + ads_host[l] + "']";
var css_catch = [".video-img-box.mb-e-20,.col-6.col-sm-4.col-lg-3"];
var huge = document.querySelectorAll( css_catch );
for (i=0; i< huge.length; i++){
if (huge[i].querySelectorAll( css_sel ).length > 0) {
huge[i].style.display = "none";
}
}
}
}
// Cloudflare recaptcha 绕过
function cloudflarePass(){
var title = document.title;
var key = "Attention";
var key_2 = "Cloudflare";
var values = title.search(key);
var values_2 = title.search(key_2);
var failed = "0";
if ( values >= failed || values_2 >= failed ){
window.location.reload();
}
}
/* 自动播放 */
function video_AutoPlay () {
var first_Ele = ["video[class*='poster'],video[id='player'],video[id='vjsp_html5_api']"];
var first_Ele_Catch = document.querySelectorAll( first_Ele );
first_Ele_Catch[0].play()
}
setTimeout(function (){
video_AutoPlay()
},1000);
/* 禁止新页面跳转 */
function url_blank2self(){
var _blank = document.querySelectorAll("a");
var i;
for (i = 0; i < _blank.length; i++) {
_blank[i].target = "_self";
}
}
// 隐藏广告样式
function btbdys_css_catch(){
const newstyle = "#ad-index," +
".ayx[style^=\"position: fixed;bottom\"]," +
".ayx[style=\"display:block;\"]," +
"#adsbox {display:none !important;}" +
"div.page-wrapper {overflow-x:hidden !important;}"
const creatcss = document.createElement("style"); // 新建style tag
creatcss.innerHTML=newstyle; // 插入样式文本
document.getElementsByTagName('head')[0].appendChild(creatcss) // 追加新Style至第一个 head 标签后
}
/* 延迟1秒中清除广告元素以避免bde4反屏蔽检测 */
function btbdys_delayRemoveAds(){
setTimeout(()=>{
const newstyle=".ayx[style^=\"position: fixed;bottom\"]," +
"#ad-index,#adsbox," +
".ayx[style=\"display:block;\"]," +
".ayx[style^=\"position: fixed;bottom\"]," +
"a[target*=_new] {display:none !important;}";
var creatcss=document.createElement("style");
creatcss.innerHTML=newstyle;
document.getElementsByTagName('head')[0].appendChild(creatcss)
},500);
}
// 在页面插入按钮
function button_m3u8(ele){
var button = document.createElement("button");
button.innerHTML = "获取M3U8文件";
button.setAttribute("onclick","m3u8_tempt()");
var button_style_values = "position: absolute; right:0px; padding: 6px 6px 6px 6px; display: inline-block; " +
"font-size: 15px; color:white; z-index:114154; border-right: 6px solid #38a3fd !important; " +
"border-left: #292f33 !important; border-top: #292f33 !important; " +
"border-bottom: #292f33 !important; background: black; " +
"border-radius: 0px 0px 0px 0px; margin-bottom: 10px; " +
"font-weight: 800 !important; " +
"text-align: right !important;"
button.setAttribute("style", button_style_values);
//var ele = "div.my-3";
var here = document.querySelectorAll(ele);
here[0].appendChild(button);
}
// 获取M3U8文件资源链接
function m3u8_tempt(){
var i,url_result;
var url_regex = new RegExp("https.*?\.m3u8","gi")
const ele = [
"script",
"a"
]
const ele_catch = document.querySelectorAll(ele)
for (i=0; i<ele_catch.length;i++){
while ((url_result = url_regex.exec(ele_catch[i].innerHTML)) != null) {
console.log("Catch it")
alert(url_result)
}
}
}
// 动态创建引用外部js JavaScript
function javascript_dynamic_add(url){
var script = document.createElement('script');
script.src = url;
document.getElementsByTagName('head')[0].appendChild(script)
}
/* 视频页广告加速跳过 */
function video_AdsSkip() {
// Based on uAssets
// License: https://github.com/uBlockOrigin/uAssets/blob/master/LICENSE
// nano-setTimeout-booster.js
var z = window.setInterval,
needle = '{{1}}',
delay = parseInt('{{2}}', 10),
boost = parseFloat('{{3}}');
if ( needle === '' || needle === '{{1}}' ) {
needle = '.?';
} else if ( needle.charAt(0) === '/' && needle.slice(-1) === '/' ) {
needle = needle.slice(1, -1);
} else {
needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}
needle = new RegExp(needle);
if ( isNaN(delay) || !isFinite(delay) ) {
delay = 1000;
}
if ( isNaN(boost) || !isFinite(boost) ) {
boost = 0.05;
}
if ( boost < 0.02 ) {
boost = 0.02;
}
if ( boost > 50 ) {
boost = 50;
}
window.setInterval = function(a, b) {
if ( b === delay && needle.test(a.toString()) ) {
b *= boost;
}
return z.apply(this, arguments);
}.bind(window);
};