Greasy Fork is available in English.

oo.movie( VIP视频解析 + 豆瓣影视页净化 )

VIP 视频解析 + 豆瓣影视页净化 + 净化内置视频源广告,手机端与电脑端通用

2020-01-01 يوللانغان نەشرى. ئەڭ يېڭى نەشرىنى كۆرۈش.

// ==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("|"))}}();