Doveboy

Untitled

May 9th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name           豆瓣资源下载大师·完整版
  3. // @description    在豆瓣电影/电视剧/纪录片/综艺/动画等页面显示对应的在线播放链接、字幕下载链接及PT/NZB/BT/磁力/百度盘/115网盘等资源下载链接,聚合173+主流资源网站/字幕网站/资源搜索引擎,是目前聚合资源网站最多的脚本,独家资源颜色标记功能:有对应资源的网站显示绿色,当前无法访问的网站显示白色,没有对应资源的网站则显示删除线;给豆瓣电影条目添加IMDB评分、Metascore及烂番茄评分;本脚本聚合的网站包含需要登陆才能自动颜色标记是否有对应资源的PT/NZB/论坛等网站,如无需聚合这些需要登陆的资源网站,请下载安装豆瓣资源下载大师·轻量版脚本。
  4. // @author         白鸽男孩
  5. // @connect        *
  6. // @grant          GM_xmlhttpRequest
  7. // @grant          GM_setClipboard
  8. // @grant          GM_addStyle
  9. // @grant          GM_setValue
  10. // @grant          GM_getValue
  11. // @require        http://cdn.bootcss.com/jquery/3.2.1/jquery.min.js
  12. // @require        https://cdn.bootcss.com/jqueryui/1.12.1/jquery-ui.min.js
  13. // @include        https://movie.douban.com/subject/*
  14. // @version        2.1.0
  15. // @run-at         document-start
  16. // @namespace      doveboy_js
  17.  
  18. // ==/UserScript==
  19.  
  20. let myScriptStyle = "@charset utf-8;#dale_movie_subject_top_right,#dale_movie_subject_top_right,#dale_movie_subject_top_midle,#dale_movie_subject_middle_right,#dale_movie_subject_bottom_super_banner,#footer,#dale_movie_subject_download_middle,#dale_movie_subject_inner_middle,#movie_home_left_bottom,#dale_movie_home_top_right,#dale_movie_home_side_top,#dale_movie_home_bottom_right,#dale_movie_home_inner_bottom,#dale_movie_home_download_bottom,#dale_movie_home_bottom_right_down,#dale_movie_towhome_explore_right,#dale_movie_chart_top_right,#dale_movie_tags_top_right,#dale_review_best_top_right,.mobile-app-entrance.block5.app-movie,.qrcode-app,.top-nav-doubanapp,.extra,div.gray_ad,p.pl,div.ticket{display:none}.c-aside{margin-bottom:30px}.c-aside-body{*letter-spacing:normal}.c-aside-body a{border-radius:6px;color:#37A;display:inline-block;letter-spacing:normal;margin:0 8px 8px 0;padding:0 8px;text-align:center;width:65px}.c-aside-body a:link,.c-aside-body a:visited{background-color:#f5f5f5;color:#37A}.c-aside-body a:hover,.c-aside-body a:active{background-color:#e8e8e8;color:#37A}.c-aside-body a.disabled{text-decoration:line-through}.c-aside-body a.available{background-color:#5ccccc;color:#006363}.c-aside-body a.available:hover,.c-aside-body a.available:active{background-color:#3cc}.c-aside-body a.sites_r0{text-decoration:line-through}#c_dialog li{margin:10px}#c_dialog{text-align:center}#interest_sectl .rating_imdb{border-bottom:1px solid #eaeaea;padding-bottom:0}#interest_sectl .rating_wrap{padding-top:15px}#interest_sectl .rating_more{border-bottom:1px solid #eaeaea;color:#9b9b9b;margin:0;padding:15px 0;position:relative}#interest_sectl .rating_more a{left:80px;position:absolute}#interest_sectl .rating_more .titleOverviewSprite{background:url(https://coding.net/u/Changhw/p/MyDoubanMovieHelper/git/raw/master/title_overview_sprite.png) no-repeat;display:inline-block;vertical-align:middle}#interest_sectl .rating_more .popularityImageUp{background-position:-14px -478px;height:8px;width:8px}#interest_sectl .rating_more .popularityImageDown{background-position:-34px -478px;height:8px;width:8px}#interest_sectl .rating_more .popularityUpOrFlat{color:#83C40B}#interest_sectl .rating_more .popularityDown{color:#930E02}/*!jQuery UI - v1.12.1 - 2016-09-14 * http://jqueryui.com * Includes:core.css,accordion.css,autocomplete.css,menu.css,button.css,controlgroup.css,checkboxradio.css,datepicker.css,dialog.css,draggable.css,resizable.css,progressbar.css,selectable.css,selectmenu.css,slider.css,sortable.css,spinner.css,tabs.css,tooltip.css,theme.css * To view and modify this theme,visit http://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=Alpha(Opacity%3D30)&opacityFilterOverlay=Alpha(Opacity%3D30)&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6 * Copyright jQuery Foundation and other contributors;Licensed MIT */ .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{border:0;font-size:100%;line-height:1.3;list-style:none;margin:0;outline:0;padding:0;text-decoration:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{border-collapse:collapse;content:'';display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default !important;pointer-events:none}.ui-icon{background-repeat:no-repeat;display:inline-block;margin-top:-.25em;overflow:hidden;position:relative;text-indent:-99999px;vertical-align:middle}.ui-widget-icon-block{display:block;left:50%;margin-left:-8px}.ui-widget-overlay{height:100%;left:0;position:fixed;top:0;width:100%}.ui-accordion .ui-accordion-header{cursor:pointer;display:block;font-size:100%;margin:2px 0 0 0;padding:.5em .5em .5em .7em;position:relative}.ui-accordion .ui-accordion-content{border-top:0;overflow:auto;padding:1em 2.2em}.ui-autocomplete{cursor:default;left:0;position:absolute;top:0}.ui-menu{display:block;list-style:none;margin:0;outline:0;padding:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{cursor:pointer;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);margin:0}.ui-menu .ui-menu-item-wrapper{padding:3px 1em 3px .4em;position:relative}.ui-menu .ui-menu-divider{border-width:1px 0 0 0;font-size:0;height:0;line-height:0;margin:5px 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{bottom:0;left:.2em;margin:auto 0;position:absolute;top:0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{cursor:pointer;display:inline-block;line-height:normal;margin-right:.1em;overflow:visible;padding:.4em 1em;position:relative;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{box-sizing:border-box;text-indent:-9999px;white-space:nowrap;width:2em}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%}.ui-button.ui-icon-notext .ui-icon{height:2.1em;padding:0;text-indent:-9999px;white-space:nowrap;width:2.1em}input.ui-button.ui-icon-notext .ui-icon{height:auto;padding:.4em 1em;text-indent:0;white-space:normal;width:auto}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{display:inline-block;vertical-align:middle}.ui-controlgroup>.ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup>.ui-controlgroup-item:focus,.ui-controlgroup>.ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical>.ui-controlgroup-item{display:block;float:none;margin-bottom:0;margin-top:0;text-align:left;width:100%}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc(100% - 2.4em)}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{border:0;border-radius:.12em;box-shadow:inset 1px 1px 1px #ccc}.ui-checkboxradio-radio-label .ui-icon-background{border:0;border-radius:1em;height:16px;overflow:visible;width:16px}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;border-style:solid;border-width:4px;height:8px;width:8px}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{display:none;padding:.2em .2em 0;width:17em}.ui-datepicker .ui-datepicker-header{padding:.2em 0;position:relative}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{height:1.8em;position:absolute;top:2px;width:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%}.ui-datepicker .ui-datepicker-title{line-height:1.8em;margin:0 2.3em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{border-collapse:collapse;font-size:.9em;margin:0 0 .4em;width:100%}.ui-datepicker th{border:0;font-weight:bold;padding:.7em .3em;text-align:center}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;border-bottom:0;border-left:0;border-right:0;margin:.7em 0 0 0;padding:0 .2em}.ui-datepicker .ui-datepicker-buttonpane button{cursor:pointer;float:right;margin:.5em .2em .4em;overflow:visible;padding:.2em .6em .3em .6em;width:auto}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{margin:0 auto .4em;width:95%}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;font-size:0;width:100%}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{left:auto;right:2px}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{left:auto;right:1px}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:1px;border-right-width:0}.ui-datepicker .ui-icon{background-repeat:no-repeat;display:block;left:.5em;overflow:hidden;text-indent:-99999px;top:.3em}.ui-dialog{left:0;outline:0;padding:.2em;position:absolute;top:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;overflow:hidden;white-space:nowrap;width:90%;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{height:20px;margin:-10px 0 0 0;padding:1px;position:absolute;right:.3em;top:50%;width:20px}.ui-dialog .ui-dialog-content{background:none;border:0;overflow:auto;padding:.5em 1em;position:relative}.ui-dialog .ui-dialog-buttonpane{background-image:none;border-width:1px 0 0 0;margin-top:.5em;padding:.3em 1em .5em .4em;text-align:left}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{cursor:pointer;margin:.5em .4em .5em 0}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{right:0;width:2px}.ui-dialog .ui-resizable-s{bottom:0;height:2px}.ui-dialog .ui-resizable-w{left:0;width:2px}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{height:7px;width:7px}.ui-dialog .ui-resizable-se{bottom:0;right:0}.ui-dialog .ui-resizable-sw{bottom:0;left:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{display:block;font-size:.1px;position:absolute;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;left:0;top:-5px;width:100%}.ui-resizable-s{bottom:-5px;cursor:s-resize;height:7px;left:0;width:100%}.ui-resizable-e{cursor:e-resize;height:100%;right:-5px;top:0;width:7px}.ui-resizable-w{cursor:w-resize;height:100%;left:-5px;top:0;width:7px}.ui-resizable-se{bottom:1px;cursor:se-resize;height:12px;right:1px;width:12px}.ui-resizable-sw{bottom:-5px;cursor:sw-resize;height:9px;left:-5px;width:9px}.ui-resizable-nw{cursor:nw-resize;height:9px;left:-5px;top:-5px;width:9px}.ui-resizable-ne{cursor:ne-resize;height:9px;right:-5px;top:-5px;width:9px}.ui-progressbar{height:2em;overflow:hidden;text-align:left}.ui-progressbar .ui-progressbar-value{height:100%;margin:-1px}.ui-progressbar .ui-progressbar-overlay{background:url(data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==);height:100%;opacity:.25;filter:alpha(opacity=25)}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{border:1px dotted black;position:absolute;z-index:100}.ui-selectmenu-menu{display:none;left:0;margin:0;padding:0;position:absolute;top:0}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{border:0;font-size:1em;font-weight:bold;height:auto;line-height:1.5;margin:.5em 0 0 0;padding:2px .4em}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{cursor:default;height:1.2em;position:absolute;width:1.2em;z-index:2;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{background-position:0 0;border:0;display:block;font-size:.7em;position:absolute;z-index:1}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{margin-left:-.6em;top:-.3em}.ui-slider-horizontal .ui-slider-range{height:100%;top:0}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{height:100px;width:.8em}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-bottom:-.6em;margin-left:0}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{display:inline-block;overflow:hidden;padding:0;position:relative;vertical-align:middle}.ui-spinner-input{background:none;border:0;color:inherit;margin:.2em 0;margin-left:.4em;margin-right:2em;padding:.222em 0;vertical-align:middle}.ui-spinner-button{cursor:default;display:block;font-size:.5em;height:50%;margin:0;overflow:hidden;padding:0;position:absolute;right:0;text-align:center;width:1.6em}.ui-spinner a.ui-spinner-button{border-bottom-style:none;border-right-style:none;border-top-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{padding:.2em;position:relative}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{border-bottom-width:0;float:left;list-style:none;margin:1px .2em 0 0;padding:0;position:relative;top:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{background:none;border-width:0;display:block;padding:1em 1.4em}.ui-tooltip{max-width:300px;padding:8px;position:absolute;z-index:9999}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{background:#fff;border:1px solid #ddd;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{background:#e9e9e9;border:1px solid #ddd;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{background:#f6f6f6;border:1px solid #c5c5c5;color:#454545;font-weight:normal}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{background:#ededed;border:1px solid #ccc;color:#2b2b2b;font-weight:normal}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{background:#007fff;border:1px solid #003eff;color:#fff;font-weight:normal}.ui-icon-background,.ui-state-active .ui-icon-background{background-color:#fff;border:#003eff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{background:#fffa90;border:1px solid #dad55e;color:#777620}.ui-state-checked{background:#fffa90;border:1px solid #dad55e}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{background:#fddfdf;border:1px solid #f1a899;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{font-weight:normal;opacity:.7;filter:Alpha(Opacity=70)}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{background-image:none;opacity:.35;filter:Alpha(Opacity=35)}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{height:16px;width:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(https://cdn.bootcss.com/jqueryui/1.12.1/images/ui-icons_444444_256x240.png)}.ui-widget-header .ui-icon{background-image:url(https://cdn.bootcss.com/jqueryui/1.12.1/images/ui-icons_444444_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url(https://cdn.bootcss.com/jqueryui/1.12.1/images/ui-icons_555555_256x240.png)}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url(https://cdn.bootcss.com/jqueryui/1.12.1/images/ui-icons_ffffff_256x240.png)}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url(https://cdn.bootcss.com/jqueryui/1.12.1/images/ui-icons_777620_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(https://cdn.bootcss.com/jqueryui/1.12.1/images/ui-icons_cc0000_256x240.png)}.ui-button .ui-icon{background-image:url(https://cdn.bootcss.com/jqueryui/1.12.1/images/ui-icons_777777_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.003;filter:Alpha(Opacity=.3)}.ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666}";
  21. GM_addStyle(myScriptStyle);
  22.  
  23. let aside_html = '<div class=c-aside ><h2><i class="">四字标题</i>· · · · · · </h2><div class=c-aside-body  style="padding: 0 12px;"> <ul class=bs > </ul> </div> </div>';
  24. let imdb_html = '<div class="rating_wrap clearbox rating_imdb" rel="v:rating" style="padding-top: 0;"> <div class=rating_logo >IMDB 评分</div> <div class="rating_self clearfix" typeof="v:Rating"> <strong class="ll rating_num" property="v:average">0</strong> <span property="v:best" content=10.0 ></span> <div class="rating_right "> <div class=ll ></div> <div class=rating_sum > <a href=collections  class=rating_people ><span property="v:votes">0</span>人评价</a> </div> </div> </div> </div>';
  25. let rott_html = '<div class="rating_wrap clearbox rating_rott" style="padding-top:5px;padding-bottom:0px"><span class="rating_logo ll">烂番茄新鲜度</span><br><div id="rottValue" class="rating_self clearfix"></div></div>';
  26.  
  27. // 定义基础方法
  28. function getDoc(url, meta, callback) {
  29.     GM_xmlhttpRequest({
  30.         method: 'GET',
  31.         url: url,
  32.         headers: {
  33.             'User-agent': window.navigator.userAgent,
  34.             'Content-type': null
  35.         },
  36.         onload: function (responseDetail) {
  37.             if (responseDetail.status === 200) {
  38.                 let doc = (new DOMParser).parseFromString(responseDetail.responseText, 'text/html');
  39.                 callback(doc, responseDetail, meta);
  40.             }
  41.         }
  42.     });
  43. }
  44. function getJSON(url, callback) {
  45.     GM_xmlhttpRequest({
  46.         method: 'GET',
  47.         url: url,
  48.         headers: {
  49.             'Accept': 'application/json'
  50.         },
  51.         onload: function (response) {
  52.             if (response.status >= 200 && response.status < 400) {
  53.                 callback(JSON.parse(response.responseText), url);
  54.             } else {
  55.                 callback(false, url);
  56.             }
  57.         }
  58.     });
  59. }
  60. function parseURL(url) {
  61.     let a = document.createElement('a');
  62.     a.href = url;
  63.     return {
  64.         source: url,
  65.         protocol: a.protocol.replace(':', ''),
  66.         host: a.hostname,
  67.         port: a.port,
  68.         query: a.search,
  69.         params: (function () {
  70.             let ret = {};
  71.             let seg = a.search.replace(/^\?/, '').split('&');
  72.             let len = seg.length;
  73.             let i = 0;
  74.             let s = void 0;
  75.             while (i < len) {
  76.                 if (!seg[i]) {
  77.                     i++;
  78.                     continue;
  79.                 }
  80.                 s = seg[i].split('=');
  81.                 ret[s[0]] = s[1];
  82.                 i++;
  83.             }
  84.             return ret;
  85.         })(),
  86.         file: (a.pathname.match(/\/([^\/?#]+)$/i) || [, ''])[1],
  87.         hash: a.hash.replace('#', ''),
  88.         path: a.pathname.replace(/^([^\/])/, '/'),
  89.         relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [, ''])[1],
  90.         segments: a.pathname.replace(/^\//, '').split('/')
  91.     };
  92. }
  93.  
  94. $(document).ready(function () {
  95.     // 脚本对页面进行预处理
  96.     if($('#info span.pl:contains("又名")').length === 0){
  97.         $('#info').append('<div style="display: none"><span class="pl">又名:</span>啥也没有<br></div>');
  98.     }
  99.  
  100.     if($('div#info a[href^=\'http://www.imdb.com/title/tt\']').length === 0){
  101.         $('#info').append('<div style="display: none"><span class="pl">IMDb链接:</span><a href="http://www.imdb.com/title/tt9999999" target="_blank" rel="nofollow">tt9999999</a><br></div>');
  102.     }
  103.  
  104.     // 查看原图
  105.     let posterAnchor = document.querySelector('#mainpic > a > img');
  106.     if (posterAnchor) {
  107.         let postersUrl = posterAnchor.getAttribute("src");
  108.         let rawUrl = postersUrl.replace(/photo\/s_ratio_poster\/public\/(p\d+).+$/,"photo/raw/public/.jpg");
  109.         $('#mainpic p.gact').after(`<a target="_blank" rel="nofollow" href="${rawUrl}">查看原图</a>`);
  110.     }
  111.  
  112.     // Movieinfo信息生成相关
  113.     let poster;
  114.     let this_title, trans_title, aka;
  115.     let year, region, genre,language,playdate;
  116.     let imdb_link, imdb_id, imdb_average_rating, imdb_votes, imdb_rating;
  117.     let douban_link, douban_id, douban_average_rating, douban_votes, douban_rating;
  118.     let episodes, duration;
  119.     let director, writer, cast;
  120.     let tags,introduction,awards;
  121.     $("div#info").append("<span class=\"pl\">生成信息: </span><a id='movieinfogen' href='javascript:void(0);'>movieinfo</a>");
  122.     let movieinfo_html = $("<div class='c-aside' style='float:left;margin-top:20px;width: 470px' id='movieinfo_div'><h2><i>电影简介</i>· · · · · · </h2><div class=\"c-aside-body\" style=\"padding: 0 12px;\" id='movieinfo'></div></div>");
  123.     function descriptionGenerator() {
  124.         let descr = "";
  125.         descr += poster ? `[img]${poster}[/img]\n\n` : "";
  126.         descr += trans_title ? `◎译  名 ${trans_title}\n` : "";
  127.         descr += this_title ? `◎片  名 ${this_title}\n` : "";
  128.         descr += year ? `◎年  代 ${year}\n` : "";
  129.         descr += region ? `◎产  地 ${region}\n` : "";
  130.         descr += genre ? `◎类  别 ${genre}\n` : "";
  131.         descr += language ? `◎语  言 ${language}\n` : "";
  132.         descr += playdate ? `◎上映日期 ${playdate}\n` : "";
  133.         descr += imdb_rating ? `◎IMDb评分  ${imdb_rating}\n` : "";  // 注意如果长时间没能请求完成imdb信息,则该条不显示
  134.         descr += imdb_link ? `◎IMDb链接  ${imdb_link}\n` : "";
  135.         descr += douban_rating ? `◎豆瓣评分 ${douban_rating}\n` : "";
  136.         descr += douban_link ? `◎豆瓣链接 ${douban_link}\n` : "";
  137.         descr += episodes ? `◎集  数 ${episodes}\n` : "";
  138.         descr += duration ? `◎片  长 ${duration}\n` : "";
  139.         descr += director ? `◎导  演 ${director}\n` : "";
  140.         descr += writer ? `◎编  剧 ${writer}\n` : "";
  141.         descr += cast ? `◎主  演 ${cast.replace(/\n/g, '\n' + ' '.repeat(4) + '   ').trim()}\n` : "";
  142.         descr += tags ? `\n◎标  签 ${tags}\n` : "";
  143.         descr += introduction ? `\n◎简  介\n\n  ${introduction.replace(/\n/g, '\n' + ' '.repeat(2))}\n` : "";
  144.         descr += awards ? `\n◎获奖情况\n\n  ${awards.replace(/\n/g, '\n' + ' '.repeat(2))}\n` : "";
  145.         descr = descr.replace(/\n/ig,"<br>");
  146.         movieinfo_html.find("div#movieinfo").html(descr);
  147.         $("div.related-info").before(movieinfo_html);
  148.     }
  149.     $("a#movieinfogen").click(function() {
  150.         if ($("#movieinfo").length === 0) {
  151.             descriptionGenerator();
  152.         } else {
  153.             $("#movieinfo_div").toggle();
  154.         }
  155.     });
  156.  
  157.     let fetch = function (anchor) {
  158.         return anchor[0].nextSibling.nodeValue.trim();
  159.     };
  160.  
  161.     // 从页面中解析信息并请求imdb等第三方数据
  162.     let chinese_title = document.title.replace('(豆瓣)','').trim();
  163.     let foreign_title = $('#content h1>span[property="v:itemreviewed"]').text().replace(chinese_title, '').trim();
  164.     let aka_anchor = $('#info span.pl:contains("又名")');
  165.     if (aka_anchor[0]) {
  166.         aka = fetch(aka_anchor).split(' / ').sort(function (a, b) {//首字(母)排序
  167.             return a.localeCompare(b);
  168.         }).join('/');
  169.     }
  170.     if (foreign_title) {
  171.         trans_title = chinese_title + (aka ? ('/' + aka) : '');
  172.         this_title = foreign_title;
  173.     } else {
  174.         trans_title = aka ? aka : '';
  175.         this_title = chinese_title;
  176.     }
  177.     if($('a.bn-sharing').attr('data-type').match(/电影/)){ // 判断是否电影并赋值年份
  178.         year = ' ' + $('#content > h1 > span.year').text().substr(1, 4);
  179.     }
  180.  
  181.     let regions_anchor = $('#info span.pl:contains("制片国家/地区")');  //产地
  182.     if (regions_anchor[0]) {
  183.         region = fetch(regions_anchor).split(' / ').join('/');
  184.     }
  185.  
  186.     genre = $('#info span[property="v:genre"]').map(function () {  //类别
  187.         return $(this).text().trim();
  188.     }).toArray().join('/');
  189.  
  190.     let language_anchor = $('#info span.pl:contains("语言")');  //语言
  191.     if (language_anchor[0]) {
  192.         language = fetch(language_anchor).split(' / ').join('/');
  193.     }
  194.  
  195.     playdate = $('#info span[property="v:initialReleaseDate"]').map(function () {   //上映日期
  196.         return $(this).text().trim();
  197.     }).toArray().sort(function (a, b) {//按上映日期升序排列
  198.         return new Date(a) - new Date(b);
  199.     }).join('/');
  200.     //IMDb链接
  201.     let imdb_link_anchor = $('#info span.pl:contains("IMDb链接")');
  202.     if (imdb_link_anchor[0]) { // 请求IMDb信息(最慢,最先且单独请求)
  203.         imdb_link = imdb_link_anchor.next().attr('href').replace(/(\/)?$/, '/');
  204.         imdb_id = imdb_link.match(/tt\d+/);
  205.         getDoc(imdb_link,null,function (doc) {
  206.             // 评分,Metascore,烂番茄
  207.             let i, item, len, metascore, parse, popularity, ratingCount, ratingValue, rating_douban_ratingValue, rating_imdb, rating_more, reviews, starValue, titleReviewBarItem, title_en;
  208.             rating_douban_ratingValue = $('#interest_sectl .rating_douban a.rating_people span[property^=v]').text();
  209.             rating_douban_ratingValue = (rating_douban_ratingValue + '').replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');
  210.             $('#interest_sectl .rating_douban a.rating_people span[property^=v]').text(rating_douban_ratingValue);
  211.             $('#interest_sectl').append($(imdb_html));
  212.             rating_imdb = $('#interest_sectl .rating_imdb');
  213.             $('#interest_sectl .rating_imdb a.rating_people').attr('href', imdb_link + 'ratings?ref_=tt_ov_rt');
  214.             imdb_average_rating= ratingValue = $('span[itemprop=ratingValue]', doc).text();
  215.             $('#interest_sectl .rating_imdb strong.rating_num').text(ratingValue);
  216.             starValue = ratingValue / 2;
  217.             starValue = starValue % 1 > 0.5 ? Math.floor(starValue) + 0.5 : Math.floor(starValue);
  218.             starValue *= 10;
  219.             starValue = 'bigstar' + starValue;
  220.             $('#interest_sectl .rating_imdb div.rating_right div.ll').addClass(starValue);
  221.             imdb_votes = ratingCount = $('span[itemprop=ratingCount]', doc).text();
  222.             $('#interest_sectl .rating_imdb a.rating_people span[property^=v]').text(ratingCount);
  223.             rating_imdb.after($('<div></div>').addClass('rating_more'));
  224.             rating_more = $('#interest_sectl .rating_more');
  225.             titleReviewBarItem = $('.titleReviewBar div.titleReviewBarItem', doc);
  226.             metascore = null;
  227.             popularity = null;
  228.             reviews = null;
  229.             parse = function (item) {
  230.                 let Popularity, score, text;
  231.                 text = $(item).text();
  232.                 if (text.indexOf('Metascore') !== -1) {
  233.                     score = $(item).find('a[href^=criticreviews] span').text();
  234.                     metascore = $("<div>");
  235.                     metascore.html('Metascore');
  236.                     return metascore.append($('<a></a>').attr('href', imdb_link + '/' + 'criticreviews?ref_=tt_ov_rt').text(score));
  237.                 } else if (text.indexOf('Popularity') !== -1) {
  238.                     popularity = $("<div>");
  239.                     Popularity = $(item).find('span.subText').html();
  240.                     return popularity.html('流行度&nbsp;&nbsp;' + Popularity + '<br>');
  241.                 } else if (text.indexOf('Reviews') !== -1) {
  242.                     return null;
  243.                 }
  244.             };
  245.             imdb_rating = imdb_votes ? imdb_average_rating + '/10 from ' + imdb_votes + ' users' : '';  // MovieinfoGen 相关
  246.             // add IMDB top 250 tag
  247.             if (parseFloat(ratingValue) >= 8) {
  248.                 getDoc('https://m.imdb.com/chart/top',null, function (doc,res) {
  249.                     let top_html = res.responseText;
  250.                     let list = top_html.match(/data-tconst="(tt\d{7})"/g);
  251.                     let number = list.indexOf('data-tconst="' + imdb_id + '"') + 1;
  252.                     if (number < 1 || number > 250) return;
  253.                     // inject css if needed
  254.                     if (document.getElementsByClassName('top250').length === 0) {
  255.                         let style  = '.top250{background:url(https://s.doubanio.com/f/movie/f8a7b5e23d00edee6b42c6424989ce6683aa2fff/pics/movie/top250_bg.png) no-repeat;width:150px;font:12px Helvetica,Arial,sans-serif;margin:5px 0;color:#744900}.top250 span{display:inline-block;text-align:center;height:18px;line-height:18px}.top250 a,.top250 a:link,.top250 a:hover,.top250 a:active,.top250 a:visited{color:#744900;text-decoration:none;background:none}.top250-no{width:34%}.top250-link{width:66%}';
  256.                         GM_addStyle(style);
  257.                     }
  258.                     let after = document.getElementById('dale_movie_subject_top_icon');
  259.                     if (!after) after = document.querySelector('h1');
  260.                     after.insertAdjacentHTML('beforebegin', '<div class="top250"><span class="top250-no">No.' + number + '</span><span class="top250-link"><a href="http://www.imdb.com/chart/top">IMDb Top 250</a></span></div>');
  261.                     [].forEach.call(document.getElementsByClassName('top250'), function (e) {
  262.                         e.style.display = 'inline-block';
  263.                     });
  264.                 });
  265.             }
  266.  
  267.             // add rottentomatoes block
  268.             $('#titleYear', doc).remove();
  269.             movieTitle = $.trim($('h1[itemprop=name]', doc).text());
  270.             let rottURL = 'https://www.rottentomatoes.com/m/' + movieTitle.replace(/\s+/g,"_").replace(/\W+/g,"").toLowerCase();
  271.             getDoc(rottURL, null, function(rotdoc, resp, meta) {
  272.                 if(!rotdoc.title || rotdoc.title.split(/[\(\)]/)[1]!=$('.year').text().slice(1,-1)){
  273.                     let rotta = $("<a></a>");
  274.                     rotta.attr('target','_blank');
  275.                     rotta.attr('href', 'https://www.rottentomatoes.com/search/?search=' + encodeURI(movieTitle));
  276.                     rotta.text(movieTitle);
  277.                     let rottValue_selector = $('#interest_sectl .rating_rott #rottValue');
  278.                     $('#interest_sectl').append($(rott_html));
  279.                     rottValue_selector.append("搜索");
  280.                     rottValue_selector.append(rotta);
  281.                 }else if($('#tomato_meter_link',rotdoc).length > 0){
  282.                     let rating_rott_value = $('#tomato_meter_link .meter-value.superPageFontColor', rotdoc).html();
  283.                     $('#scoreStats .subtle.superPageFontColor', rotdoc).remove();
  284.                     let  fresh_rott_value = $('#scoreStats .superPageFontColor:eq(2)', rotdoc).text();
  285.                     let rotten_rott_value = $('#scoreStats .superPageFontColor:eq(3)', rotdoc).text();
  286.                     let rating_rott_right = '<div class="rating_right" style="line-height: 16px;"><span>鲜:&nbsp;&nbsp;'+fresh_rott_value+'</span><br><span>烂:&nbsp;&nbsp;'+rotten_rott_value+'</span> </div>';
  287.                     $('#interest_sectl').append($(rott_html));
  288.                     let rottValue_selector = $('#interest_sectl .rating_rott #rottValue');
  289.                     rottValue_selector.append($('<strong class="ll rating_num"><a target="_blank" href="'+rottURL+'">'+rating_rott_value+'</a></strong>'));
  290.                     rottValue_selector.append($(rating_rott_right));
  291.                 }
  292.             });
  293.  
  294.             // put on more ratings
  295.             for (i = 0, len = titleReviewBarItem.length; i < len; i++) {
  296.                 item = titleReviewBarItem[i];
  297.                 parse(item);
  298.             }
  299.             if (metascore || popularity || reviews) {
  300.                 if (metascore) {
  301.                     rating_more.append(metascore);
  302.                 }
  303.                 if (popularity) {
  304.                     rating_more.append(popularity);
  305.                 }
  306.                 if (reviews) {
  307.                     rating_more.append(reviews);
  308.                 }
  309.             } else {
  310.                 rating_more.remove();
  311.             }
  312.             return null;
  313.         });
  314.  
  315.     }
  316.     douban_link = 'https://' + location.href.match(/movie.douban.com\/subject\/\d+\//);  //豆瓣链接
  317.     douban_id = location.href.match(/(\d{7,8})/g);
  318.     //集数
  319.     let episodes_anchor = $('#info span.pl:contains("集数")');
  320.     if (episodes_anchor[0]) {
  321.         episodes = fetch(episodes_anchor);
  322.     }
  323.     //片长
  324.     let duration_anchor = $('#info span.pl:contains("单集片长")');
  325.     if (duration_anchor[0]) {
  326.         duration = fetch(duration_anchor);
  327.     } else {
  328.         duration = $('#info span[property="v:runtime"]').text().trim();
  329.     }
  330.  
  331.     getDoc(douban_link + 'awards',null,function (doc) {
  332.         awards = $('#content>div>div.article',doc).html()
  333.             .replace(/[ \n]/g, '')
  334.             .replace(/<\/li><li>/g, '</li> <li>')
  335.             .replace(/<\/a><span/g, '</a> <span')
  336.             .replace(/<(div|ul)[^>]*>/g, '\n')
  337.             .replace(/<[^>]+>/g, '')
  338.             .replace(/&nbsp;/g, ' ')
  339.             .replace(/ +\n/g, '\n')
  340.             .trim();
  341.     });    // 该影片的评奖信息
  342.     getJSON('https://api.douban.com/v2/movie/' + douban_id,function (data1) {
  343.         douban_average_rating = data1.rating.average || 0;
  344.         douban_votes = data1.rating.numRaters.toLocaleString() || 0;
  345.         douban_rating = douban_average_rating + '/10 from ' + douban_votes + ' users';
  346.         introduction = data1.summary.replace(/^None$/g, '暂无相关剧情介绍');
  347.         poster = data1.image.replace(/s(_ratio_poster|pic)/g, 'l');
  348.         director = data1.attrs.director ? data1.attrs.director.join(' / ') : '';
  349.         writer = data1.attrs.writer ? data1.attrs.writer.join(' / ') : '';
  350.         cast = data1.attrs.cast ? data1.attrs.cast.join('\n') : '';
  351.         tags = data1.tags.map(function (member) {
  352.             return member.name;
  353.         }).join(' | ');
  354.     });  //豆瓣评分,简介,海报,导演,编剧,演员,标签
  355.  
  356.  
  357.     // TODO 在这里将要用来构成搜索链接的信息给准备好
  358.     // 注意考虑imdb缺失的情况,前面已经定义使用的可以直接用
  359.     // 另外检查下各处imdb搜索方式是不是对,这个版本出现了tttt的情况
  360.  
  361.     // 获取豆瓣ID
  362.     var douban = '/subject/' + douban_id;
  363.  
  364.     // 获取电影英文名
  365.     var akaTitle, movieTitle, MovieOriginalTitle, MovieEnglishTitle, MovieFinalEnglish, ywm, xywm;
  366.     akaTitle = $('#info span.pl:contains("又名")')[0].nextSibling.nodeValue;
  367.     movieTitle = $('h1 span:eq(0)').text();
  368.     MovieOriginalTitle = movieTitle.replace(/^([^\x00-\xff]| |[0-9]){2,}/, "");
  369.     MovieOriginalTitle = MovieOriginalTitle.replace(/([^\x00-\xff]| ){2,}[0-9]+$/, "");
  370.     MovieOriginalTitle = MovieOriginalTitle.replace(/([^\x00-\xff]| |-){2,}$/, "");
  371.     MovieOriginalTitle = MovieOriginalTitle.replace(/:/, "");
  372.     MovieEnglishTitle = akaTitle.replace(/^[^a-zA-Z]*/, "");
  373.     MovieEnglishTitle = MovieEnglishTitle.replace(/:/, "");
  374.     MovieFinalEnglish = MovieEnglishTitle.replace(/ \/ .*/,"");
  375.     // 确定电影英文名
  376.     if(MovieOriginalTitle.match(/([a-zA-Z]){2,}/)){
  377.         ywm = MovieOriginalTitle;
  378.     }else{
  379.         ywm = MovieFinalEnglish;}
  380.     // 剧集修正季数名
  381.     if(ywm.match(/Season\s\d\d/)){
  382.         ywm = ywm.replace(/Season\s/, "S");
  383.         xywm = ywm.replace(/ S\d\d*$/, "");
  384.     }else{
  385.         ywm = ywm.replace(/Season\s/, "S0");
  386.         xywm = ywm.replace(/ S\d\d*$/, "");
  387.     }
  388.     // 智能判定是用IMDB ID还是豆瓣ID
  389.     let imdbnum = $('div#info a[href^=\'http://www.imdb.com/title/tt\']').attr('href');
  390.     imdbnum = imdbnum.replace(/http:\/\/www\.imdb\.com\/title\//, "");
  391.     let neizhan = imdbnum;
  392.     if(imdbnum.match(/9999999/)){
  393.         neizhan = douban;
  394.     }
  395.     // TTG智能判定是用IMDB ID还是中文名
  396.     let ttgid = imdbnum.slice(2);
  397.     if(ttgid.match(/9999999/)){
  398.         ttgid = chinese_title + year;
  399.     }else{
  400.         ttgid = 'IMDB' + ttgid;
  401.     }
  402.  
  403.     // ZX智能判定是用IMDB ID还是中文名
  404.     let zxid = imdbnum;
  405.     if(zxid.match(/9999999/)){
  406.         zxid = chinese_title + year;
  407.     }else{
  408.     }
  409.  
  410.  
  411.     // get Chinese title
  412.     let title;
  413.     title = $('#content > h1 > span')[0].textContent.split(' ');
  414.     title = title.shift();
  415.     title = encodeURI(title);
  416.  
  417.     let site_map = [
  418.         {
  419.             name: "PT内站",
  420.             label: [
  421.                 {name: "BTSchool", link: 'http://pt.btschool.net/torrents.php?incldead=1&search_area=1&search=' + neizhan,/* selector: "table.torrents:last > tbody > tr:gt(0)"}, */},
  422.                 {name: "BYRBT", link: 'https://bt.byr.cn/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  423.                 {name: "CCFBits", link:  'http://www.ccfbits.org/browse.php?fullsearch=1&search=' + neizhan, selector: "table.mainouter > tbody > tr:last > td > table:nth-child(10) > tbody > tr:gt(0)"},
  424.                 {name: "CHDBits", link:  'https://chdbits.co/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  425.                 {name: "CMCT", link: 'https://hdcmct.org/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  426.                 {name: "GZTown", link: 'https://pt.gztown.net/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  427.                 {name: "FRDS", link: 'http://pt.keepfrds.com/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  428.                 {name: "HDChina", link: 'https://hdchina.org/torrents.php?incldead=1&search_area=1&search=' + neizhan, selector: "table.torrent_list:last > tbody > tr:gt(0)"},
  429.                 {name: "HDCity", link: 'https://hdcity.city/pt?incldead=1&search_area=1&iwannaseethis=' + neizhan, selector: "center > div > div > div.text"},
  430.                 {name: "HDHome", link:  'https://hdhome.org/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  431.                 {name: "HDSky", link:  'https://hdsky.me/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  432.                 {name: "HDStreet", link:   'https://hdstreet.club/torrents.php?incldead=1&search_area=4&search=' + douban_id,},
  433.                 {name: "HDTime", link:  'https://hdtime.org/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  434.                 {name: "HDU", link:  'http://pt.upxin.net/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  435.                 {name: "Hyperay", link:  'https://hyperay.org/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  436.                 {name: "JoyHD", link:  'https://www.joyhd.net/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  437.                 {name: "MTeam", link:  'https://tp.m-team.cc/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  438.                 {name: "NPUBITS", link:  'https://npupt.com/torrents.php?incldead=1&search_area=1&search=' + neizhan, selector: "#torrents_table > tbody > tr:gt(0)"},
  439.                 {name: "NWSUAF", link:  'https://pt.nwsuaf6.edu.cn/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  440.                 {name: "NYPT", link:  'https://nanyangpt.com/torrents.php?incldead=1&search_area=1&search=' + neizhan, selector: "table.torrents:last > tbody > tr"},
  441.                 {name: "OpenCD", link:  'https://open.cd/torrents.php?incldead=1&search_area=0&search=' + chinese_title, selector: "table.torrents:last > tbody > tr:gt(0)"},
  442.                 {name: "OurBits", link:  'https://ourbits.club/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  443.                 {name: "SJTU", link:  'https://pt.sjtu.edu.cn/torrents.php?incldead=1&search_area=1&search=' + neizhan, selector: "table.torrents:last > tbody > tr"},
  444.                 {name: "SS", link: 'https://skyeysnow.com/forum.php?mod=torrents&search=' + chinese_title + year, selector: "table.torrents > tbody > tr:gt(0)"},
  445.                 {name: "TCCF", link: 'https://et8.org/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  446.                 {name: "TLFBits", link: 'http://pt.eastgame.org/torrents.php?incldead=1&search_area=1&search=' + neizhan,},
  447.                 {name: "TTG", link: 'https://totheglory.im/browse.php?c=M&search_field=' + ttgid, selector: "table#torrent_table:last > tbody > tr:gt(0)"},
  448.                 {name: "U2", link: 'https://u2.dmhy.org/torrents.php?incldead=1&search_area=0&search=' + chinese_title + year,},
  449.                 {name: "WHUPT", link: 'https://pt.whu.edu.cn/torrents.php?incldead=1&search_area=1&search=' + neizhan, selector: "table.torrents:last > tbody > tr"},
  450.                 {name: "ZX", link: 'http://pt.zhixing.bjtu.edu.cn/search/x' + zxid + '/', selector: "table.torrenttable > tbody > tr:gt(1)"},
  451.             ]
  452.         },
  453.         {
  454.             name: "PT外站",
  455.             label:[
  456.                 {name: "AB", link:  'https://animebytes.tv/torrents.php?searchstr=' + ywm + year, selector: "div.thin > div.group_cont"},
  457.                 {name: "ADC", link:  'http://asiandvdclub.org/browse.php?descr=1&btnSubmit=Search%21&search=' + imdbnum, selector: "table.torrenttable:last > tbody > tr"},
  458.                 {name: "AOX", link:  'https://aox.to/index.php?page=torrents&options=4&search=' + imdbnum, selector:  "table.table.table-bordered:last > tbody > tr:gt(0)"},
  459.                 {name: "Apollo", link:  'https://apollo.rip/torrents.php?searchstr=' + ywm, selector:"#torrent_table:last > tbody > tr.group_torrent:gt(0)"},
  460.                 {name: "AR", link:  'https://alpharatio.cc/torrents.php?searchstr=' + ywm + year, selector:"#torrent_table > tbody > tr:gt(0)"},
  461.                 {name: "AVZ", link: 'https://avistaz.to/torrents?in=1&search=' + ywm + year, selector:"table.table-condensed.table-striped.table-bordered:last > tbody > tr:gt(0)"},
  462.                 {name: "BakaBT", link: 'https://bakabt.me/browse.php?q=' + ywm + year, selector:"table.torrents > tbody > tr:gt(0)"},
  463.                 {name: "BHD", link: 'https://beyond-hd.me/browse.php?incldead=0&search=' + imdbnum, selector:"table.tb_detail.grey.torrenttable:last > tbody > tr:gt(0)"},
  464.                 {name: "CC", link:  'http://www.cartoonchaos.org/index.php?page=torrents&options=0&active=1&search=' + ywm + year, selector:"table > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child(2) > td > table > tbody > tr:gt(0)"},
  465.                 {name: "HDF", link:  'https://hdf.world/torrents.php?searchstr=' + ywm +year, selector:"#torrent_table > tbody > tr:gt(0)"},
  466.                 {name: "HDME", link:  'http://hdme.eu/browse.php?incldead=1&blah=1&search=' + imdbnum, selector:"table:nth-child(13) > tbody > tr"},
  467.                 {name: "HDMonkey", link: 'https://hdmonkey.org/torrents-search.php?incldead=0&search=' + ywm + year, selector: "table.ttable_headinner > tbody > tr:gt(0)"},
  468.                 {name: "HDS", link: 'https://hd-space.org/index.php?page=torrents&active=1&options=2&search=' + imdbnum, selector: "table.lista:last > tbody > tr:gt(0)"},
  469.                 {name: "HDT", link:  'https://hd-torrents.org/torrents.php?active=1&options=2&search=' + imdbnum, selector: "table.mainblockcontenttt:last > tbody > tr:gt(0)"},
  470.                 //{name: "ILC", link:  'http://www.iloveclassics.com/browse.php?searchin=2&search=tt' + imdbnum, selector: "#hover-over > tbody > tr.table_col1:gt(0)"},
  471.                 {name: "IPT", link: 'https://iptorrents.com/t?qf=all&q=' + imdbnum, selector: "table#torrents:last > tbody > tr:gt(0)"},
  472.                 {name: "JPOP", link: 'https://jpopsuki.eu/torrents.php?searchstr=' + ywm, selector: "#torrent_table > tbody > tr:gt(0)"},
  473.                 {name: "PHD", link: 'https://privatehd.to/torrents?in=1&search=' + ywm + year, selector: "table.table-condensed.table-striped.table-bordered:first > tbody > tr:gt(0)"},
  474.                 {name: "PTF", link: 'http://ptfiles.net/browse.php?incldead=0&title=0&search=' + ywm + year, selector:  "#tortable > tbody > tr.rowhead:gt(0)"},
  475.                 {name: "Red", link: 'https://redacted.ch/torrents.php?searchstr=' + ywm, selector: "#torrent_table > tbody > tr.group_torrent:gt(0)"},
  476.                 {name: "SC", link:  'https://secret-cinema.pw/torrents.php?cataloguenumber=' + imdbnum, selector: "div.torrent_card"},
  477.                 {name: "Speed", link: 'https://speed.cd/browse.php?d=on&search=' + imdbnum, selector: "div.boxContent > table:first >tbody > tr:gt(0)"},
  478.                 {name: "TD", link: 'https://www.torrentday.com/t?q=' + imdbnum, selector: "table#torrentTable > tbody > tr:gt(0)"},
  479.                 {name: "TS", link: 'https://www.torrentseeds.org/browse.php?searchin=title&incldead=0&search=%22' +ywm +year + '%22', selector: "table.table.table-bordered > tbody > tr.browse_color:gt(0)"},
  480.                 {name: "TT", link: 'https://revolutiontt.me/browse.php?search=' + imdbnum, selector: "table#torrents-table > tbody > tr:gt(0)"},
  481.                 {name: "UHD",link: 'https://uhdbits.org/torrents.php?searchstr=' + imdbnum, selector:  "table.torrent_table:last > tbody > tr:gt(0)"},
  482.                 {name: "Waffles", link: 'https://waffles.ch/browse.php?q=' + ywm, selector: "#browsetable:last > tbody > tr:gt(0)"},
  483.                 {name: "WOP", link: 'http://worldofp2p.net/browse.php?incldead=0&searchin=descr&search=' + imdbnum, selector:  "table.yenitorrenttable:last > tbody > tr:gt(0)"},
  484.             ]
  485.         },
  486.         {
  487.             name: "NZB资源",
  488.             label:[
  489.                 {name: "DOGnzb", link:  'https://dognzb.cr/search?q=' + ywm + year,selector: "#featurebox > table > tbody > tr > td > table > tbody > tr.odd:gt(0)"},
  490.                 {name: "LuluNZB", link:  'https://lulunzb.com/search/' + ywm + year, selector: "#browsetable > tbody > tr:gt(0)"},
  491.                 {name: "Miatrix",link:  'https://www.miatrix.com/search/' + ywm + year,selector: "#browsetable > tbody > tr:gt(0)"},
  492.                 {name: "NewzTown",link:  'https://newztown.co.za/search/' + ywm + year,selector: "#browsetable > tbody > tr:gt(0)"},
  493.                 {name: "NZBCat",link:  'https://nzb.cat/search/' + ywm + year,selector: "#browsetable > tbody > tr:gt(0)"},
  494.                 {name: "NZBgeek",link:  'https://nzbgeek.info/geekseek.php?moviesgeekseek=1&browsecategory=&browseincludewords=' + ywm + year,selector: "table > tbody > tr.HighlightTVRow2:gt(0)"},
  495.                 {name: "NZBP", link: 'https://nzbplanet.net/search/' + ywm + year, selector:  "#browsetable > tbody > tr:gt(0)"},
  496.                 {name: "Oznzb", link: 'https://www.oznzb.com/search/' + ywm + year, selector:  "#browsetable > tbody > tr.ratingReportContainer:gt(0)"},
  497.                 {name: "SNZB", link: 'https://simplynzbs.com/search/' + ywm + year, selector:  "#browsetable > tbody > tr:gt(0)"},
  498.             ]
  499.         },
  500.         {
  501.             name: "PT字幕",
  502.             label:[
  503.                 {name:"BYRBT®", link:  "https://bt.byr.cn/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table:last > tbody > tr:gt(1)"},
  504.                 {name:"CHDBits®", link:  "https://chdbits.co/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table:last > tbody > tr:gt(1)"},
  505.                 {name:"CMCT®", link:  "https://hdcmct.org/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table:last > tbody > tr:gt(1)"},
  506.                 {name:"FRDS®", link:  "http://pt.keepfrds.com/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table[width='940'][border='1'][cellspacing='0'][cellpadding='5'] > tbody > tr:nth-child(2)"},
  507.                 {name:"HDChina®", link:  "https://hdchina.org/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table.uploaded_sub_list > tbody > tr:gt(1)"},
  508.                 {name:"HDCity®", link:  "https://hdcity.city/subtitles?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "center > div:nth-child(1) > table > tbody > tr:nth-child(2)"},
  509.                 {name:"HDHome®", link:  "https://hdhome.org/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table:last > tbody > tr:gt(1)"},
  510.                 {name:"HDSky®", link:  "https://hdsky.me/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table:last > tbody > tr:gt(1)"},
  511.                 {name:"HDTime®", link:  "https://hdtime.org/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table[width='100%'][border='1'][cellspacing='0'][cellpadding='5'] > tbody > tr"},
  512.                 {name:"HDU®", link:  "http://pt.upxin.net/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table[width='940'][border='1'][cellspacing='0'][cellpadding='5'] > tbody > tr:nth-child(2)"},
  513.                 {name:"Hyperay®", link:  "https://hyperay.org/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table[width='940'][border='1'][cellspacing='0'][cellpadding='5'] > tbody > tr:nth-child(2)"},
  514.                 {name:"JoyHD®", link:  "https://www.joyhd.net/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table[width='940'][border='1'][cellspacing='0'][cellpadding='5'] > tbody > tr:nth-child(2)"},
  515.                 {name:"MTeam®", link:  "https://tp.m-team.cc/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table.table-subtitle-list:last > tbody > tr"},
  516.                 {name:"NPUBITS®", link:  "https://npupt.com/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "#main > table > tbody > tr:nth-child(2)"},
  517.                 {name:"NYPT®", link:  "https://nanyangpt.com/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table[width='940'][border='1'][cellspacing='0'][cellpadding='5'] > tbody > tr:nth-child(2)"},
  518.                 {name:"OurBits®", link:  "https://ourbits.club/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table[width='940'][border='1'][cellspacing='0'][cellpadding='5'] > tbody > tr:nth-child(2)"},
  519.                 {name:"SJTU®", link:  "https://pt.sjtu.edu.cn/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table[width='940'][border='1'][cellspacing='0'][cellpadding='5'] > tbody > tr:nth-child(2)"},
  520.                 {name:"TCCF®", link:  "https://et8.org/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table[width='940'][border='1'][cellspacing='0'][cellpadding='5'] > tbody > tr:nth-child(2)"},
  521.                 {name:"TLFBits®", link:  "http://pt.eastgame.org/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table[width='940'][border='1'][cellspacing='0'][cellpadding='5'] > tbody > tr:nth-child(2)"},
  522.                 {name:"U2®", link:  "https://u2.dmhy.org/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table[width='940'][border='1'][cellspacing='0'][cellpadding='5'] > tbody > tr:nth-child(2)"},
  523.                 {name:"WHUPT®", link:  "https://pt.whu.edu.cn/subtitles.php?search=" + ywm.replace(/ /g,"_") + year.replace(/ /,"_"), selector: "table.no-vertical-line:last > tbody > tr"},
  524.             ]
  525.         },
  526.         {
  527.             name: "中文字幕",
  528.             label:[
  529.                 {name:'字幕库', link:'http://www.zimuku.cn/search?q=' + title,selector:'div.box.clearfix div.item.prel.clearfix'},
  530.                 {name:'字幕组', link:'http://www.zimuzu.tv/search/index?type=subtitle&keyword=' + title,selector:".search-result li"},
  531.                 {name:'sub HD', link:'http://subhd.com/search/' + title,selector:"div.col-md-9 div.box"},
  532.                 {name:'伪射手', link:'http://assrt.net/sub/?searchword=' + title,selector:"div.body div.subitem"},
  533.                 {name:'163字幕', link:'http://www.163sub.com/Search?id=' + title,selector:"#main_narrow_bd div.subs_list"},
  534.                 {name:'电波字幕', link:'http://dbfansub.com/?s=' + title,selector:"div.panel-body article.panel.panel-default.archive"},
  535.                 {name:'字幕社', link:'https://www.zimushe.com/search.php?keywords=' + title,selector:"div.wrap-l li"},
  536.                 {name:'中文字幕网', link:'http://www.zimuzimu.com/so_zimu.php?title=' + title,selector:"table.sublist a.othersub"},
  537.                 {name:'r3sub', link:'https://r3sub.com/search.php?s=' + title,selector:"div.col-sm-8.col-md-9.col-lg-8 div.movie.movie--preview.ddd"},
  538.                 {name:'HDZIMU', link:'http://www.hdzimu.com/?s=' + title,selector:'div.post-warp div.post-box'},
  539.                 {name:'M1080', link:'http://zimu.m1080.com/search.asp?a=&s=' + title,selector:"table td"},
  540.                 {name:'OpenSub', link:'https://www.opensubtitles.org/zh/search/sublanguageid-chi,zht,zhe,eng/imdbid-' + imdbnum,selector:"#search_results tr.change"},
  541.             ]
  542.         },
  543.         {
  544.             name: "英文字幕",
  545.             label:[
  546.                 {name:'Addic7ed', link:'http://www.addic7ed.com/search.php?search=' + xywm + year,selector:"table.tabel tr"},
  547.                 {name:'Podnapisi', link:'https://www.podnapisi.net/zh/subtitles/search/?language=zh&language=en&keywords=' + xywm + '&' + year + '-' + year,selector:"table tr.subtitle-entry"},
  548.                 {name:'Subscene', link:'https://subscene.com/subtitles/release?r=true&q=' + ywm + year,selector:"table td.a1"},
  549.                 {name:'TVsubs', link:'http://tvsubs.net/search.php?q=' + xywm,selector:"div.cont li"},
  550.                 {name:'TVsubtitles', link:'http://www.tvsubtitles.net/search.php?q=' + xywm,selector:"div.left_articles li"},
  551.                 {name:'YIFY', link:'http://www.yifysubtitles.com/search?q=' + xywm,selector:"div.col-sm-12 div.col-xs-12"},
  552.             ]
  553.         },
  554.         {
  555.             name: "在线视频",
  556.             label:[
  557.                 {name:'Neets', link:'http://neets.cc/search?key=' + title,selector:'#search_li_box div.search_li.clearfix'},
  558.                 {name:'爱奇艺视频', link:'https://so.iqiyi.com/so/q_' + title,selector:"div.mod_result a.info_play_btn"},
  559.                 {name:'次元壁', link:'http://www.ciyuan.bi/Search?keyword=' + title,selector:'div.search_left_container div.search_list_box_right'},
  560.                 {name:'哈哩哈哩', link:'http://www.halihali.cc/search/?wd=' + title,selector:'#contents div.info'},
  561.                 {name:'搜狐视频', link:'https://so.tv.sohu.com/mts?wd=' + title,selector:'div.wrap.cfix div.cfix.resource'},
  562.                 {name:'腾讯视频', link:'https://v.qq.com/x/search/?q=' + title,selector:'div.wrapper_main div._infos'},
  563.                 {name:'优酷视频', link:'http://www.soku.com/search_video/q_' + title,selector:'div.DIR div.s_info'},
  564.                 {name:'AAQQS', link:'http://aaxxy.com/vod-search-pg-1-wd-' + title + '.html',selector:'#find-focus li'},
  565.                 {name:'Q2电影网', link:'http://www.q2002.com/search?wd=' + title,selector:'div.container div.movie-item'},
  566.                 {name:'魔力电影网', link:'http://www.magbt.net/search.php?searchword=' + title,selector:'#content li.listfl'},
  567.                 {name:'小朱视频', link:'http://noad.zhuchaoli.club/search/' + title + '.html',selector:'div.b-listtab-main li.item'},
  568.                 {name:'9ANIME', link:'https://www4.9anime.is/search?keyword=' + ywm,selector:"div.film-list a.name"},
  569.             ]
  570.         },
  571.         {
  572.             name: "电影资源",
  573.             label:[
  574.                 {name:'52 Movie', link:'http://www.52movieba.com/search.htm?keyword=' + title,selector:'table.table.table-hover.threadlist tr.thread.tap'},
  575.                 {name:'97电影网', link:'http://www.id97.com/search?q=' + title,selector:'div.container div.col-xs-7'},
  576.                 {name:'爱下电影网', link:'http://www.aixia.cc/plus/search.php?searchtype=titlekeyword&q=' + title,selector:'div.con li'},
  577.                 {name:'比特大雄', link:'https://www.btdx8.com/?s=' + title,selector:'#content div.post.clearfix'},
  578.                 {name:'比特影视', link:'https://www.bteye.com/search/' + title,selector:'#main div.item'},
  579.                 {name:'电影巴士', link:'http://www.dy8c.com/?s=' + title,selector:'#content div.post-box'},
  580.                 {name:'电影首发站', link:'http://www.dysfz.cc/key/' + title + '/',selector:'.movie-list li'},
  581.                 {name:'嘎嘎影视', link:'http://www.gagays.xyz/movie/search?req%5Bkw%5D=' + title,selector:'#movie-sub-cont-db div.large-movie-detail'},
  582.                 {name:'高清MP4', link:'http://www.99tvs.com/?s=' + title,selector:'#post_container li'},
  583.                 {name:'高清控', link:'http://www.gaoqingkong.com/?s=' + title,selector:'#post_container div.post_hover'},
  584.                 {name:'蓝光网', link:'http://www.languang.co/?s=' + title,selector:'div.mi_cont li'},
  585.                 {name:'迷你MP4', link:'http://www.minimp4.com/search?q=' + title,selector:'div.container div.col-xs-7'},
  586.                 {name:'胖鸟电影', link:'http://www.pniao.com/Mov/so/' + title,selector:'div.mainContainer div.movieFlag.eachOne'},
  587.                 {name:'人生05', link:'http://www.rs05.com/search.php?s=' + title,selector:'#movielist li'},
  588.                 {name:'云播网', link:'http://www.yunbowang.cn/index.php?m=vod-search&wd=' + title,selector:'div.container div.col-xs-7'},
  589.                 {name:'中国高清网', link:'http://gaoqing.la/?s=' + title,selector:'div.mainleft div.post_hover'},
  590.                 {name:'最新影视站', link:'http://www.zxysz.com/?s=' + title,selector:'#content li.p-item'},
  591.             ]
  592.         },
  593.         {
  594.             name: "动漫资源",
  595.             label:[
  596.                 {name:'ACG.RIP', link:'https://acg.rip/?term=' + title,selector:'tbody tr'},
  597.                 {name:'ACG狗狗', link:'http://bt.acg.gg/search.php?keyword=' + title,selector:'tbody p.original.download'},
  598.                 {name:'ACG搜', link:'http://www.acgsou.com/search.php?keyword=' + title,selector:'tbody span.bts_1'},
  599.                 {name:'动漫花园', link:'https://share.dmhy.org/topics/list?keyword=' + title,selector:'tbody span.btl_1'},
  600.                 {name:'爱恋动漫', link:'http://www.kisssub.org/search.php?keyword=' + title,selector:'tbody span.bts_1'},
  601.                 {name:'喵搜', link:'https://nyaso.com/dong/' + title +'.html',selector:'tbody a.down'},
  602.                 {name:'旋风动漫', link:'http://share.xfsub.com:88/search.php?keyword=' + title,selector:'#listTable span.bts_1'},
  603.                 {name:'怡萱动漫', link:'http://www.yxdm.tv/search.html?title=' + title,selector:'div.main p.stars1'},
  604.                 {name:'AniDex', link:'https://anidex.info/?q=' + ywm,selector:'div.table-responsive tr'},
  605.                 {name:'AniRena', link:'https://www.anirena.com/?s=' + ywm,selector:'#content table'},
  606.                 {name:'AniTosho', link:'https://animetosho.org/search?q=' + ywm,selector:'#content div.home_list_entry'},
  607.                 {name:'Nyaa', link:'https://nyaa.si/?q=' + ywm,selector:'div.table-responsive tr.default'},
  608.             ]
  609.         },
  610.         {
  611.             name: "美剧资源",
  612.             label:[
  613.                 {name:'人人影视', link:'http://www.zimuzu.tv/search?type=resource&keyword=' + title,selector:"div.search-result > ul > li"},
  614.                 {name:'人人美剧', link:'http://www.yyetss.com/Search/index/s_keys/' + title,selector:'div.row div.col-xs-3'},
  615.                 {name:'天天美剧', link:'http://www.ttmeiju.vip/index.php/search/index.html?keyword=' + title,selector:'table.latesttable tr.Scontent1'},
  616.                 {name:'爱美剧', link:'https://22v.net/search/' + title,selector:'div.movie span'},
  617.                 {name:'天天看美剧', link:'http://www.msj1.com/?s=' + title,selector:'div.cat_list div.art_show_top'},
  618.                 {name:'美剧粉', link:'http://www.itvfans.com/?s=' + title,selector:'#main-wrap-left div.home-blog-entry-text'},
  619.             ]
  620.         },
  621.         {
  622.             name: "BT内站",
  623.             label:[
  624.                 {name:'BT吧', link:'http://www.btba.com.cn/search?keyword=' + title,selector:'div.left li'},
  625.                 {name:'BT蚂蚁', link:'https://www.btmyi.com/search.html?kw=' + title,selector:"div.row h5.item-title"},
  626.                 {name:'BT天堂', link:'http://www.bttt.la/s.php?q=' + title,selector:'div.ml div.title'},
  627.                 {name:'BT之家', link:'http://www.btbtt.co/search-index-keyword-' + title + '.htm',selector:'#threadlist table'},
  628.                 {name:'RARBT', link:'http://www.rarbt.com/index.php/search/index.html?search=' + title,selector:'div.ml div.title'},
  629.                 {name:'查片源', link:'https://www.chapianyuan.com/?keyword=' + title,selector:'div.block li'},
  630.                 {name:'磁力猫', link:'http://www.cilimao.me/search?word=' + title,selector:'#Search__content_left___2MajJ div.MovieCard__content___3kv1W'},   // TODO check
  631.                 {name:'磁力站', link:'http://oabt004.com/index/index?c=&k=' + title,selector:'div.link-list-wrapper ul.link-list'},
  632.                 {name:'光影资源', link:'http://www.etdown.net/index.php?keyword=' + title,selector:'tbody.list_4 tr'},
  633.                 {name:'我爱P2P', link:'http://www.woaip2p.net/topic/list?categoryId=0&title=' + title,selector:'tbody td.word-break'},
  634.                 {name:'小浣熊下载', link:'https://www.xiaohx.org/search?key=' + title,selector:'div.search_right li'},
  635.                 {name:'一站搜', link:'http://v.yizhansou.com/search?kw=' + title,selector:'table td.st'},
  636.             ]
  637.         },
  638.         {
  639.             name: "BT外站",
  640.             label:[
  641.                 {name:'BT-Scene', link:'https://bt-scene.cc/results_.php?q=' + ywm + year,selector:'table.tor td.tname'},
  642.                 {name:'iDope', link:'https://idope.se/torrent-list/' + ywm + year,selector:'#div2child div.resultdiv'},
  643.                 {name:'ISOHunt', link:'https://isohunt2.net/torrent/?ihq=' + ywm + year,selector:'#serps td.title-row'},
  644.                 {name:'KickAss', link:'https://katcr.co/katsearch/page/1/' + ywm + year,selector:'div.table--responsive_vertical div.torrents_table__torrent_name'},
  645.                 {name:'Lime', link:'https://www.limetorrents.cc/search/all/' + ywm + year,selector:'table.table2 div.tt-name'},
  646.                 {name:'RARBG', link:'http://rarbg.is/torrents.php?search=' + imdb_id,selector:'table.lista2t tr.lista2'},
  647.                 {name:'WorldWide', link:'https://worldwidetorrents.me/torrents-search.php?search=' + ywm + year,selector:'div.w3-responsive td.w3-jose'},
  648.                 {name:'Zooqle', link:'https://zooqle.com/search?q=' + ywm + year,selector:'div.panel-body a.small'},
  649.                 {name:'海盗湾', link:'https://thepiratebay.org/search/' + ywm,selector:'#searchResult div.detName'},
  650.             ]
  651.         },
  652.     ];
  653.  
  654.     let interest_sectl_selector = $('#interest_sectl');
  655.     interest_sectl_selector.after($('div.grid-16-8 div.related-info'));
  656.     interest_sectl_selector.attr('style', 'float:right');
  657.     $('div.related-info').attr('style', 'width:480px;float:left');
  658.  
  659.     function Exist_check(site, link, selector) {
  660.         let psite = $(`a[data-name="${site}"]`);
  661.         // 这里假定有这个资源的就一直都有,直接使用第一次请求成功的时候缓存信息
  662.         if (GM_getValue(`${douban_id}_${site}`, false)) {
  663.             $(psite).css("background-color", "#e3f1ed");
  664.             $(psite).attr('stat', 'true');
  665.             return;
  666.         }
  667.         // 不然,则请求相关信息
  668.         GM_xmlhttpRequest({
  669.             method: 'GET',
  670.             url: link,
  671.             onload: function (res) {
  672.                 if (/(login|verify|returnto)[.=]/.test(res.finalUrl)) {
  673.                     $(psite).addClass('disabled');
  674.                 } else {
  675.                     let doc = (new DOMParser()).parseFromString(res.responseText, 'text/html');
  676.                     try {
  677.                         if (/没有种子|No Torrents Found|Your search did not match anything|No torrents here|用准确的关键字重试/.test(res.responseText)) {
  678.                             $(psite).css("background-color", "#f4eac2");
  679.                             $(psite).attr('stat', 'none');
  680.                         } else {
  681.                             let body = doc.querySelector("body");
  682.                             let page = $(body); // 构造 jQuery 对象
  683.                             let tr_list = page.find(selector || "table.torrents:last > tbody > tr:gt(0)");
  684.                             if (tr_list.length) {
  685.                                 $(psite).css("background-color", "#e3f1ed");
  686.                                 $(psite).attr('stat', 'true');
  687.                                 GM_setValue(`${douban_id}_${site}`,true);
  688.                             }
  689.                             else {
  690.                                 $(psite).css("background-color", "#f4eac2");
  691.                                 $(psite).attr('stat', 'none');
  692.                             }
  693.                         }
  694.                     } catch (error) {
  695.                         $(psite).addClass('disabled');
  696.                     }
  697.                 }
  698.             },
  699.         });
  700.     }
  701.  
  702.     function site_exist_status() {
  703.         for (let i=0;i< site_map.length;i++) {
  704.             let map_dic = site_map[i];
  705.             let site_html = $(aside_html);
  706.             site_html.addClass('name-offline');
  707.             site_html.find('div.c-aside-body');
  708.             site_html.find('h2 i').text(map_dic.name);
  709.             site_html.attr("data-id",i);
  710.             $('#content div.tags').before(site_html);
  711.  
  712.             let in_site_html = $(`div[data-id='${i}'] ul.bs`);
  713.             for (let j=0;j< map_dic.label.length;j++) {
  714.                 let label = map_dic.label[j];
  715.                 let link = label.link;
  716.                 let link_parsed = parseURL(link);
  717.                 link = $('<a></a>').attr('href', link);
  718.                 link.attr('data-name',label.name);
  719.                 link.attr('target', '_blank').attr('rel', 'nofollow');
  720.                 link.html(label.name);
  721.                 in_site_html.append(link);
  722.                 Exist_check(label.name,label.link,label.selector)
  723.             }
  724.         }
  725.     }
  726.     site_exist_status();
  727. });
Add Comment
Please, Sign In to add comment