// ==UserScript==
// @name oo.movie( VIP视频解析 + 豆瓣影视页净化 )
// @namespace oo.movie
// @version 20.1.1
// @description VIP 视频解析 + 豆瓣影视页净化 + 净化内置视频源广告,手机端与电脑端通用
// @author (o˘◡˘o)
// @license GPL License
// @include *
// @require https://cdn.bootcss.com/zepto/1.2.0/zepto.min.js
// ==/UserScript==
// VIP视频解析接口 → 后面自动补全要解析的网址
var VIP_URLS = `
OK https://okjx.cc/?url=✔
http://jx2.micool.cc/index.php?url=✔
https://v.dybhn.com/index.php?url=✔
http://ckmov.vip/api.php?url=✔
Stone https://jiexi.071811.cc/jx.php?url=✔
m3u8 https://www.playm3u8.cn/jiexi.php?url=✔
https://api.jiexi.la/?url=✔
http://ys.benew.top/wabi/?url=✔
Element https://chinese-elements.com/v.html?zwx=
Egg https://www.eggvod.cn/jxjxjx.php?zhm_jx=
`;
// 搜索源 → ** 表示搜索时的关键词
var SEARCH_SOURCES = `
爱奇艺 https://m.iqiyi.com/search.html?source=default&key=** https://so.iqiyi.com/so/q_**
腾讯 https://m.v.qq.com/search.html?act=0&keyWord=** https://v.qq.com/x/search/?q=**
哔哩哔哩 https://m.bilibili.com/search.html?keyword=** https://search.bilibili.com/all?keyword=**
优酷 https://www.soku.com/m/y/video?q=** https://so.youku.com/search_video/q_**
搜狐 https://m.tv.sohu.com/upload/h5/m/mso.html?key=** https://so.tv.sohu.com/mts?wd=**
芒果 https://m.mgtv.com/so/?k=** https://so.mgtv.com/so/k-**
乐视 http://m.le.com/search?wd=** http://so.le.com/s?wd=**
奈菲 https://www.nfmovies.com/search.php?page=1&searchword=**
残月 http://ys.23yue.cn/seacher-**.html
云播 https://m.yunbtv.com/vodsearch/-------------.html?wd=** https://www.yunbtv.com/vodsearch/-------------.html?wd=**
飞极速 http://m.feijisu8.com/search/** http://feijisu8.com/search/**
独播 https://www.duboku.net/vodsearch/-------------.html?wd=**
拾伍 https://www.shiwutv.com/vodsearch/-------------.html?wd=**
大全 http://01th.net/search/?wd=**
樱花 http://m.yhdm.tv/search/**/ http://www.yhdm.tv/search/**/
1090 https://1090ys.com/?c=search&sort=addtime&order=desc&page=1&wd=**
APP https://app.movie/index.php/vod/search.html?wd=**
八兔 http://www.8tutv.com/search/?category=0&q=**
Vipku http://www.2n65.cn/index.php/vod/search.html?wd=**
影迷 https://www.yingmiwo.com/vodsearch.html?wd=**
`;
// 搜索时标题净化,比如去掉 第N季
var PurifyKeywordRegex = /\s+第.{1,3}季/;
// 搜索页 → 快捷跳转别站搜索页
var SEARCH_ADDONS = [
{
match: /m.iqiyi.com\/search|so.iqiyi.com/,
position: '.m-box, .search-con-page'
},
{
match: /v.qq.com\/(x\/)?search/,
position: '.search_item, .wrapper_main > .mod_pages'
},
{
match: /bilibili.com\/search|search.bilibili.com/,
position: '.page-wrap, .index__board__src-search-board-'
},
{
match: /soku.com\/m.+q=|so.youku.com\/search_video/,
position: '#bpmodule-main, .yk_result'
},
{
match: /m.tv.sohu.com.+key=|so.tv.sohu.com.+wd=/,
position: '.ssFilter | before'
},
{
match: /m.mgtv.com\/so\/|so.mgtv.com\/so/,
position: '#app, .search-resultlist',
keyword: /k[-=]([^&\?\/\.]+)/
},
{
match: /m.le.com\/search|so.le.com\/s/,
position: '.Relate, .column_tit | before'
},
{
match: 'nfmovies.com/search',
position: '.hy-page',
keyword($) {
return $('.hy-video-head .text-color')
.eq(1)
.text()
.replace(/^“|”$/g, '');
}
},
{
match: 'yunbtv.com/vodsearch',
position: '.pager',
keyword: '.breadcrumb font'
},
{
match: 'feijisu8.com/search',
position: '#result'
},
{
match: 'yhdm.tv/search',
position: '.footer, .foot | before'
},
{
match: /1090ys.com\/.+c=search/,
position: '.stui-page'
},
{
match: 'ys.23yue.cn/seacher',
position: '.stui-pannel_bd > .stui-vodlist__media'
},
{
match: 'duboku.net/vodsearch',
position: '.myui-panel_bd > .myui-vodlist__media'
},
{
match: 'shiwutv.com/vodsearch',
position: '.stui-page'
},
{
match: '01th.net/search',
position: '.stui-page'
},
{
match: 'app.movie/index.php/vod/search.html',
position: '.stui-page'
},
{
match: '8tutv.com/search',
position: '.ys'
},
{
match: '2n65.cn/index.php/vod/search.html',
position: '.left_row | append'
},
{
match: 'yingmiwo.com/vodsearch',
position: '.left_row | append'
}
];
// 网站净化 + VIP解析显示
var BETTER_ADDONS = [
{
name: 'bilibili - m',
match: /m\.bilibili\.com/,
vip: '.ep-list-pre-wrapper | before',
sign: '.mg-footer-copyright',
hide:
'.index__openAppBtn__src-commonComponent-topArea-, .index__container__src-commonComponent-bottomOpenApp-, .bili-app, .recom-wrapper, .b-footer, .open-app-bar, .open-app-float, .more-review-wrapper, .player-mask .mask',
css: `
.player-mask img {
filter: none !important;
}`
},
{
name: '腾讯·搜索',
match: /m\.v\.qq\.com\/search\.html/,
sign: '.copyright',
hide: '.tvp_app_bar'
},
{
name: '腾讯·详情',
match: /v\.qq\.com\/(cover|play|x\/cover|x\/page|x\/play)/,
vip: '#vip_title, .U_box_bg_a, .player_headline',
hide:
'.mod_source, .video_function, .mod_promotion, #vip_privilege, #vip_activity, .U_bg_b, .btn_open_v, .btn_openapp, #vip_header, .btn_user_hd',
css: `
#vip_title {
padding-bottom: 0;
}
.mod_episodes_numbers.is-vip .item {
width: auto;
padding: 0 1em;
}
.U_html_bg .container {
padding-bottom: 30px;
}`
},
{
name: '爱奇艺·搜索',
match: /m\.iqiyi\.com\/search\.html/,
sign: '.m-footer',
hide: '.btn-ticket, .btn-yuyue, .btn-download, .m-iqyDown'
},
{
name: '爱奇艺·详情',
match: /\.iqiyi\.com\/(a_|v_|w_|adv)/,
vip: 'div[name="m-videoInfo"], #block-C',
sign: '.m-footer',
hide:
'.m-iqyDown, .header-login + div, .m-video-action, div[name="m-vipRights"], div[name="m-extendBar"], .m-iqylink-diversion, .m-iqylink-guide, .c-openVip, .c-score-btn, .m-videoUser-spacing, .m-pp-entrance',
css: `
.page_play {
padding-bottom: 0;
}
div[name="m-videoInfo"] {
padding-top: 1em;
}
.m-box-items .oo-album-item {
border-radius: .05rem;
background-color: #e9ecef;
color: #495057;
padding: .5em 1em;
display: inline-flex;
justify-content: center;
align-items: center;
margin: .25em;
font-weight: bold;
}`
},
{
name: '优酷·详情',
match: /m\.youku\.com\/a|m\.youku\.com\/v|v\.youku\.com\/v_/,
vip: '.h5-detail-info, .player-title',
sign: '.copyright',
hide:
'.h5-detail-guide, .h5-detail-ad, .brief-btm, .smartBannerBtn, .cmt-user-action',
css: `
#bpmodule-playpage-lefttitle {
height: auto !important;
}`
},
{
name: '芒果TV·详情',
match: /\.mgtv\.com\/b\//,
vip: ['.xuanji | before', '.v-panel-box'],
sign: '.mg-footer-copyright',
hide:
'.ad-banner, .video-area-bar, .video-error .btn, .m-vip-list, .m-vip-list + div:not([class]), .toapp, .video-comment .ft, .mg-app-swip'
},
{
name: '搜狐视频·详情',
match: /film\.sohu\.com\/album\/|tv\.sohu\.com\/v/,
vip: '.title-wrap, .videoInfo',
sign: '.links',
hide:
'.actv-banner, .btn-xz-app, .twinfo_iconwrap, .btn-comment-app, #ad_banner, .advertise, .main-ad-view-box, .foot.sohu-swiper, .app-star-vbox, .app-guess-vbox, .main-rec-view-box, .app-qianfan-box, .comment-empty-bg, .copyinfo, .ph-vbox',
css: `
.comment-empty-txt {
margin-bottom: 0;
}
.app-view-box + footer {
padding: 0;
opacity: 0.5;
}`
},
{
name: '乐视·详情',
match: /\.le\.com\/(ptv\/vplay\/|vplay_)/,
vip: '.introduction_box, .briefIntro_left .info_list',
hide:
'.full_gdt_bits, .gamePromotion, .gamePromotionTxt, #j-leappMore, .lbzDaoliu, .up-letv, .le_briefIntro .Banner_01, .video_block > .col_6 > [id], .arkBox'
},
{
name: '奈菲',
match: /nfmovies\.com/,
hide: 'img[src*="tu/ad"], .clearfix a[onclick] img',
css: `
#adleft, #adright {
visibility: hidden !important;
position: absolute !important;
left: -9999px !important;
}`
},
{
name: '飞极速',
match: /feijisu8\.com/,
hide: '.index-top ~ div, .v-top ~ div[id], .footer ~ div, .footer ~ brde'
},
{
name: '樱花动漫',
match: /yhdm\.tv/,
hide:
'.footer ~ div, a[href*="elfdoll.cn"], .head + .area ~ div:not([class])'
},
{
name: '1090影视',
match: /1090ys\.com/,
hide: '.container ~ div[id]'
},
{
name: '影迷窝',
match: /yingmiwo\.com/,
hide: '#bottom_ads, .ads_box'
}
];
!function(){var n="20.1.1",e=!!window.GM;if(!(window.top!==window.self||e&&location.href.includes("doubleclick.net"))){var t="(o˘◡˘o) oo.movie",o="oo-movie",i=document.getElementsByTagName("head")[0];if(i.getAttribute(o)!==t){i.setAttribute(o,t);var a=!1;VIP_URLS=window.VIP_URLS||VIP_URLS,SEARCH_SOURCES=window.SEARCH_SOURCES||SEARCH_SOURCES,g("✔ Loaded",p?"isMobile":"notMobile");var r=decodeURIComponent("(o%CB%98%E2%97%A1%CB%98o)"),s=location.href,c=window.screen.width,p=c<=600,l=/(wd|key|keyword|keyWord|q)=([^&\?\/\.]+)|(search\/|seacher-|q_)([^&\?\/\.]+)/;if(x(/=http/)||!x(/\.le\.com/)||x(/\.le\.com\/(ptv\/vplay\/|vplay_)/)){var d=window.Zepto||window.jQuery||window.$;VIP_URLS=R(VIP_URLS),SEARCH_SOURCES=R(SEARCH_SOURCES).map(n=>{var e=k(n);return{url:e.url,name:e.name}});var m=VIP_URLS.filter(n=>n.includes("✔")),u=E(VIP_URLS),h=m.length>0?E(m):/$^/;if(VIP_URLS=VIP_URLS.map(n=>n.replace(/=http.+/g,"=").replace(/\s*✔.*/g,"")),x(u)||x(/oo\.movie&/)){if(w("\n.google-auto-placed,\nbody > script ~ div[id] {\n display: none !important;\n visibility: hidden !important;\n position: absolute !important;\n left: -9999px !important;\n}\n "),d("title").html(t),d(function(){d("title").html(t)}),x(h)||x(/oo\.movie&/))w('\nbody:not(.oo) > *:not(video) {\n display: none !important;\n visibility: hidden !important;\n position: absolute !important;\n left: -9999px !important;\n}\n\nbody:not(.oo)::after {\n content: "oo.movie 提示:稍等片刻,正在解析";\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 999999998;\n color: white;\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center center;\n background-color: black;\n}\n\nbody > video {\n position: fixed !important;\n top: 0px !important;\n left: 0px !important;\n min-width: 0px !important;\n min-height: 0px !important;\n max-width: 99.99% !important;\n max-height: 99.99% !important;\n margin: 0px !important;\n visibility: visible !important;\n border-width: 0px !important;\n background: black !important;\n z-index: 999999999 !important;\n}\n\n.oo.is-fail {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n.oo.is-fail .tip {\n text-align: center;\n padding: 1em;\n color: white;\n}\n '),d(function(){var n,e=!0,o=!1,i=!1;setTimeout(function(){o=!0},13e3);var a=setInterval(function(){if(!i){var r;i=!0;var s=d("iframe");if(1===d("iframe").length&&0===s.contents().find("iframe").length&&0===s.contents().find("video").length&&/=http/.test(s.attr("src")))return clearInterval(a),void(location.href=s.attr("src").replace("?","?oo.movie&"));for(;0===(n=s.contents().find("video")).length&&(r=s.contents().find("iframe")).length>0;)s=r;(n.length||d("video").length)>0?(clearInterval(a),e&&(e=!0,d("body").addClass("oo").append(n.attr("src")?n:d("video")),d("title").html(t))):o&&(clearInterval(a),d("body").addClass("oo is-fail").html('<div class="tip">解析失败,请换源观看!</div>'),j("body","append"),d("title").html(t)),i=!1}},300)});else if(x(/eggvod\.cn/))w("\n#alertBox > div[style] {\n display: none !important;\n visibility: hidden !important;\n position: absolute !important;\n left: -9999px !important;\n}\n\nbody > .alertBox {\n width: 100% !important;\n top: 0 !important;\n min-height: 100vh;\n border-radius: 0;\n border: none;\n}\n "),j("#alertBox","append");else if(x(/chinese-elements\.com/))w("\n.navbar,\nfooter {\n display: none !important;\n visibility: hidden !important;\n position: absolute !important;\n left: -9999px !important;\n}\n\nbody > .container > .row:nth-child(1) {\n opacity: 0;\n pointer-events: none;\n}\n "),j("footer","before");else if(x(/z1\.m1907\.cn/)){w("\n.oo-vip {\n position: absolute;\n bottom: 8%;\n left: 0;\n right: 0;\n display: none;\n}\n\n#s-controls.show + .oo-vip {\n display: block;\n}\n ");var f=setInterval(function(){d("#s-controls").length>0&&(j("#s-controls"),clearInterval(f))},500)}}else if(x(/search\.douban\.com\/movie\//))g("豆瓣·电影·搜索 - pc"),w("\n#dale_movie_subject_search_bottom,\n#dale_movie_subject_search_top_right,\n#dale_movie_subject_top_right,\n#dale_movie_subject_bottom_super_banner,\n#dale_movie_subject_middle_right {\n display: none !important;\n visibility: hidden !important;\n position: absolute !important;\n left: -9999px !important;\n}\n\n.oo-sources {\n padding-left: 1em;\n}\n\n.oo-sources a {\n display: inline-flex !important;\n align-items: center;\n border-radius: 4px;\n font-size: .75rem;\n height: 2em;\n justify-content: center;\n line-height: 1.5;\n padding-left: .75em;\n padding-right: .75em;\n white-space: nowrap;\n background-color: #effaf3;\n color: #257942;\n margin-top: .5em;\n margin-right: .5em;\n}\n"),d("#icp").html(r),d(".gemzcp").each(function(n,e){var t=d(".title",e).text();d(e).append(`<p class="oo-sources">\n${S(t)}\n</p>`)});else if(x(/m\.douban\.com\/search\/\?.*type=movie/))g("豆瓣·电影·搜索 - m"),w("\n#TalionNav,\n.search-results-modules-name {\n display: none !important;\n visibility: hidden !important;\n position: absolute !important;\n left: -9999px !important;\n}\n\n.search-module {\n margin-top: 0;\n}\n\n.search-results img {\n width: 80px;\n}\n\n.search-results {\n padding-bottom: 10px;\n}\n\n.search-results li a {\n display: flex;\n align-items: center;\n}\n\n.search-results img {\n height: 100%;\n padding: 0;\n border: 2px solid;\n border-image: linear-gradient(to bottom, #2b68c4 0%,#cf2d6e 100%)1;\n}\n"),d("#more-search").append(" "+r),d(".subject-info").each(function(n,e){C(d(".subject-title",e).text(),e,"append")}),d(".search-hd input").on("keyup",function(n){13===n.keyCode&&(n.preventDefault(),location.href="/search/?query="+n.target.value+"&type=movie")}),d(".search-hd .button-search").attr("id",r),d(".search-hd .button-search").on("click",function(n){n.preventDefault();var e=d(".search-hd input").val();location.href="/search/?query="+e+"&type=movie"});else if(x(/movie\.douban\.com\/subject\//)){g("豆瓣·电影·详情 - pc"),w("\n#dale_movie_subject_search_bottom,\n#dale_movie_subject_search_top_right,\n#dale_movie_subject_top_right,\n#dale_movie_subject_bottom_super_banner,\n#dale_movie_subject_middle_right {\n display: none !important;\n visibility: hidden !important;\n position: absolute !important;\n left: -9999px !important;\n}\n"),d("#icp").html(r);var b=y(d("title").text().replace("(豆瓣)","").trim());d("#info").append(`<div>\n<span class="pl">在线观看:</span>\n<span>\n${SEARCH_SOURCES.map(function(n){return'<span><a target="_blank" href="'+n.url.replace("**",b)+'">'+n.name+"</a>"}).join(" / </span>")}\n</span></span></div>\n`)}else if(x(/m\.douban\.com\/movie\/subject\//))g("豆瓣·电影·详情 - m"),w('\n.score-write,\na[href*=\'to_app\']:not(.sub-honor):not(.sub-cover),\na[href*=\'doubanapp\'],\nsection + .center,\n.bottom_ad_download,\n.sub-vendor,\n.to_pc,\n.TalionNav-static,\n.sub-detail .mark-movie,\n.sub-detail .mark-tv,\n.subject-banner,\n.bottom_ad_download,\n.cover-count {\n display: none !important;\n visibility: hidden !important;\n position: absolute !important;\n left: -9999px !important;\n}\n\n.sub-info .sub-cover {\n display: block !important;\n}\n\n.TalionNav-primary {\n position: relative !important;\n}\n\n.subject-comments,\n.subject-reviews {\n margin-bottom: 0 !important;\n}\n\n.TalionNav .TalionNav-primary .search-box {\n width: 230px;\n flex: 230px 0 0;\n animation: none;\n}\n\n.sub-original-title {\n padding: 0.25em 0;\n}\n\n._V_sign {\n font-size: 0.85em;\n opacity: 0.15;\n text-align: center;\n padding-bottom: 1em;\n}\n\n._V_source, .sub-score + .sub-score {\n margin-top: 1.5em;\n color: #fff;\n}\n\n._V_source .sub-score .sub-content {\n display: block;\n}\n\n._V_source .sub-score a {\n padding: .25em .5em;\n line-height: 1.5;\n margin: 0 .15em;\n border: 1px solid rgba(255,255,255,0.2);\n font-size: 1.05em;\n font-weight: bold;\n letter-spacing: 1px;\n margin-top: .5em;\n display: inline-block;\n color: #ffe8cc;\n background: rgba(239, 238, 238, 0.05);\n border-radius: 4px;\n}\n\n#TalionNav {\n display: none;\n}\n\n#TalionNav .logo {\n background: none;\n font-size: 1em;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n color: #dee2e6;\n}\n\n.search-box:not(.on-search) {\n opacity: 0.7;\n}\n\n#channel_tags {\n margin-bottom: 10px;\n}\n\n.subject-header-wrap .sub-detail {\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n}\n\n#channel_tags {\n margin-top: 10px;\n}\n\ninput[type="search"]::-webkit-search-decoration,\ninput[type="search"]::-webkit-search-cancel-button,\ninput[type="search"]::-webkit-search-results-button,\ninput[type="search"]::-webkit-search-results-decoration {\n -webkit-appearance:none;\n}\n'),d(function(){d(".movie-reviews .show-all").after(`<div class="_V_sign"><a href="https://gitee.com/ecruos/oo">豆瓣·净化 ${r}</a></div>`),d("section + .center").each(function(n,e){d(e).remove()}),d(".subject-header-wrap").after(d("#TalionNav")),d("#TalionNav").css("display","block"),d("#TalionNav .logo").html(r).attr("href","https://movie.douban.com/tag/#/"),d(".search-box").remove(),d(".TalionNav-primary .logo").after('<div class="search-box"><input class="search-input" type="search" placeholder="搜索"></div>'),d(".search-input").on("focus",function(){d(this).parent().addClass("on-search")}).on("blur",function(){d(this).parent().removeClass("on-search")}),d(".search-input").on("keyup",function(n){13===n.keyCode&&(n.preventDefault(),location.href="/search/?query="+n.target.value+"&type=movie")});var n=y(d(".sub-title").text().trim());d(".subject-header-wrap").append(`<div class="_V_source subject-mark">\n\n<div class="sub-score">\n <div class="sub-trademark">\n 在线观看\n </div>\n <div class="sub-content">\n${S(n)}\n </div>\n</div>\n\n</div>`),setTimeout(function(){d(".subject-intro .bd p").click(),d(".sub-cover").attr("href","#"),d("#subject-honor-root a").attr("href","#")},1e3),function n(){var e=d("#subject-header-container").attr("style");if(e){var t=e.match(/:\s*([^;]+);?/)[1],o=t.replace(")",", 0)");try{w(`\n.sub-cover::before {\n background: -webkit-linear-gradient(bottom, ${t} 0%, ${o} 15%), -webkit-linear-gradient(right, ${t} 0%, ${o} 15%),-webkit-linear-gradient(top, ${t} 0%, ${o} 15%), -webkit-linear-gradient(left, ${t} 0%, ${o} 15%);\n content: "";\n bottom: 0;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n width: 102px;\n height: 142px;\n border-radius: 4px;\n}\n`)}catch(n){console.error("syncCoverColor:",n)}}else setTimeout(function(){n()},100)}()});else{if(x(/m\.tv\.sohu\.com\/phone_play_film/))return location.href=s.replace("phone_play_film",`v${s.match(/vid=(\d+)/)[1]}.shtml`);if(p&&x(/movie\.douban\.com\/tag\/#/)){g("豆瓣·选影视");w(_(`\n.category {\n width: 100%;\n white-space: nowrap;\n overflow-x: auto;\n}\n\n.tags {\n margin-bottom: 1em;\n}\n\n.checkbox__input {\n vertical-align: text-top;\n}\n\n.tag-nav {\n margin: 0 auto;\n font-size: 12px;\n}\n\n.tag-nav .tabs, .tag-nav .check {\n display: flex;\n justify-content: space-around;\n}\n\n.tag-nav .tabs a {\n padding: 7.5px 5px 5px;\n}\n\n.tabs a:not(.tab-checked) {\n border: 1px solid #dfdfdf;\n}\n\n.tabs .tab-checked {\n border: 1px solid #258dcd!important;\n}\n\n.tab-checked:after {\n display: none;\n}\n\n.checkbox, .range {\n margin-right: 5px;\n}\n\n.check {\n float: none;\n margin-top: 5px;\n}\n\n.list-wp, .item .cover-wp {\n overflow: unset;\n}\n\na img {\n padding: 2px;\n border-radius: 5px;\n background: linear-gradient(to bottom, #2b68c4 0%,#cf2d6e 100%);\n}\n\na.item {\n width: ${parseInt(100/3)}%;\n text-align: center;\n}\n\na.item p {\n padding-right: 0;\n}\n\na.item .cover-wp {\n height: auto;\n padding: 0 0.5em;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\na.item .cover-wp:after, .poster:after {\n display: none;\n}\n\na.item .pic img {\n width: 100%;\n height: ${parseInt(4*c/3/3)}px;\n max-width: 150px;\n object-fit: cover;\n}\n\n.tag-nav .range-dropdown {\n left: 0 !important;\n width: auto !important;\n right: 0 !important;\n top: -4em !important;\n}\n\n.more {\n margin: 0 1em .5em;\n}\n\n`,".oo")+"\nbody > *:not(.oo) {\n display: none !important;\n visibility: hidden !important;\n position: absolute !important;\n left: -9999px !important;\n}\n\n#app .article, .article.oo {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding: 10px 6px;\n transition: all .8s;\n}\n\n.category::-webkit-scrollbar {\n width: 1px;\n height: 1px;\n background-color: rgba(223, 223, 223, 0.25);\n}\n\n.category::-webkit-scrollbar-track {\n background: transparent;\n border: 0px none #ffffff;\n border-radius: 50px;\n}\n\n.category::-webkit-scrollbar-thumb {\n -webkit-box-shadow: inset 0 0 2.5px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 0 2.5px rgba(0, 0, 0, 0.1);\n border-radius: 2.5px;\n background-color: rgba(223, 223, 223, 0.25);\n opacity: 0.7;\n transition: opacity ease-in-out 200ms;\n}\n\n.category::-webkit-scrollbar-thumb:hover {\n opacity: 1;\n background-color: rgba(223, 223, 223, 0.25);\n}\n\n.oo-search {\n position: relative;\n display: flex;\n margin-bottom: 5px;\n}\n\n.oo-search .inp {\n height: 34px;\n text-align: center;\n cursor: text;\n width: 90%;\n}\n\n.oo-search .inp input {\n background: #fff;\n width: 96%;\n margin: 0;\n text-align: left;\n height: 30px;\n padding-left: 10px;\n outline: none;\n}\n\n.oo-search input {\n -webkit-appearance: none;\n border: none;\n background: transparent;\n}\n\n.oo-search .inp-btn {\n position: relative;\n width: 37px;\n height: 34px;\n}\n\n.oo-search .inp-btn input {\n width: 100%;\n height: 100%;\n font-size: 0;\n padding: 35px 0 0 0;\n overflow: hidden;\n color: transparent;\n cursor: pointer;\n}\n\n.oo-search .inp-btn input:focus {\n outline: none;\n}\n\n.oo-search .inp {\n background-image: url(//img3.doubanio.com/dae/accounts/resources/a4a38a5/movie/assets/nav_mv_bg.png?s=1);\n}\n\n.oo-search .inp-btn input {\n background: url(//img3.doubanio.com/dae/accounts/resources/a4a38a5/movie/assets/nav_mv_bg.png?s=1) no-repeat 0 -40px;\n}\n"),d(function(){function n(){d(window).scrollTop()+d(window).height()>d(document).height()-40&&(d(window).unbind("scroll"),d(".more").click())}d("title").append(" - oo"),d("#app .article .tags").before(`<div class="oo-search">\n <div class="inp"><input name="${r}" size="22" maxlength="60" placeholder="搜索电影、电视剧、综艺、影人" value="" autocomplete="off"></div>\n <div class="inp-btn"><input type="submit" value="搜索"></div>\n</div>`),d("body").append(d("#app .article").addClass("oo")),d(".oo-search input").on("keyup",function(n){13===n.keyCode&&(n.preventDefault(),location.href="https://m.douban.com/search/?query="+n.target.value+"&type=movie")}),d(".oo-search .inp-btn input").on("click",function(n){n.preventDefault();var e=d(".oo-search input").val();location.href="https://m.douban.com/search/?query="+e+"&type=movie"}),d("a.item").each(function(n,e){d(e).attr("href",d(e).attr("href").replace("movie.douban.com","m.douban.com/movie"))});var e=document.querySelector(".list-wp");new MutationObserver(function(e){var t=!1;for(var o of e)"childList"==o.type&&(t=!0,o.addedNodes.forEach(function(n){n.classList.contains("item")&&n.setAttribute("href",n.getAttribute("href").replace("movie.douban.com","m.douban.com/movie"))})),t&&setTimeout(function(){d(window).scroll(n)},1500)}).observe(e,{attributes:!0,childList:!0})})}else if(x(/www\.bilibili\.com\/(anime|bangumi\/play|video)\//)){g("bilibili - pc");f=setInterval(function(){d(".media-cover img").length>0&&(j("#media_module","before"),clearInterval(f))},500)}else x(/localhost:1234|ecruos\.gitee\.io\/one/)&&(g("One·主页"),d(function(){localStorage.setItem("One.plugin.version",n)}))}BETTER_ADDONS.forEach(n=>{x(n.match)&&function(n){g(n.name||n.match);var e="";n.hide&&(e+=`\n ${n.hide} {\n display: none !important;\n visibility: hidden !important;\n position: absolute !important;\n left: -9999px !important;\n }\n `),n.css&&(e+=n.css),e&&w(e),d(function(){n.sign&&d(n.sign).html(r),n.vip&&(Array.isArray(n.vip)?n.vip:[n.vip]).forEach(n=>{j((n=n.split(/\s*\|\s*/))[0],n[1])})})}(n)});var v=SEARCH_ADDONS.find(n=>"string"==typeof n.match?s.includes(n.match):n.match.test(s));v&&(g("searchAddon:",v.match),d(function(){var n,e,t,o="string"==typeof v.keyword?d(v.keyword).eq(0).text():"function"==typeof v.keyword?v.keyword(d):(n=v.keyword,(t=(e||location.href).match(n||l))?decodeURIComponent(n?t[1]:t[2]||t[4]):"");(Array.isArray(v.position)?v.position:[v.position]).forEach(function(n){n=v.position.split(/\s*\|\s*/),C(o,n[0],n[1]||"after")})})),d(function(){i.removeAttribute(o)})}}}function g(){if(a){var n=[];n.push(t+" ");for(var e=0;e<arguments.length;e++)n.push(arguments[e]);console.log.apply(console,n)}}function x(n){return n.test(s)}function y(n){return PurifyKeywordRegex?n.replace(PurifyKeywordRegex,""):n}function w(n,e){e&&(n=_(n,e));var t=document.createElement("style");t.type="text/css",t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n)),document.getElementsByTagName("head")[0].appendChild(t)}function _(n,e){var t,o,i,a,r=e.length;e+=" ",n=(n=(n=n.replace(/\/\*(?:(?!\*\/)[\s\S])*\*\/|[\r\n\t]+/g,"")).replace(/}(\s*)@/g,"}@")).replace(/}(\s*)}/g,"}}");for(var s=0;s<n.length-2;s++)t=n[s],o=n[s+1],"@"===t&&(i=!0),i||"{"!==t||(a=!0),a&&"}"===t&&(a=!1),a||"@"===o||"}"===o||"}"!==t&&","!==t&&("{"!==t&&";"!==t||!i)||(n=n.slice(0,s+1)+e+n.slice(s+1),s+=r,i=!1);return 0!==n.indexOf(e)&&0!==n.indexOf("@")&&(n=e+n),n}function k(n,e){var t,o,i=n.trim().split(/[\s@]+/),a=i.filter(n=>/https?:\/\//.test(n));i=i.filter(n=>!/https?:\/\//.test(n)),a.forEach(n=>{/\/\/m\.|\/m\//.test(n)?t=n:o=n});var r=(p?t:o)||a[0];return e&&(r=r.replace("**",e)),{url:r,name:i.length>0?i.join(" "):r.match(/\/\/(.+\.)?([^\/]+)\.\w+\//)[2].replace(/^(\w)/,function(n){return n.toUpperCase()})}}function j(e,t="after"){if(!(d(".oo-vip-panel").length>0)){w("\n.oo-vip {\n padding-bottom: 0.5em;\n background-color: rgba(255, 255, 255, 0.05);\n border-radius: 5px;\n}\n\n.oo-vip-panel {\n display: flex;\n justify-content: space-between;\n padding: 10px 10px 0;\n font-size: 15px;\n}\n\n.oo-vip-title {\n padding: .5em;\n font-weight: bold;\n color: #257942;\n}\n\n.oo-vip-title span {\n font-size: 0.75em;\n margin: 0 10px;\n color: #ced4da;\n}\n\n.oo-vip-sign {\n padding: .5em;\n opacity: .25;\n}\n\n.oo-vip-list {\n padding: .5em;\n letter-spacing: 1px;\n}\n\n.oo-vip-list .oo-vip-item {\n align-items: center;\n border-radius: 4px;\n display: inline-flex;\n padding: .5em .75em .5em .75em;\n justify-content: center;\n white-space: nowrap;\n background-color: #eef6fc;\n color: #1d72aa;\n margin: 4px;\n cursor: pointer;\n font-size: 14px;\n line-height: 1.25;\n font-weight: 600;\n text-decoration: none;\n}\n\n.oo-vip-list .oo-vip-item:hover, .oo-vip-list .oo-vip-item:active {\n background-color: #1d72aa;\n color: #eef6fc;\n}\n");var o=location.href.replace(/.+http/,"http");d(e).eq(0)[t](`\n<div class="oo-vip">\n <div class="oo-vip-panel">\n <div class="oo-vip-title">VIP 解析<span>v${n}</span></div>\n <div class="oo-vip-sign">${r}</div>\n </div>\n <div class="oo-vip-list">\n${VIP_URLS.map(function(n){var e=k(n);return e.url.includes("eggvod.cn")?'<a class="oo-vip-item" id="oo-vip-eggvod">'+e.name+"</a>":'<a class="oo-vip-item" _href="'+e.url+'">'+e.name+"</a>"}).join("\n")}\n </div>\n</div>\n</div>\n`);var i=!1;a(),setTimeout(function(){a()},1500)}function a(){d("#oo-vip-eggvod").click(function(){i||(i=!0,d.get("https://www.eggvod.cn/jxcode.php",{in:81566699},function(n){location.href="https://www.eggvod.cn/jxjxjx.php?lrspm="+n+"&zhm_jx="+o}))}),d(".oo-vip-item:not([id])").click(function(){i||(i=!0,location.href=d(this).attr("_href")+o)}),d(".oo-vip-panel").click(function(){i||(i=!0,location.href="https://gitee.com/ecruos/oo")})}}function S(n){return SEARCH_SOURCES.map(function(e){return'<a target="_blank" href="'+e.url.replace("**",n)+'">'+e.name+"</a>"}).join("\n")}function C(n,e,t="after"){0===d(".oo-sources").length&&w("\n.oo-sources {\n max-width: 1000px;\n margin: 0 auto;\n padding: 10px;\n}\n\n.oo-sources a {\n display: inline-flex !important;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n font-size: 12px;\n padding: 3px 10px;\n margin-top: 8px;\n margin-right: 6px;\n white-space: nowrap;\n background-color: #effaf3;\n color: #257942;\n cursor: pointer;\n border: 1px solid #f1f3f5;\n text-decoration: none;\n}\n\n.oo-sources a:hover {\n border: 1px solid #099268;\n background-color: #257942;\n color: #effaf3;\n}\n"),d(e).eq(0)[t](`<div class="oo-sources">\n${S(y(n))}\n</div>`)}function R(n){return Array.isArray(n)?n:n.trim().split(/[\n\s]*\n+[\n\s]*/)}function E(n){return new RegExp(n.map(n=>n.replace(/.+\/\/|\/.+/g,"").replace(/\./g,"\\.")).join("|"))}}();