// ==UserScript== // @id heawercher@gmail.com // @name MyDoubanMovieHelper|豆瓣电影C+|豆瓣|豆瓣电影|movie.douban.com // @namespace Chang_way_enjoying // @description 网页信息增强,并入IMDB评分系统, 提供在线观看便捷链接,提供资源提供站点哦便捷链接。美化界面。 // @description 豆瓣电影C+|MyDoubanMovieHelper|豆瓣|豆瓣电影 // @author Chang // @connect imdb.com // @connect 6080.tv // @connect lbldy.com // @connect aaqqs.com // @grant GM_xmlhttpRequest // @grant GM_setClipboard // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @require http://cdn.bootcss.com/jquery/3.2.1/jquery.min.js // @include https://movie.douban.com/ // @match https://movie.douban.com/* // @match https://book.douban.com/* // @resource https://coding.net/u/Changhw/p/MyDoubanMovieHelper/git/raw/master/title_overview_sprite.png // @version 06052017esK // @run-at document-start // @downloadURL none // ==/UserScript== GM_addStyle("@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}#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}"); var aside_html = '

四字标题· · · · · ·

'; var imdb_html = '
0
'; if (!document.getElementById("pnTHLn") && document.title.indexOf('豆瓣') != -1) { var pnTHLn = document.createElement("a"); pnTHLn.id = "pnTHLn"; document.getElementsByTagName("html")[0].appendChild(pnTHLn); if (location.href.startsWith('https://movie.douban.com/subject/')) { $(document).ready(function() { var getDoc, getJSON, parseURL, postDoc; getDoc = function(url, meta, callback) { GM_xmlhttpRequest({ method: 'GET', url: url, headers: { 'User-agent': window.navigator.userAgent, 'Content-type': null }, onload: function(responseDetail) { var doc; doc = ''; if (responseDetail.status == 200) { doc = (new DOMParser).parseFromString(responseDetail.responseText, 'text/html'); if (doc == undefined) { doc = document.implementation.createHTMLDocument(''); doc.querySelector('html').innerHTML = responseText; } } callback(doc, responseDetail, meta); } }); }; postDoc = function(url, data, meta, callback) { GM_xmlhttpRequest({ anonymous: true, method: 'POST', url: url, headers: { 'User-agent': window.navigator.userAgent, 'Content-type': 'application/x-www-form-urlencoded' }, data: data, onload: function(responseDetail) { callback(responseDetail.responseText, responseDetail, meta); } }); }; getJSON = function(url, callback) { GM_xmlhttpRequest({ method: 'GET', url: url, headers: { 'Accept': 'application/json' }, onload: function(response) { if (response.status >= 200 && response.status < 400) { callback(JSON.parse(response.responseText), url); } else {} } }); }; parseURL = function(url) { var a; a = document.createElement('a'); a.href = url; return { source: url, protocol: a.protocol.replace(':', ''), host: a.hostname, port: a.port, query: a.search, params: (function() { var i, len, ret, s, seg; ret = {}; seg = a.search.replace(/^\?/, '').split('&'); len = seg.length; i = 0; s = void 0; while (i < len) { if (!seg[i]) { i++; continue; } s = seg[i].split('='); ret[s[0]] = s[1]; i++; } return ret; })(), file: (a.pathname.match(/\/([^\/?#]+)$/i) || [, ''])[1], hash: a.hash.replace('#', ''), path: a.pathname.replace(/^([^\/])/, '/$1'), relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [, ''])[1], segments: a.pathname.replace(/^\//, '').split('/') }; }; var site_offline, site_online, site_sub, update_site_offline_sites, update_site_online_sites, update_site_sub_sites; site_online = $(aside_html); update_site_online_sites = function(title, en) { var i, l, link, link_parsed, n, name, site_online_sites, sites_playBtn, t; title = encodeURI(title); if (en) { site_online_sites = { 'GOmovies': 'https://gomovies.to/movie/search/' + title }; } else { site_online_sites = { 'aaqqs': 'http://www.aaqqs.com/index.php?m=vod-search-pg-1-wd-' + encodeURIComponent(title), '电影6080': 'http://www.6080.tv/book/search?action=search&t=8&tag=' + title, 'Bilibili': 'http://search.bilibili.com/all?keyword=' + title, '哔哩搜索': 'http://www.biliworld.com/search/all/' + title, '4K吧': 'http://www.kkkkba.com/index.php?s=vod-search-wd-' + title + '.html', 'AcFun': 'http://www.acfun.cn/search/#query=' + title, '搜库': 'http://www.soku.com/search_video/q_' + title }; sites_playBtn = $('div.gray_ad a.playBtn'); i = 0; n = void 0; while (n = sites_playBtn[i]) { t = $(n).text().replace(/\s/g, '').replace('视频', ''); l = $(n).attr('href'); if (l === 'javascript: void 0;') { i++; continue; } l = parseURL(l).params['url']; l = decodeURIComponent(l); site_online_sites[t + ''] = 'http://www.sfsft.com/admin.php?url=' + l; site_online_sites[t + ' '] = 'http://vip.ifkdy.com/?url=' + l; i++; } } for (name in site_online_sites) { link = site_online_sites[name]; link_parsed = parseURL(link); link = $('').attr('href', link); link.attr('data-host', link_parsed.host); link.attr('target', '_blank').attr('rel', 'nofollow'); if (link_parsed.host === 'www.sfsft.com' || link_parsed.host === 'search.bilibili.com' || link_parsed.host === 'vip.ifkdy.com') { link.addClass('available'); } link.html(name); $('#content div.site-online-body ul').append(link); } }; update_site_offline_sites = function(title, en) { var link, link_parsed, name, site_offline_sites; title = encodeURI(title); if (en) { site_offline_sites = { '海盗湾': 'http://thepiratebay.ee/s/?q=' + title, 'kickass': 'https://katcr.co/new/torrents-search.php?' + 'c69=1&c80=1&c79=1&c148=1&c149=1&c81=1&c78=1&c150=1&c71=1&c74=1&cat=0' + '&incldead=0&freeleech=0&inclexternal=0&lang=0&search=' + title, 'kickass_': 'https://kickass.cd/usearch/' + title + ' category:movies/', 'rarbg': 'https://rarbg.to/torrents.php?search=' + title, '飘域家园': 'http://bbs.homefei.net/searcher.php?keyword=' + title }; } else { site_offline_sites = { '龙部落': 'http://www.lbldy.com/search/' + title, '51下片': 'http://www.51xiapian.com/search.php?submit=%E6%90%9C%E7%B4%A2&searchword=' + title, '高清网': 'http://gaoqing.la/?s=' + title, '高清控': 'http://www.gaoqingkong.com/?s=' + title, '疯狂影视': 'http://ifkdy.com/?q=' + title + '&p=1', 'BT天堂': 'http://www.bttt.la/s.php?q=' + title + '&sitesearch=www.bttt.la&domains=bttt.la&hl=zh-CN&ie=UTF-8&oe=UTF-8', 'BT吧': 'http://www.btba.com.cn/search?keyword=' + title, 'movie吧': 'http://www.52movieba.com/?s=' + title, '动漫花园': 'https://share.dmhy.org/topics/list?keyword=' + title, '电影天堂': 'http://zhannei.baidu.com/cse/search?q=' + title + '&s=4523418779164925033', '飘花资源': 'http://so.piaohua.com:8909/plus/search.php?kwtype=0&keyword=' + title, 'BT之家': 'http://www.btbtt.co/search-index-keyword-' + title + '.htm', '我飞网': 'http://www.9kkz.com/search.php?keyword=' + title, '片源网': 'http://pianyuan.net/search?q=' + title, '比特大雄': 'http://www.btdx8.com/?s=' + title, 'RARBT': 'http://www.rarbt.com/index.php/search/index.html?search=' + title, 'CILI001': 'http://cili17.com/?topic_title3=' + title, '哇呱影视': 'http://www.gagays.com/movie/search?req%5Bkw%5D=' + title, '天天美剧': 'http://www.ttmeiju.com/index.php/search/index.html?keyword=' + title + '&range=0', '深影论坛': 'http://zhannei.baidu.com/cse/search?q=' + title + '&click=1&s=10886843873236087874&nsid=' }; } for (name in site_offline_sites) { link = site_offline_sites[name]; link_parsed = parseURL(link); link = $('').attr('href', link); link.attr('data-host', link_parsed.host); link.attr('target', '_blank').attr('rel', 'nofollow'); link.html(name); $('#content div.site-offline-body ul').append(link); } }; update_site_sub_sites = function(title, en) { var link, link_parsed, name, site_offline_sites; title = encodeURI(title); if (en) { site_offline_sites = { '射手伪': 'http://assrt.net/sub/?searchword=' + title }; } else { site_offline_sites = { '字幕库': 'http://www.zimuku.net/search?q=' + title, '字幕组': 'http://www.zimuzu.tv/search/index?keyword=' + title, 'sub HD': 'http://subhd.com/search/' + title, 'sub OM': 'http://www.subom.net/search/' + title, '163字幕': 'http://www.163sub.com/Search?id=' + title, '第三楼字幕': 'http://zhannei.baidu.com/cse/search?click=1&s=8073048380622477318&nsid=&q=' + title, '电波字幕': 'http://dbfansub.com/?s=' + title }; } for (name in site_offline_sites) { link = site_offline_sites[name]; link_parsed = parseURL(link); link = $('').attr('href', link); link.attr('data-host', link_parsed.host); link.attr('target', '_blank').attr('rel', 'nofollow'); link.html(name); $('#content div.site-sub-body ul').append(link); } }; site_online.addClass('site_online'); site_online.find('div.c-aside-body').addClass('site-online-body'); site_online.find('h2 i').text('在线资源or网盘资源'); $('#content div.tags').before(site_online); site_offline = $(aside_html); site_offline.addClass('name-offline'); site_offline.find('div.c-aside-body').addClass('site-offline-body'); site_offline.find('h2 i').text('离线资源'); $('#content div.tags').before(site_offline); site_sub = $(aside_html); site_sub.addClass('name-offline'); site_sub.find('div.c-aside-body').addClass('site-sub-body'); site_sub.find('h2 i').text('字幕资源'); $('#content div.related-info').after(site_sub); var title, title_en, title_sec; title = title_sec = $('#content > h1 > span')[0].textContent.split(' '); title = title.shift(); title_sec = title_sec.join(' ').trim(); title_en = ''; update_site_online_sites(title); update_site_offline_sites(title); update_site_sub_sites(title); var meta, site, site_href; site = null; site = $('div.aside a[data-host$=\'www.6080.tv\']'); if (site) { site_href = site.attr('href'); meta = new Array; meta['site'] = site; getDoc(site_href, meta, function(doc, resp, meta) { var site; var i, l, links, lists; site = meta['site']; lists = $('div.bd ul.pic li', doc); links = []; i = 0; while (i < lists.length) { l = $(lists[i]); if (l.find('span > span').text().indexOf(title) !== -1) { links.push('http://www.6080.tv' + l.find('a[href^=\'/note\']').attr('href')); } i++; } if (links.length === 0) { site.addClass('disabled'); return; } else if (links.length === 1) { site.addClass('available'); site.attr('href', links[0]); } }); } site = $('div.aside a[data-host$=\'lbldy.com\']'); if (site) { site_href = site.attr('href'); meta = new Array; meta['site'] = site; getDoc(site_href, meta, function(doc, resp, meta) { var site; var i, l, links, lists; site = meta['site']; lists = $('div.col div.postlist', doc); links = []; i = 0; while (i < lists.length) { l = $(lists[i]); l = l.find('a'); links.push(l.attr('href')); i++; } if (links.length === 0) { site.addClass('disabled'); return; } else if (links.length === 1) { site.attr('href', links[0]); site.addClass('available'); } }); } site = $('div.aside a[data-host$=\'aaqqs.com\']'); if (site) { site_href = site.attr('href'); meta = new Array; meta['site'] = site; getDoc(site_href, meta, function(doc, resp, meta) { var site; var i, l, links, lists; site = meta['site']; lists = $('#contents li', doc); links = []; i = 0; while (i < lists.length) { l = $(lists[i]); links.push('http://www.aaqqs.com' + l.find('a[href^=\'/vodhtml\']').attr('href')); i++; } if (links.length === 0) { site.addClass('disabled'); return; } else if (links.length === 1) { site.attr('href', links[0]); site.addClass('available'); } }); } var imdb, imdb_href, imdb_id; imdb = $('div#info a[href^=\'http://www.imdb.com/title/tt\']'); if (imdb.length) { imdb_href = imdb.attr('href'); imdb_id = imdb.text(); if (imdb && imdb_id.startsWith('tt')) { imdb_id = imdb_id.slice(2); } else { imdb_id = ''; } getDoc(imdb_href, null, function(doc, resp, meta) { var i, item, len, metascore, parse, popularity, ratingCount, ratingValue, rating_douban, rating_douban_ratingValue, rating_imdb, rating_more, reviews, starValue, titleReviewBarItem, title_en; title_en = $(doc).attr('title'); title_en = title_en.split(' (')[0]; update_site_online_sites(title_en, true); update_site_offline_sites(title_en, true); rating_douban = $('#interest_sectl .rating_wrap').addClass('rating_douban'); rating_douban_ratingValue = $('#interest_sectl .rating_douban a.rating_people span[property^=v]').text(); rating_douban_ratingValue = (rating_douban_ratingValue + '').replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,'); $('#interest_sectl .rating_douban a.rating_people span[property^=v]').text(rating_douban_ratingValue); $('#interest_sectl').prepend($(imdb_html)); rating_imdb = $('#interest_sectl .rating_imdb'); $('#interest_sectl .rating_imdb a.rating_people').attr('href', imdb_href + '/' + 'ratings?ref_=tt_ov_rt'); ratingValue = $('span[itemprop=ratingValue]', doc).text(); $('#interest_sectl .rating_imdb strong.rating_num').text(ratingValue); starValue = ratingValue / 2; starValue = starValue % 1 > 0.5 ? Math.floor(starValue) + 0.5 : Math.floor(starValue); starValue *= 10; starValue = 'bigstar' + starValue; $('#interest_sectl .rating_imdb div.rating_right div.ll').addClass(starValue); ratingCount = $('span[itemprop=ratingCount]', doc).text(); $('#interest_sectl .rating_imdb a.rating_people span[property^=v]').text(ratingCount); rating_imdb.after($('
').addClass('rating_more')); rating_more = $('#interest_sectl .rating_more'); titleReviewBarItem = $('.titleReviewBar div.titleReviewBarItem', doc); metascore = null; popularity = null; reviews = null; parse = function(item) { var Popularity, score, text; text = $(item).text(); if (text.indexOf('Metascore') !== -1) { score = $(item).find('a[href^=criticreviews] span').text(); metascore = $("
"); metascore.html('Metascore'); return metascore.append($('').attr('href', imdb_href + '/' + 'criticreviews?ref_=tt_ov_rt').text(score)); } else if (text.indexOf('Popularity') !== -1) { popularity = $("
"); Popularity = $(item).find('span.subText').html(); return popularity.html('流行度  ' + Popularity + '
'); } else if (text.indexOf('Reviews') !== -1) { return null; } }; for (i = 0, len = titleReviewBarItem.length; i < len; i++) { item = titleReviewBarItem[i]; parse(item); } if (metascore || popularity || reviews) { if (metascore) { rating_more.append(metascore); } if (popularity) { rating_more.append(popularity); } if (reviews) { rating_more.append(reviews); } } else { rating_more.remove(); } return null; }); } }); } }