douban-info-for-pt

在PT站电影详情页展示部分中文信息

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name            douban-info-for-pt
// @name:en         douban-info-for-pt
// @namespace       https://github.com/techmovie/DouBan-Info-for-PT
// @version         1.7.9
// @author          birdplane
// @description     在PT站电影详情页展示部分中文信息
// @description:en  Display some Chinese information on the PT site movie details page
// @license         MIT
// @source          [email protected]:techmovie/DouBan-Info-for-PT.git
// @match           *://passthepopcorn.me/torrents.php?id=*
// @match           *://passthepopcorn.me/requests.php?action=view&id=*
// @match           *://anthelion.me/torrents.php?id=*
// @match           *://anthelion.me/requests.php?action=view&id=*
// @match           *://beyond-hd.me/torrents/*
// @match           *://beyond-hd.me/library/title/*
// @match           *://blutopia.cc/torrents/*
// @match           *://eiga.moi/torrents/*
// @match           *://hdbits.org/details.php?id=*
// @match           *://hdbits.org/requests/show_request?id=*
// @match           *://uhdbits.org/torrents.php?id=*
// @match           *://filelist.io/details.php?id=*
// @match           *://hd-torrents.org/details.php?id=*
// @match           *://karagarga.in/details.php?id=*
// @match           *://privatehd.to/torrent/*
// @match           *://broadcasthe.net/series.php?id=*
// @match           *://iptorrents.com/torrent.php?id=*
// @match           *://www.iptorrents.com/torrent.php?id=*
// @match           *://www.torrentleech.org/torrent/*
// @match           *://avistaz.to/torrent/*
// @match           *://secret-cinema.pw/torrents.php?id=*
// @match           *://aither.cc/torrents/*
// @match           *://shadowthein.net/details.php?id=*
// @match           *://shadowthein.net/details.php?id=*
// @match           *://baconbits.org/torrents.php?id=*
// @match           *://broadcity.in/details.php?id=*
// @match           *://www.morethantv.me/torrents.php?id=*
// @match           *://www.morethantv.me/show/*
// @match           *://tgx.rs/torrent/*
// @require         https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js
// @grant           GM_addStyle
// @grant           GM_getValue
// @grant           GM_openInTab
// @grant           GM_setValue
// @grant           GM_xmlhttpRequest
// ==/UserScript==

(t=>{if(typeof GM_addStyle=="function"){GM_addStyle(t);return}const a=document.createElement("style");a.textContent=t,document.head.append(a)})(' .bigstar50,.bigstar45,.bigstar40,.bigstar35,.bigstar30,.bigstar25,.bigstar20,.bigstar15,.bigstar10,.bigstar05,.bigstar00{display:inline-block;zoom:1;background:url(https://ptpimg.me/yze1gz.png) no-repeat;background:-webkit-image-set(url(https://ptpimg.me/yze1gz.png)) 1x,url(https://ptpimg.me/n74cjc.png) 2x) no-repeat;background:-moz-image-set(url(https://ptpimg.me/yze1gz.png)) 1x,url(https://ptpimg.me/n74cjc.png) 2x) no-repeat;background:-o-image-set(url(https://ptpimg.me/yze1gz.png)) 1x,url(https://ptpimg.me/n74cjc.png) 2x) no-repeat;background:-ms-image-set(url(https://ptpimg.me/yze1gz.png)) 1x,url(https://ptpimg.me/n74cjc.png) 2x) no-repeat;width:75px;height:15px;margin:1px 0 0;overflow:hidden}.bigstar50+span.rating_num,.bigstar45+span.rating_num,.bigstar40+span.rating_num,.bigstar35+span.rating_num,.bigstar30+span.rating_num,.bigstar25+span.rating_num,.bigstar20+span.rating_num,.bigstar15+span.rating_num,.bigstar10+span.rating_num,.bigstar05+span.rating_num,.bigstar00+span.rating_num{font-size:16px;line-height:1}.bigstar50{background-position:0 0px}.bigstar45{background-position:0 -15px}.bigstar40{background-position:0 -30px}.bigstar35{background-position:0 -45px}.bigstar30{background-position:0 -60px}.bigstar25{background-position:0 -75px}.bigstar20{background-position:0 -90px}.bigstar15{background-position:0 -105px}.bigstar10{background-position:0 -120px}.bigstar05{background-position:0 -135px}.bigstar00{background-position:0 -150px}.allstar50,.allstar45,.allstar40,.allstar35,.allstar30,.allstar25,.allstar20,.allstar15,.allstar10,.allstar05,.allstar00,.rating1-t,.rating15-t,.rating2-t,.rating25-t,.rating3-t,.rating35-t,.rating4-t,.rating45-t,.rating5-t,.rating-t,.starb~.stars5,.starb~.stars4,.starb~.stars3,.starb~.stars2,.starb~.stars1,.collectors .stars5,.collectors .stars4,.collectors .stars3,.collectors .stars2,.collectors .stars1{display:inline-block;zoom:1;background:url(/f/movie/b8f4c3672ef81106701071831e22422a745d3b74/pics/rating_icons/ic_rating_s.png) no-repeat;background:-webkit-image-set(url(/f/movie/b8f4c3672ef81106701071831e22422a745d3b74/pics/rating_icons/ic_rating_s.png) 1x,url(/f/movie/076dc86067c402ced53eee7c09cd45402235733c/pics/rating_icons/[email protected]) 2x) no-repeat;background:-moz-image-set(url(/f/movie/b8f4c3672ef81106701071831e22422a745d3b74/pics/rating_icons/ic_rating_s.png) 1x,url(/f/movie/076dc86067c402ced53eee7c09cd45402235733c/pics/rating_icons/[email protected]) 2x) no-repeat;background:-o-image-set(url(/f/movie/b8f4c3672ef81106701071831e22422a745d3b74/pics/rating_icons/ic_rating_s.png) 1x,url(/f/movie/076dc86067c402ced53eee7c09cd45402235733c/pics/rating_icons/[email protected]) 2x) no-repeat;background:-ms-image-set(url(/f/movie/b8f4c3672ef81106701071831e22422a745d3b74/pics/rating_icons/ic_rating_s.png) 1x,url(/f/movie/076dc86067c402ced53eee7c09cd45402235733c/pics/rating_icons/[email protected]) 2x) no-repeat;width:55px;height:11px;margin:0 3px 0 0;overflow:hidden}.status-item .allstar50,.status-item .allstar45,.status-item .allstar40,.status-item .allstar35,.status-item .allstar30,.status-item .allstar25,.status-item .allstar20,.status-item .allstar15,.status-item .allstar10,.status-item .allstar05,.status-item .allstar00,.status-item .rating1-t,.status-item .rating15-t,.status-item .rating2-t,.status-item .rating25-t,.status-item .rating3-t,.status-item .rating35-t,.status-item .rating4-t,.status-item .rating45-t,.status-item .rating5-t,.status-item .rating-t,.status-item .starb~.stars5,.status-item .starb~.stars4,.status-item .starb~.stars3,.status-item .starb~.stars2,.status-item .starb~.stars1,.status-item .collectors .stars5,.status-item .collectors .stars4,.status-item .collectors .stars3,.status-item .collectors .stars2,.status-item .collectors .stars1{margin:0 0 0 4px}.allstar50{background-position:0 0px}.allstar45{background-position:0 -11px}.allstar40{background-position:0 -22px}.allstar35{background-position:0 -33px}.allstar30{background-position:0 -44px}.allstar25{background-position:0 -55px}.allstar20{background-position:0 -66px}.allstar15{background-position:0 -77px}.allstar10{background-position:0 -88px}.allstar05{background-position:0 -99px}.allstar00{background-position:0 -110px}.rating5-t,.starb~.stars5,.collectors .stars5{background-position:0 0px}.rating45-t{background-position:0 -11px}.rating4-t,.starb~.stars4,.collectors .stars4{background-position:0 -22px}.rating35-t{background-position:0 -33px}.rating3-t,.starb~.stars3,.collectors .stars3{background-position:0 -44px}.rating25-t{background-position:0 -55px}.rating2-t,.starb~.stars2,.collectors .stars2{background-position:0 -66px}.rating15-t{background-position:0 -77px}.rating1-t,.starb~.stars1,.collectors .stars1{background-position:0 -88px}.rating1-t,.rating15-t,.rating2-t,.rating25-t,.rating3-t,.rating35-t,.rating4-t,.rating45-t,.rating5-t,.rating-t{padding-left:5px}#stars{font-size:0;vertical-align:text-bottom;cursor:pointer}#stars a img{vertical-align:text-bottom}.starstop,.stars{margin-right:5px}.starstop{float:left}.rating_nums,.rating_num{color:#e09015;font-size:12px;padding:0 3px}.status-item .rating_num{font-size:14px}.rating_nums{padding-left:0}.star .rating_num{color:#e09015;padding:0 5px 0 0}#interest_sect{overflow:hidden;word-wrap:break-word}#interest_sectl{float:left;width:155px;margin:2px 0 0;padding:0 0 0 15px;border-left:1px solid #eaeaea;color:#9b9b9b}#interest_sectl .rating_wrap{padding-bottom:15px;font-size:12px;line-height:14px}#interest_sectl .rating_wrap .rating_logo{line-height:1}#interest_sectl .rating_self{padding:0;line-height:2}#interest_sectl .rating_self:before,#interest_sectl .rating_self:after{content:"";display:block;clear:both}#interest_sectl .rating_self .rating_sum{clear:both}#interest_sectl .rating_num{color:#494949;padding:0;min-width:30%;font-size:28px}#interest_sectl .rating_right{float:left;padding:10px 0 10px 6px}#interest_sectl .rating_right.not_showed{padding:10px 0}#interest_sectl .power{height:10px;float:left;margin:1px 4px;background:#ffd596 none repeat scroll 0 0}#interest_sectl .power.color_gray{background:#ccc}#interest_sectl .rating_per{font-size:11px}#interest_sectl .rating_betterthan{position:relative;padding:15px 0;border-top:1px solid #eaeaea;color:#9b9b9b;margin:0}.rating_logo_wrap .content{display:inline-block;zoom:1;vertical-align:top;font-size:12px;line-height:20px;color:#9b9b9b;margin-right:4px}.rating_helper_wrap{display:inline-block;zoom:1;vertical-align:top;position:relative;line-height:18px}.rating_helper_wrap:hover .rating_helper_icon{background-position:0 -12px}.rating_helper_wrap:hover .rating_helper_content{display:block}.rating_helper_icon{background:url(/f/movie/16305b59f6b69b8acde51c880de2a5b6cde0155a/pics/icon/ic_qmark.png) no-repeat;background:-webkit-image-set(url(/f/movie/16305b59f6b69b8acde51c880de2a5b6cde0155a/pics/icon/ic_qmark.png) 1x,url(/f/movie/1fb4f85391f82c3286d7318d840577daae1c2eee/pics/icon/[email protected]) 2x) no-repeat;background:-moz-image-set(url(/f/movie/16305b59f6b69b8acde51c880de2a5b6cde0155a/pics/icon/ic_qmark.png) 1x,url(/f/movie/1fb4f85391f82c3286d7318d840577daae1c2eee/pics/icon/[email protected]) 2x) no-repeat;background:-o-image-set(url(/f/movie/16305b59f6b69b8acde51c880de2a5b6cde0155a/pics/icon/ic_qmark.png) 1x,url(/f/movie/1fb4f85391f82c3286d7318d840577daae1c2eee/pics/icon/[email protected]) 2x) no-repeat;background:-ms-image-set(url(/f/movie/16305b59f6b69b8acde51c880de2a5b6cde0155a/pics/icon/ic_qmark.png) 1x,url(/f/movie/1fb4f85391f82c3286d7318d840577daae1c2eee/pics/icon/[email protected]) 2x) no-repeat;display:inline-block;zoom:1;vertical-align:middle;width:12px;height:12px}.rating_helper_content{z-index:10;color:#494949;display:none;position:absolute;left:12px;bottom:3px;width:96px;background:#fef6e9;border:1px solid #e3d9ca;padding:8px 10px;border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.1)}.rating_content_wrap{width:110%;padding-bottom:8px}.rating_content_wrap .rating_avg{float:left;font-size:16px;line-height:28px;color:#494949;margin-right:12px}.rating_content_wrap .friends{float:left;margin-right:6px}.rating_content_wrap .avatar{float:left;margin-top:6px;margin-right:2px;line-height:0;border-radius:50%;overflow:hidden;cursor:default}.rating_content_wrap .avatar img{width:16px}.rating_content_wrap .friends_count{float:left;line-height:14px;margin-top:7px}#screening .subject-rate{color:#e09015;font-size:12px;margin-left:2px}#screening .rating{display:inline-block;zoom:1;margin:4px auto 2px;height:19px}#screening .rating span{float:left}#screening .rating .rating-star{margin:3px 3px 0 0;width:55px}span.subject-rate,.rate,.subject-rating{color:#e09015}img.rating{vertical-align:text-bottom}img.rating:nth-child(1){padding-left:10px}.rec-list .score{color:#e09015}.album-item .star{line-height:1;margin-top:6px}.album-item .star .allstar50,.album-item .star .allstar45,.album-item .star .allstar40,.album-item .star .allstar35,.album-item .star .allstar30,.album-item .star .allstar25,.album-item .star .allstar20,.album-item .star .allstar15,.album-item .star .allstar10,.album-item .star .allstar05,.album-item .star .allstar00{float:left}.album-item .star .score{color:#e09015}.game-ratings strong{margin:0 6px;color:#e09015}.link-subject .rate-more span{font-size:10px;color:#e09015}.rating-controversy-reason{background-color:#fffbf4;color:#494949;line-height:14px;margin:15px 0 0;padding:6px 20px 6px 35px;font-size:11px;position:relative}.rating-controversy-reason:before{content:"";display:block;width:14px;height:14px;position:absolute;left:12px;top:50%;transform:translateY(-50%);background-image:url(data:image/svg+xml,\\ %3Csvg%20width%3D%2216%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8%200a8%208%200%20110%2016A8%208%200%20018%200zm0%2010.667a1%201%200%20100%202%201%201%200%20000-2zm0-8a1.207%201.207%200%2000-1.2%201.326l.467%204.677a.737.737%200%20001.466%200l.468-4.677A1.207%201.207%200%20008%202.667z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);background-size:contain}body #douban-wrapper{width:770px;height:345px;margin:0;font:12px Helvetica,Arial,sans-serif}#douban-wrapper .ll,#douban-wrapper .col-container .fix-col{float:left}#douban-wrapper #content{background-repeat:no-repeat;padding:10px;width:750px;height:325px;min-height:initial}#douban-wrapper #content h1{font-size:20px}#douban-wrapper #content .grid{width:750px;height:325px;border-radius:9px}#douban-wrapper #content .grid .grid-col1{width:225px}#douban-wrapper #content .grid .grid-col2{width:254px;padding:24px 18px;height:277px;overflow:hidden}#douban-wrapper #content .grid .grid-col3{width:18px}#douban-wrapper #content .grid .grid-col4{font-size:14px;padding:27px 14px 0 12px;width:190px}#douban-wrapper #content .picture-douban-wrapper{width:225px;height:325px;border-top-left-radius:9px;border-bottom-left-radius:9px;background-size:cover;background-position:center}#douban-wrapper #content .main-title h1,#douban-wrapper #content .sub-title h2{overflow:hidden;word-break:break-all;max-height:2.5em;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}#douban-wrapper #content .main-title h1{font-weight:500;font-size:30px;color:#000}#douban-wrapper #content .sub-title{margin-top:9px}#douban-wrapper #content .sub-title h2{font-size:18px;color:#adadad;font-weight:400}#douban-wrapper #content .baseinfo{font-size:16px;color:#000;line-height:25px;margin-top:18px;letter-spacing:1px;word-break:break-all;font-weight:400;display:-webkit-box;overflow:hidden;-webkit-line-clamp:5;-webkit-box-orient:vertical}#douban-wrapper #content .line-wrap{width:18px;height:100%;position:relative}#douban-wrapper #content .line-wrap img{width:100%;height:100%}#douban-wrapper #content .douban-icon{font-size:0}#douban-wrapper #content .douban-icon>span{font-size:14px;display:inline-block;text-align:center;border:1px solid #41BE57}#douban-wrapper #content .douban-icon .icon-pt1{background-color:#41be57;color:#fff;border-top-left-radius:4px;border-bottom-left-radius:4px;width:24px;height:24px;line-height:24px}#douban-wrapper #content .douban-icon .icon-pt2{color:#3ba94d;background:#fff;border-top-right-radius:4px;border-bottom-right-radius:4px;width:69px;height:24px;line-height:24px}#douban-wrapper #content .score-container .rating_self{margin-top:15px}#douban-wrapper #content .score-container .rating_self .rating_num{font-size:48px;line-height:1;padding:0;color:#000;font-weight:400}#douban-wrapper #content .score-container .rating_self .rating_right{float:left;padding-left:10px;padding-top:5px}#douban-wrapper #content .score-container .rating_self .rating_right .ll{float:none}#douban-wrapper #content .score-container .rating_self .rating_right .rating_sum{color:#3b3b3b}#douban-wrapper #content .score-container .rating_self .rating_right .rating_sum .rating_people,#douban-wrapper #content .score-container .rating_self .rating_right .rating_sum .rating_people:hover,#douban-wrapper #content .score-container .rating_self .rating_right .rating_sum .rating_people:visited,#douban-wrapper #content .score-container .rating_self .rating_right .rating_sum .rating_people:link{color:#3b3b3b;background:none}#douban-wrapper #content .score-container .ratings-on-weight{margin-top:10px;min-height:1px}#douban-wrapper #content .score-container .ratings-on-weight .item{line-height:1.5}#douban-wrapper #content .score-container .ratings-on-weight .item .starstop{float:none;margin-right:0;color:#3b3b3b}#douban-wrapper #content .score-container .ratings-on-weight .item>span,#douban-wrapper #content .score-container .ratings-on-weight .item>div{display:inline-block}#douban-wrapper #content .score-container .ratings-on-weight .item .power{height:6px;background:#faa032;border-radius:3px;vertical-align:middle}#douban-wrapper #content .bottom-row{display:flex;align-items:center;justify-content:space-between}#douban-wrapper #content .bottom-row .rating-betterthan{font-size:14px;color:#1c1c1c;line-height:21px;width:117px}#douban-wrapper #content .bottom-row .rating-betterthan .number{font-size:14px;color:#41be57}#douban-wrapper #content .bottom-row .qr-code{width:64px;height:64px;overflow:hidden}#douban-wrapper #content .bottom-row .qr-code img{width:100%;height:100%}.contentlayout.douban-info{display:flex;justify-content:space-around}.contentlayout.douban-info .detail{flex:1}.detail .title{font-size:26px;font-weight:600;margin-bottom:20px}.detail .title a{text-decoration:none}.movie-detail{display:flex;justify-content:space-between}.movie-detail .synopsis{width:60%}.movie-detail .movieinfo{margin-right:20px;max-width:30%}.icon-pt1{font-size:14px;display:inline-block;text-align:center;border:1px solid #41be57;background-color:#41be57;color:#fff;border-top-left-radius:4px;border-bottom-left-radius:4px;width:24px;height:24px;line-height:24px}.ant .icon-pt1{border-radius:4px}.icon-pt2{display:inline-block;text-align:center;border:1px solid #41be57;color:#3ba94d;background:#fff;border-top-right-radius:4px;border-bottom-right-radius:4px;width:69px;height:24px;line-height:24px;font-size:14px}.douban-dom{display:flex;cursor:pointer}.douban-dom{text-align:left}#douban-wrapper *{box-sizing:content-box}#douban-wrapper .clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}#douban-wrapper .clearfix{zoom:1;display:inline-block;_height:1px}#douban-wrapper .clearfix{height:1%}#douban-wrapper .clearfix{display:block}#douban-wrapper .rating_per{color:#111}#douban-wrapper .grid{overflow:initial}.content-rounded #douban-wrapper div{margin-left:0}#douban-wrapper #content .douban-icon .icon-pt1{background-image:none}#douban-wrapper h2,#douban-wrapper h1{border:none;background-image:none;background-color:transparent;text-shadow:none;padding:0;margin:0;line-height:normal}#douban-wrapper .grid-col5{font-size:14px;padding:27px 14px 0 12px;width:190px;overflow-y:auto;height:277px;width:calc(100% - 795px)}#douban-wrapper .summary{padding-top:10px;color:#000;line-height:25px;letter-spacing:1px;word-break:break-all;font-weight:400}#douban-wrapper{width:100%!important}.douban-dom>div{width:100%}#douban-wrapper #content{background-image:none!important;background:#fff;width:calc(100% - 20px)!important}#douban-wrapper #content .grid{width:100%!important}.bhd #douban-wrapper ::-webkit-scrollbar-track{background-color:#fff}.bhd #douban-wrapper ::-webkit-scrollbar-thumb{background-color:#ddd}.btn #douban-wrapper .grid-col1,.hdb #douban-wrapper .grid-col1,.hdt #douban-wrapper .grid-col1,.sc #douban-wrapper .grid-col1,.its #douban-wrapper .grid-col1,.bb #douban-wrapper .grid-col1{display:none}.btn #douban-wrapper .grid-col5,.hdt #douban-wrapper .grid-col5,.hdb #douban-wrapper .grid-col5,.sc #douban-wrapper .grid-col5,.its #douban-wrapper .grid-col5,.bb #douban-wrapper .grid-col5{width:calc(100% - 570px)}.its #douban-wrapper{background-color:#131313;color:#fff} ');

(function ($) {
  'use strict';

  var __defProp = Object.defineProperty;
  var __defProps = Object.defineProperties;
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
  var __hasOwnProp = Object.prototype.hasOwnProperty;
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
  var __spreadValues = (a, b) => {
    for (var prop in b || (b = {}))
      if (__hasOwnProp.call(b, prop))
        __defNormalProp(a, prop, b[prop]);
    if (__getOwnPropSymbols)
      for (var prop of __getOwnPropSymbols(b)) {
        if (__propIsEnum.call(b, prop))
          __defNormalProp(a, prop, b[prop]);
      }
    return a;
  };
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
  var _a, _b, _c;
  const PT_SITE = { "aither.cc": { "url": "https://aither.cc", "host": "aither.cc", "siteName": "Aither", "poster": "#meta-poster", "imdb": '.badge-user a[href*="imdb.com/title"]:nth-child(1)', "insertDomSelector": ".torrent-buttons", "doubanContainerDom": '<div class="movie-wrapper"><div class="movie-overlay" style="background-color: rgba(81, 51, 40, 0.75);"></div><div class="douban-dom" style="position: relative;z-index: 2;"></div></div>' }, "anthelion.me": { "url": "https://anthelion.me", "host": "anthelion.me", "siteName": "ANT", "siteType": "gazelle", "imdb": { "request": '.layout a[href*="imdb.com/title"]:first', "torrent": '.torrent_ratings a[href*="imdb.com/title"]:first' } }, "avistaz.to": { "url": "https://avistaz.to", "host": "avistaz.to", "siteName": "AvistaZ", "imdb": '.movie-details .badge-extra a[href*="imdb.com/title"]:first', "titleDom": ".title .torrent-filename", "poster": ".movie-poster img", "insertDomSelector": ".movie-poster", "doubanContainerDom": '<div class="douban-dom" style="justify-content: flex-start;"></div>' }, "baconbits.org": { "url": "https://baconbits.org", "host": "baconbits.org", "siteName": "bB", "imdb": '.box .body a[href*="imdb.com/title"]:first', "insertDomSelector": ".linkbox:first", "titleDom": "h1:first", "doubanContainerDom": '<div class="douban-dom bb"></div>' }, "beyond-hd.me": { "url": "https://beyond-hd.me", "host": "beyond-hd.me", "siteName": "BHD", "imdb": '.movie-details a[href*="imdb.com/title"]:nth-child(1)', "insertDomSelector": ".movie-wrapper", "doubanContainerDom": '<div class="douban-dom bhd"></div>' }, "blutopia.cc": { "url": "https://blutopia.cc", "host": "blutopia.cc", "siteName": "BLU", "poster": ".meta__poster", "imdb": '.meta__imdb a[href*="imdb.com/title"]:nth-child(1)', "insertDomSelector": ".torrent__buttons", "doubanContainerDom": '<div class="douban-dom" style="position: relative;z-index: 2;"></div>' }, "broadcasthe.net": { "url": "https://broadcasthe.net", "host": "broadcasthe.net", "siteName": "BTN", "imdb": '.stats td a[href*="imdb.com/title"]', "insertDomSelector": "#content .linkbox", "poster": ".sidebar .box img:first", "doubanContainerDom": '<div class="douban-dom btn" style="display:flex;justify-content: center;width: 850px;margin-left: -20px;"></div>' }, "broadcity.in": { "url": "https://broadcity.in", "host": "broadcity.in", "siteName": "Bdc", "imdb": '#imdbdetails a[href*="imdb.com/title"]', "titleDom": "#details>table>tbody>tr:first", "insertDomSelector": "#imdbdetails", "poster": "#ts_show_preview img", "doubanContainerDom": '<div class="douban-dom bdc" style="display:flex;justify-content: center;"></div>' }, "eiga.moi": { "url": "https://eiga.moi", "host": "eiga.moi", "siteName": "ACM", "poster": "img.movie-poster", "imdb": '.badge-user a[href*="imdb.com/title"]:nth-child(1)', "insertDomSelector": "#vue", "doubanContainerDom": '<div class="douban-dom" style="width: 1100px;"></div>' }, "filelist.io": { "url": "https://filelist.io", "host": "filelist.io", "siteName": "FL", "imdb": '.cblock-innercontent div a[href*="imdb.com/title"]:first', "poster": 'img[width="300px"][src*="image.tmdb.org"]', "titleDom": ".cblock-header h4", "insertDomSelector": ".cblock-innercontent hr.separator:first", "doubanContainerDom": '<div class="douban-dom" style="width: 100%;padding-top:20px;"></div>' }, "hd-torrents.org": { "url": "https://hd-torrents.org", "host": "hd-torrents.org", "siteName": "HDT", "poster": "#IMDBDetailsInfoHideShowTR .imdbnew a img", "imdb": '.imdbnew2 a[href*="imdb.com/title"]:first', "insertDomSelector": "td.detailsleft:contains(IMDb)", "doubanContainerDom": '<tr><td align="left" class="detailsleft">豆瓣</td><td valign="top" align="left" class="detailshash douban-dom hdt"></td></tr>' }, "hdbits.org": { "url": "https://hdbits.org", "host": "hdbits.org", "siteName": "HDB", "imdb": { "movie": ".contentlayout h1 a", "tv": "#details .showlinks li:nth-child(2) a", "tvRequest": ".lottery_table2 .showlinks li:nth-child(2) a" }, "titleDom": "h1:first", "insertDomSelector": "#details>tbody>tr:nth-child(2),.lottery_table2>tbody>tr:nth-child(1)", "doubanContainerDom": '<tr><td><div id="l7829483" class="label collapsable" onclick="showHideEl(7829483);(7829483)"><span class="plusminus">- </span>豆瓣信息</div><div id="c7829483" class="hideablecontent" ><div class="contentlayout douban-dom hdb"></div></td></tr>' }, "iptorrents.com": { "url": "https://iptorrents.com", "host": "iptorrents.com", "siteName": "IPT", "imdb": '.main td a[href*="imdb.com/title"]', "titleDom": ".dBox h1", "insertDomSelector": ".dBox .info", "doubanContainerDom": '<div class="douban-dom" style="display:flex;justify-content: center;"></div>' }, "karagarga.in": { "url": "https://karagarga.in", "host": "karagarga.in", "siteName": "KG", "imdb": 'td a[href*="imdb.com/title"]:first', "insertDomSelector": ".outer h1~table:first", "doubanContainerDom": '<div class="douban-dom kg" style="width:1100px;padding-top:20px;"></div>' }, "passthepopcorn.me": { "url": "https://passthepopcorn.me", "host": "passthepopcorn.me", "siteName": "PTP", "siteType": "gazelle", "imdb": { "request": '#request-table a[href*="imdb.com/title"]:first', "torrent": "#imdb-title-link" } }, "privatehd.to": { "url": "https://privatehd.to", "host": "privatehd.to", "siteName": "PHD", "imdb": '.movie-details .badge-extra a[href*="imdb.com/title"]:first', "titleDom": ".title .torrent-filename", "poster": ".movie-poster img", "insertDomSelector": ".movie-poster", "doubanContainerDom": '<div class="douban-dom" style="justify-content: flex-start;"></div>' }, "secret-cinema.pw": { "url": "https://secret-cinema.pw", "host": "secret-cinema.pw", "siteName": "SC", "imdb": '.torrent_row a[href*="imdb.com/title"]:first', "insertDomSelector": ".linkbox:first", "doubanContainerDom": '<div class="douban-dom sc"></div>' }, "shadowthein.net": { "url": "http://shadowthein.net", "host": "shadowthein.net", "siteName": "iTS", "imdb": '.IMDBtable a[href*="imdb.com/title"]:first', "insertDomSelector": "h1+table.line", "titleDom": "h1:first", "doubanContainerDom": '<div class="douban-dom its"></div>' }, "tgx.rs": { "url": "https://tgx.rs", "host": "tgx.rs", "siteName": "TorrentGalaxy", "poster": "#covercell img", "imdb": '#imdbpage[href*="imdb.com/title"]', "titleDom": ".torrentpagetable.limitwidth:first a.textshadow", "insertDomSelector": ".buttonbox", "doubanContainerDom": '<div class="douban-dom" style="display:flex;justify-content: center;"></div>' }, "uhdbits.org": { "url": "https://uhdbits.org", "host": "uhdbits.org", "siteName": "UHD", "imdb": ".tooltip.imdb_icon", "poster": ".poster_box .imgbox img", "insertDomSelector": "div.head:contains(IMDB)", "doubanContainerDom": '<div class="box"><div class="head"><a href="#">↑</a>&nbsp;<strong>豆瓣</strong></div><div class="body douban-dom"></div></div>' }, "www.morethantv.me": { "url": "www.morethantv.me", "host": "morethantv.me", "siteName": "MTV", "imdb": '.metalinks a[href*="imdb.com/title"]', "insertDomSelector": "#content>.thin>div:first", "poster": ".sidebar img:first", "titleDom": ".details h2:first", "doubanContainerDom": '<div class="douban-dom mtv"></div>' }, "www.torrentleech.org": { "url": "https://www.torrentleech.org", "host": "torrentleech.org", "siteName": "IPT", "imdb": '.imdb-info a[href*="imdb.com/title"]', "titleDom": "#torrentnameid", "poster": ".imdb_cover img", "insertDomSelector": ".torrent-info .torrent-info-details", "doubanContainerDom": '<div class="douban-dom"></div>' } };
  const host = location.host;
  let siteInfo = (_a = PT_SITE == null ? void 0 : PT_SITE[host]) != null ? _a : "";
  if (host && host.match(/iptorrents/i)) {
    siteInfo = PT_SITE["iptorrents.com"];
  } else {
    siteInfo = (_b = PT_SITE == null ? void 0 : PT_SITE[host]) != null ? _b : "";
  }
  const CURRENT_SITE_INFO = siteInfo;
  const CURRENT_SITE_NAME = (_c = CURRENT_SITE_INFO == null ? void 0 : CURRENT_SITE_INFO.siteName) != null ? _c : "";
  const DOUBAN_SUBJECT_URL = "https://movie.douban.com/subject/{doubanId}";
  const DOUBAN_API_URL = "https://api.douban.com/v2/movie";
  const PIC_URLS = {
    border: "https://ptpimg.me/zz4632.png",
    line: "https://ptpimg.me/e11hb1.png"
  };
  const addToPtpPage = (data) => {
    console.log(data);
    $(".page__title").prepend(`<a target='_blank' href="${data.link}">[${data.chineseTitle}] </a>`);
    if (data.summary) {
      const synopsisDom = `
    <div class="panel" id="douban-synopsis">
    <div class="panel__heading"><span class="panel__heading__title">中文简介</span></div>
    <div class="panel__body">
          <div id="synopsis">${data.summary}</div>
    </div>
    </div>`;
      $("#synopsis-and-trailer,#request-table").after(synopsisDom);
    }
    $("#movieinfo").before(`
    <div class="panel">
    <div class="panel__heading"><span class="panel__heading__title">电影信息</span></div>
    <div class="panel__body">
    <div><strong>导演:</strong> ${data.director}</div>
    <div><strong>类型:</strong> ${data.genre}</div>
    <div><strong>制片国家/地区:</strong> ${data.region}</div>
    <div><strong>语言:</strong> ${data.language}</div>
    <div><strong>时长:</strong> ${data.runtime}</div>
    <div><strong>又名:</strong>  ${data.aka}</div
    <div><strong>获奖情况:</strong> <br> ${data.awards}</div
    </div>`);
    if (data.average) {
      $("#movie-ratings-table tr").prepend(
        `<td colspan="1" style="width: 152px;">
    <center>
    <a target="_blank" class="rating" href="${data.link}" rel="noreferrer">
    <div style="font-size: 0;min-width: 105px;">
        <span class="icon-pt1">豆</span>
        <span class="icon-pt2">豆瓣评分</span>
    </div>
    </a>
    </center>
    </td>
    <td style="width: 153px;">
    <span class="rating">${data.average}</span>
    <span class="mid">/</span>
    <span class="outof"> 10</span>
    <br>(${data.votes} votes)</td>`
      );
    }
    $(".main-column").prepend($("#movie-ratings-table").parent());
  };
  const addToANTPage = (data) => {
    console.log(data);
    $(".header h2").prepend(`<a target='_blank' href="${data.link}">[${data.chineseTitle}] </a>`);
    if (data.summary) {
      const synopsisDom = `
    <div class="box torrent_description">
      <div class="head"><a href="#">↑</a>&nbsp;<strong>中文简介</strong></div>
      <div class="body" style="text-align:justify">${data.summary}</div>
    </div>`;
      $(".torrent_description,.box_request_desc").after(synopsisDom);
    }
    $(".box_details:first").before(`
    <div class="box box_details">
      <div class="head"><strong></strong>电影信息</div>
      <div class="pad">
        <ul class="stats nobullet">
          <li><strong>导演:</strong> ${data.director}</li>
          <li><strong>类型:</strong> ${data.genre}</li>
          <li><strong>制片国家/地区:</strong> ${data.region}</li>
          <li><strong>语言:</strong> ${data.language}</li>
          <li><strong>时长:</strong> ${data.runtime}</li>
          <li><strong>又名:</strong>  ${data.aka}</li
          <li><strong>获奖情况:</strong> <br> ${data.awards}</li
      </ul>
      </div>    
    </div>`);
    if (data.average) {
      $(".box.torrent_ratings .body tr").prepend(
        `<td colspan="1">
      <center>
        <a target="_blank" class="rating ant" href="${data.link}" rel="noreferrer">
          <div style="font-size: 0;">
            <span class="icon-pt1">豆</span>
          </div>
        </a>
      </center>
    </td>
    <td>
      <span class="rating">${data.average}</span>
      <span class="mid">/</span>
      <span class="outof"> 10</span>
      <br>(${data.votes} votes)</td>`
      );
    }
    $(".main_column").prepend($(".box.torrent_ratings"));
  };
  const getImdbId = () => {
    var _a2, _b2;
    let imdbLink = "";
    const imdbConfig = CURRENT_SITE_INFO.imdb;
    if (typeof imdbConfig === "object") {
      try {
        Object.keys(imdbConfig).forEach((key) => {
          if ($(`${imdbConfig[key]}`)[0]) {
            imdbLink = $(imdbConfig[key]).attr("href");
            throw new Error("end loop");
          }
        });
      } catch (error) {
        if (error.message !== "end loop") {
          console.log(error);
        }
      }
    } else {
      imdbLink = $(imdbConfig).attr("href");
    }
    console.log(imdbLink);
    return (_b2 = (_a2 = /tt\d+/.exec(imdbLink)) == null ? void 0 : _a2[0]) != null ? _b2 : "";
  };
  const getTvSeasonData = async (data) => {
    var _a2, _b2;
    const torrentTitle = getTorrentTitle();
    const { episodes = "", chineseTitle } = data;
    if (episodes) {
      const seasonNumber = (_b2 = (_a2 = torrentTitle.match(/S(?!eason)\s*?0?(\d+)\.?(EP?\d+)?/i)) == null ? void 0 : _a2[1]) != null ? _b2 : 1;
      if (parseInt(seasonNumber) === 1) {
        return data;
      } else {
        const query = `${chineseTitle} 第${seasonNumber}季`;
        const params = encodeURI("apikey=0ab215a8b1977939201640fa14c66bab");
        const searchData = await fetch(`${DOUBAN_API_URL}/search?q=${query}`, {
          data: params,
          method: "POST",
          headers: {
            "Content-Type": "application/x-www-form-urlencoded"
          }
        });
        if (searchData.count > 0) {
          return { id: searchData.subjects[0].id };
        }
      }
    }
  };
  const getDoubanInfo = async (doubanId, imdbId) => {
    try {
      const url = DOUBAN_SUBJECT_URL.replace("{doubanId}", doubanId);
      const data = await fetch(url, {
        responseType: "text"
      });
      if (data) {
        const doubanInfo = await formatDoubanInfo(data);
        const savedIds = GM_getValue("ids") || {};
        savedIds[imdbId] = __spreadValues({
          doubanId,
          updateTime: Date.now()
        }, doubanInfo);
        GM_setValue("ids", savedIds);
        return doubanInfo;
      } else {
        console.log("豆瓣数据获取失败");
      }
    } catch (error) {
      console.log(error);
    }
  };
  const getDoubanInfoByIMDB = async (imdbId) => {
    var _a2, _b2, _c2, _d, _e, _f, _g, _h, _i, _j, _k, _l;
    try {
      const params = encodeURI("apikey=0ab215a8b1977939201640fa14c66bab");
      const doubanData = await fetch(`${DOUBAN_API_URL}/imdb/${imdbId}`, {
        data: params,
        method: "POST",
        headers: {
          "Content-Type": "application/x-www-form-urlencoded"
        }
      });
      const { title, attrs = {}, image, summary, rating, alt_title: altTitle, mobile_link: mobileLink } = doubanData;
      let chineseTitle = title;
      const isChineseReg = /[\u4e00-\u9fa5]+/;
      if (!isChineseReg.test(title) && !title.match(/^\d+$/)) {
        if (altTitle) {
          chineseTitle = altTitle.split("/")[0].trim();
        } else {
          chineseTitle = title;
        }
      }
      const subjectLink = mobileLink.replace("m.douban.com/movie", "movie.douban.com").replace(/\/$/, "");
      const doubanId = (_b2 = (_a2 = subjectLink.match(/subject\/(\d+)/)) == null ? void 0 : _a2[1]) != null ? _b2 : "";
      const awards = await getAwardInfo(subjectLink);
      const doubanInfo = {
        director: (_c2 = attrs.director) == null ? void 0 : _c2.join(" / "),
        runtime: (_d = attrs.movie_duration) == null ? void 0 : _d.join(" / "),
        language: (_e = attrs.language) == null ? void 0 : _e.join(" / "),
        genre: (_g = (_f = attrs.movie_type) == null ? void 0 : _f.join(" / ")) != null ? _g : "",
        aka: altTitle || "",
        region: (_h = attrs.country) == null ? void 0 : _h.join(" / "),
        link: subjectLink,
        poster: image,
        summary,
        chineseTitle,
        votes: rating.numRaters,
        average: rating.average,
        awards,
        id: (_j = (_i = subjectLink.match(/subject\/(\d+)/)) == null ? void 0 : _i[1]) != null ? _j : "",
        episodes: (_l = (_k = attrs.episodes) == null ? void 0 : _k.join(" / ")) != null ? _l : ""
      };
      if (!attrs.episodes) {
        const savedIds = GM_getValue("ids") || {};
        savedIds[imdbId] = __spreadValues({
          doubanId,
          updateTime: Date.now()
        }, doubanInfo);
        GM_setValue("ids", savedIds);
      }
      return doubanInfo;
    } catch (error) {
      console.log(error);
    }
  };
  const getAwardInfo = async (doubanLink) => {
    var _a2;
    const awardsPage = await fetch(`${doubanLink}/awards/`, {
      responseType: "text"
    });
    const awardsDoc = new DOMParser().parseFromString(awardsPage, "text/html");
    const awards = $("#content > div > div.article", awardsDoc).html().replace(/[ \n]/g, "").replace(/<\/li><li>/g, "</li> <li>").replace(/<\/a><span/g, "</a> <span").replace(/<(div|ul)[^>]*>/g, "\n").replace(/<[^>]+>/g, "").replace(/&nbsp;/g, " ").replace(/ +\n/g, "\n").trim();
    return (_a2 = awards == null ? void 0 : awards.replace(/\n/g, "<br>")) != null ? _a2 : "";
  };
  const formatDoubanInfo = async (domString) => {
    var _a2, _b2;
    const dom = new DOMParser().parseFromString(domString, "text/html");
    const chineseTitle = $("title", dom).text().replace("(豆瓣)", "").trim();
    const jsonData = JSON.parse($('head > script[type="application/ld+json"]', dom).html().replace(/(\r\n|\n|\r|\t)/gm, ""));
    const fetchAnchor = function(anchor) {
      var _a3, _b3, _c2, _d;
      return (_d = (_c2 = (_b3 = (_a3 = anchor == null ? void 0 : anchor[0]) == null ? void 0 : _a3.nextSibling) == null ? void 0 : _b3.nodeValue) == null ? void 0 : _c2.trim()) != null ? _d : "";
    };
    const rating = jsonData.aggregateRating ? jsonData.aggregateRating.ratingValue : 0;
    const votes = jsonData.aggregateRating ? jsonData.aggregateRating.ratingCount : 0;
    const director = jsonData.director ? jsonData.director : [];
    const poster = jsonData.image.replace(/s(_ratio_poster|pic)/g, "l$1").replace(/img\d/, "img9");
    const link = `https://movie.douban.com${jsonData.url}`;
    const introductionDom = $('#link-report > span.all.hidden,#link-report-intra > [property="v:summary"], #link-report > [property="v:summary"]', dom);
    const summary = (introductionDom.length > 0 ? introductionDom.text() : "暂无相关剧情介绍").split("\n").map((a) => a.trim()).filter((a) => a.length > 0).join("\n");
    const genre = $('#info span[property="v:genre"]', dom).map(function() {
      return $(this).text().trim();
    }).toArray();
    const language = fetchAnchor($('#info span.pl:contains("语言")', dom));
    const region = fetchAnchor($('#info span.pl:contains("制片国家/地区")', dom));
    const runtimeAnchor = $('#info span.pl:contains("单集片长")', dom);
    const runtime = runtimeAnchor[0] ? fetchAnchor(runtimeAnchor) : $('#info span[property="v:runtime"]', dom).text().trim();
    const akaAnchor = $('#info span.pl:contains("又名")', dom);
    let aka = [];
    if (akaAnchor.length > 0) {
      aka = fetchAnchor(akaAnchor).split(" / ").sort(function(a, b) {
        return a.localeCompare(b);
      }).join("/");
      aka = aka.split("/");
    }
    const awards = await getAwardInfo(link);
    return {
      director: director.map((item) => item.name),
      runtime,
      language,
      genre: (_a2 = genre == null ? void 0 : genre.join(" / ")) != null ? _a2 : "",
      aka: (_b2 = aka == null ? void 0 : aka.join(" / ")) != null ? _b2 : "",
      region,
      link,
      poster,
      summary,
      chineseTitle,
      votes,
      average: rating,
      awards
    };
  };
  const getTorrentTitle = () => {
    let { titleDom } = CURRENT_SITE_INFO;
    if (!titleDom) {
      if (CURRENT_SITE_NAME === "BHD") {
        titleDom = $(".dotborder").find("td:contains(Name)").next("td");
      } else if (CURRENT_SITE_NAME.match(/ACM|BLU/)) {
        const keyMap = {
          Name: "Name",
          名称: "Name",
          名稱: "Name"
        };
        $("#vue+.panel table tr").each((index, element) => {
          const key = $(element).find("td:first").text().replace(/\s|\n/g, "");
          if (keyMap[key]) {
            titleDom = $(element).find("td:last");
          }
        });
      } else if (CURRENT_SITE_NAME === "UHD") {
        const torrentId = getUrlParam("torrentid");
        const torrentFilePathDom = $(`#files_${torrentId} .filelist_path`);
        const torrentFileDom = $(`#files_${torrentId} .filelist_table>tbody>tr:nth-child(2) td`).eq(0);
        titleDom = torrentFilePathDom || torrentFileDom;
      } else if (CURRENT_SITE_NAME === "HDT") {
        return document.title.replace(/HD-Torrents.org\s*-/ig, "").trim();
      }
    }
    return $(titleDom).text();
  };
  const getUrlParam = (key) => {
    const reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)");
    const regArray = location.search.substr(1).match(reg);
    if (regArray) {
      return unescape(regArray[2]);
    }
    return "";
  };
  const createDoubanDom = async (doubanId, imdbId, doubanInfo) => {
    const div = document.createElement("div");
    let { doubanContainerDom, insertDomSelector, siteName, poster } = CURRENT_SITE_INFO;
    if (siteName.match(/(HDT)$/)) {
      insertDomSelector = $(insertDomSelector).parent();
    }
    $(insertDomSelector).before(doubanContainerDom);
    const doubanLink = `https://movie.douban.com/subject/${doubanId}`;
    let htmlData = await fetch(`${doubanLink}/output_card`, {
      responseType: "text"
    });
    htmlData = htmlData.replace(/wrapper/g, "douban-wrapper").replace(/<script.+?script>/g, "");
    htmlData = htmlData.replace(/(html,)body,/, "$1");
    htmlData = htmlData.replace(/url\(.+?output_card\/border.png\)/g, `url(${PIC_URLS.border})`);
    htmlData = htmlData.replace(/src=.+?output_card\/line\.png/g, `src="${PIC_URLS.line}`);
    let headDom = htmlData.match(/<head>((.|\n)+)<\/head>/)[1];
    headDom = headDom.replace(/<link.+?>/g, "");
    const bodyDom = htmlData.match(/<body>((.|\n)+)<\/body>/)[1];
    div.insertAdjacentHTML("beforeend", headDom);
    div.insertAdjacentHTML("beforeend", bodyDom);
    $(".douban-dom").append(div).attr("douban-link", doubanLink);
    $(".douban-dom .grid-col4").after(`
  <div class="fix-col grid-col3">
  <div class="line-wrap">
    <img src="https://ptpimg.me/e11hb1.png">
  </div>
  </div>
  <div class="fix-col grid-col5"></div>`);
    const doubanData = doubanInfo || await getDoubanInfo(doubanId, imdbId);
    $(".douban-dom .grid-col5").html(`<div class="summary">${doubanData.summary || "暂无简介"}</div>`);
    let posterStyle = $(".picture-douban-wrapper").attr("style");
    const posterImg = siteName === "MTV" ? $(poster).attr("src") : doubanData.poster;
    posterStyle = posterStyle == null ? void 0 : posterStyle.replace(/\(.+\)/, `(${posterImg})`);
    $(".picture-douban-wrapper").attr("style", posterStyle);
    $(".douban-dom").click(() => {
      GM_openInTab(doubanLink);
    });
  };
  function fetch(url, options = {}) {
    return new Promise((resolve, reject) => {
      GM_xmlhttpRequest(__spreadProps(__spreadValues({
        method: "GET",
        url,
        responseType: "json"
      }, options), {
        onload: (res) => {
          const { statusText, status, response } = res;
          if (status !== 200) {
            reject(new Error(statusText || status));
          } else {
            resolve(response);
          }
        },
        ontimeout: () => {
          reject(new Error("timeout"));
        },
        onerror: (error) => {
          reject(error);
        }
      }));
    });
  }
  (async () => {
    if (CURRENT_SITE_INFO) {
      const imdbId = getImdbId();
      if (!imdbId) {
        return;
      }
      try {
        const savedIds = GM_getValue("ids") || {};
        if (!savedIds[imdbId] || savedIds[imdbId] && savedIds[imdbId].updateTime && Date.now() - savedIds[imdbId].updateTime >= 30 * 24 * 60 * 60 * 1e3) {
          let doubanId = "";
          const movieData = await getDoubanInfoByIMDB(imdbId);
          if (!movieData) {
            throw new Error("没有找到豆瓣条目");
          }
          const { id = "", episodes = "" } = movieData;
          doubanId = id;
          if (episodes) {
            const tvData = await getTvSeasonData(movieData);
            doubanId = tvData.id;
          }
          if (CURRENT_SITE_NAME.match(/PTP/)) {
            addToPtpPage(movieData);
          } else if (CURRENT_SITE_NAME.match(/ANT/)) {
            addToANTPage(movieData);
          } else {
            createDoubanDom(doubanId, imdbId);
          }
        } else {
          const savedData = savedIds[imdbId];
          if (CURRENT_SITE_NAME.match(/PTP/)) {
            addToPtpPage(savedData);
          } else if (CURRENT_SITE_NAME.match(/ANT/)) {
            addToANTPage(savedData);
          } else {
            createDoubanDom(savedData.doubanId, imdbId, savedData);
          }
        }
      } catch (error) {
        console.log(error);
      }
    }
  })();

})(jQuery);