// ==UserScript==
// @name JavBus library trailer
// @name:zh-CN JavBus&library图书馆预告片花Direct
// @namespace https://greasyfork.org/zh-CN/scripts/441120-javbus-library-trailer
// @homepageURL https://greasyfork.org/zh-CN/scripts/441120-javbus-library-trailer
// @version 2022.1004.1520
// @description JavBus&library图书馆预告片花Direct,番号页封面下直接显示,默认不播放
// @description:zh-cn JavBus&library图书馆预告片花Direct,番号页封面下直接显示,默认不播放
// @author 匿名
// @license GPL
// @include /^.*(jav|bus|dmm|see|cdn|fan){2}\..*$/
// @include *://*.javlib.com/*
// @include *://*.javlibrary.com/*
// @include *://*/cn/?v=jav*
// @include *://*/en/?v=jav*
// @include *://*/tw/?v=jav*
// @include *://*/ja/?v=jav*
// @include *://*/tw/movie/jav*
// @match *://*.javlib.com/*
// @match *://*.javlibrary.com/*
// @match *://www.javbus.com/*
// @grant GM_download
// @grant GM_xmlhttpRequest
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_notification
// @grant GM_setClipboard
// @grant GM_getResourceURL
// @connect btsow.club
// ==/UserScript==
/**
* - 2022-09-15 重新对片花地址进行修正,支持bus和图书馆,并公开分享脚本,期待愈加完善
* - 以下为历史记录
* - 2022-03-08
* 脚本由 https://greasyfork.org/zh-CN/scripts/400267-javbus 二次修改以兼容老司机脚本
* - 只保留 预告片 功能,其它剔除
* - 可根据电脑分辨率自行调整播放器宽度,高度会自适应(搜索1120px修改合适值)
* - (脚本是在和老司机脚本做兼容,不保证兼容其它脚本,水平有限,仅作自用,不予公开)
*/
(function () {
'use strict';
function GM_addStyle(css) {
const style = document.getElementById("GM_addStyleBy8626") || (function () {
const style = document.createElement('style');
style.type = 'text/css';
style.id = "GM_addStyleBy8626";
document.head.appendChild(style);
return style;
})();
style.innerHTML = css;
}
/**
* 左则补零
* @param num
* @param len
* @returns {*}
*/
function format_zero(num, len) {
if (String(num).length > len) return num;
return (Array(len).join(0) + num).slice(-len);
}
//瀑布流
class Waterfull {
constructor() {
// 瀑布流状态:1:开启、0:关闭
this.waterfullScrollStatus = GM_getValue('scroll_status', 1);
this.done = true;
this.masonryObj = null;
this.config = {};
}
init(config) {
this.config = config;
//滚动
if (this.waterfullScrollStatus > 0 && $(this.config['pagination']).length > 0) {
document.addEventListener('scroll', this.scroll.bind(this));
}
if (this.config['useMasonry']) {
this.masonryObj = $(this.config['selector']).masonry({
itemSelector: this.config['items'],
isAnimated : false,
isFitWidth : true
})
}
}
//滚动到底获取数据
scroll() {
if ($(this.config['pagination'])[0].getBoundingClientRect().top - $(window).height() < 500 && this.done) {
this.getData();
}
};
//获取数据
getData() {
let url = $(this.config['next']).attr('href');
let _this = this;
if (url !== undefined) {
this.done = false;
fetch(url, {credentials: 'same-origin'})
.then(function (response) {
return response.text();
})
.then(function (html) {
let dom = new DOMParser().parseFromString(html, 'text/html');
dom = $(dom);
let avatarBox = dom.find(_this.config['items']).find('.avatar-box');
if (avatarBox.length > 0) {
avatarBox.parent().remove();
}
let elems = dom.find(_this.config['items']);
elems.each(function (i) {
$(this).attr('style', '');
$(this).find('a').attr('target', '_blank')
if (_this.config['selector'] === 'div#video_comments') {
let text = $(this).find('textarea').val();
text = text.replace(/\[url=([^\[\]]*?)\](.*?)\[\/url\]/g, '<a href="redirect.php?url=$1" target="_blank">$2</a>')
text = text.replace(/\[color=([^\[\]]*?)\](.*?)\[\/color\]/g, '<span style="color:$1">$2</span>')
text = text.replace(/\[b\](.*?)\[\/b\]/g, '<b>$1</b>')
$(this).find('.text').html(text).css('width', '442px');
}
});
$(_this.config['pagination']).html(dom.find(_this.config['pagination']).html());
$(_this.config['selector']).append(elems);
if (_this.config['useMasonry']) {
_this.masonryObj.masonry('appended', elems).masonry();
}
_this.done = true;
})
}
}
}
class Request {
constructor() {
this.lock = [];
}
send(url, successCallback) {
let _this = this;
return new Promise(function (resolve, reject) {
let index = _this.lock.indexOf(url);
if (index === -1) {
_this.lock.push(url);
GM_xmlhttpRequest({
url,
method : 'GET',
headers : {
"Cache-Control": "no-cache"
},
timeout : 30000,
onload : function (response) {
console.log(url + ' success');
_this.lock.splice(index, 1);
resolve(response);
},
onabort : (e) => {
console.log(url + " abort");
reject("wrong");
},
onerror : (e) => {
console.log(url + " error");
console.log(e);
reject("wrong");
},
ontimeout: (e) => {
console.log(url + " timeout");
reject("wrong");
},
});
} else {
reject("发送请求ing");
}
}).then(function (response) {
successCallback(response);
}, function (err) {
console.log(err)
});
}
}
class Base {
downloadPic(title, imgUrl) {
GM_download({
url : imgUrl,
saveAs: true,
name : title + imgUrl.substring(imgUrl.lastIndexOf("."))
});
}
addVideo(code, obj) {
let codeArr = code.split(/-|_/);
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoTwo = codeArr[1].substring(1);
let videoUrl = '//cc3001.dmm.co.jp/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
if (code.indexOf('HEYZO') !== -1) {
videoUrl = 'https://www.heyzo.com/contents/3000/' + codeArr[1] + '/heyzo_hd_' + codeArr[1] + '_sample.mp4'
}
let videoUrl2 = '//cc3001.dmm.co.jp/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl3 = '//cc3001.dmm.co.jp/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl4 = '//cc3001.dmm.co.jp/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl5 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_1324' + videoSeries + codeArr[1] + '/h_1324' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl6 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_1472' + videoSeries + videoNo + '/h_1472' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl7 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_113' + videoSeries + codeArr[1] + '/h_113' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl8 = '//cc3001.dmm.co.jp/litevideo/freepv/1/118/118' + videoSeries + videoNo + '/118' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl9 = '//cc3001.dmm.co.jp/litevideo/freepv/1/118/118' + videoSeries + codeArr[1] + '/118' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl10 = '//cc3001.dmm.co.jp/litevideo/freepv/5/53' + videoSeries.substr(0, 1) + '/53' + videoSeries + codeArr[1] + '/53' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl11 = '//cc3001.dmm.co.jp/litevideo/freepv/5/53' + videoSeries.substr(0, 1) + '/53' + videoSeries + codeArr[1] + '/53' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl12 = '//cc3001.dmm.co.jp/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + codeArr[1] + '/13' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl13 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_6/h_687' + videoSeries + codeArr[1] + '/h_687' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl14 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_1594' + videoSeries + videoNo + '/h_1594' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl15 = '//cc3001.dmm.co.jp/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl16 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_1100' + videoSeries + codeArr[1] + '/h_1100' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl17 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_2/h_283' + videoSeries + codeArr[1] + '/h_283' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl18 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_4/h_491' + videoSeries + codeArr[1] + '/h_491' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl19 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_1616' + videoSeries + videoNo + '/h_1616' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl46 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_1615' + videoSeries + videoNo + '/h_1615' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl20 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_1386' + videoSeries + videoNo + '/h_1386' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl21 = '//cc3001.dmm.co.jp/litevideo/freepv/5/55' + videoSeries.substr(0, 1) + '/55' + videoSeries + codeArr[1] + '/55' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl22 = '//cc3001.dmm.co.jp/litevideo/freepv/1/12l/12' + videoSeries + codeArr[1] + '/12' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl23 = '//cc3001.dmm.co.jp/vrsample/h/h_9/h_955' + videoSeries + videoNo + '/h_955' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl24 = '//cc3001.dmm.co.jp/vrsample/2/24d/24' + videoSeries + videoNo + '/24' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl25 = '//cc3001.dmm.co.jp/vrsample/h/h_1/h_1321' + videoSeries + videoNo + '/h_1321' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl26 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_1560' + videoSeries + videoNo + '/h_1560' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl27 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_1160' + videoSeries + codeArr[1] + '/h_1160' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl28 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_2/h_254' + videoSeries + codeArr[1] + '/h_254' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl29 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_2/h_227' + videoSeries + videoNo + '/h_227' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl30 = '//cc3001.dmm.co.jp/litevideo/freepv/1/125/125' + videoSeries + codeArr[1] + '/125' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl31 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_3/h_346' + videoSeries + codeArr[1] + '/h_346' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl32 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_1495' + videoSeries + codeArr[1] + '/h_1495' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl33 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_0/h_068' + videoSeries + codeArr[1] + '/h_068' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl34 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_0/h_086' + videoSeries + videoTwo + '/h_086' + videoSeries + videoTwo + '_dmb_w.mp4';
let videoUrl35 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_0/h_086' + videoSeries + videoTwo + '/h_086' + videoSeries + videoTwo + '_sm_w.mp4';
let videoUrl36 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_0/h_086' + videoSeries + codeArr[1] + '/h_086' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl37 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_0/h_086' + videoSeries + videoTwo + '/h_086' + videoSeries + videoTwo + '_dm_w.mp4';
let videoUrl38 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_1160' + videoSeries + videoTwo + '/h_1160' + videoSeries + videoTwo + '_dm_w.mp4';
let videoUrl39 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_6/h_635' + videoSeries + codeArr[1] + '/h_635' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl40 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_6/h_635' + videoSeries + codeArr[1] + '/h_635' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl41 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_127' + videoSeries + videoNo + '/h_127' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl42 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_127' + videoSeries + codeArr[1] + '/h_127' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl43 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_4/h_480' + videoSeries + videoNo + '/h_480' + videoSeries + videoNo + '_dm_w.mp4'; //AAJB-143
let videoUrl44 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_1/h_170' + videoSeries + codeArr[1] + '/h_170' + videoSeries + codeArr[1] + '_dmb_w.mp4'; //AAK-048
let videoUrl45 = '//cc3001.dmm.co.jp/litevideo/freepv/h/h_2/h_237' + videoSeries + codeArr[1] + '/h_237' + videoSeries + codeArr[1] + '_dmb_w.mp4'; //FIND-002
let videoUrl95 = 'http://smovie.1pondo.tv/sample/movies/' + code + '/1080p.mp4'; //一本道 1pondo
let videoUrl96 = 'https://www.prestige-av.com/sample_movie/TKT' + code + '.mp4';
let videoUrl97 = 'https://sample.mgstage.com/sample/fullsail/' + videoSeries + '/' + codeArr[1] + '/' + code + '.mp4'; //ABC-056
let videoUrl98 = 'https://my.cdn.tokyo-hot.com/media/samples/' + code + '.mp4'; //东京热 tokyo-hot AB-001
let videoUrl99 = 'https://smovie.caribbeancom.com/sample/movies/' + code + '/1080p.mp4'; //加勒比 carib
let videoUrl100 = '//cc3001.dmm.co.jp/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let video = $('<div style="text-align: center;padding: 10px;border-radius: 4px;border: 1px solid #ccc;margin: 10px 0;">\
<video controls style="width: 1120px;">\
<source src="' + videoUrl + '" type="video/mp4" />\
<source src="' + videoUrl2 + '" type="video/mp4" />\
<source src="' + videoUrl3 + '" type="video/mp4" />\
<source src="' + videoUrl4 + '" type="video/mp4" />\
<source src="' + videoUrl5 + '" type="video/mp4" />\
<source src="' + videoUrl6 + '" type="video/mp4" />\
<source src="' + videoUrl7 + '" type="video/mp4" />\
<source src="' + videoUrl8 + '" type="video/mp4" />\
<source src="' + videoUrl9 + '" type="video/mp4" />\
<source src="' + videoUrl10 + '" type="video/mp4" />\
<source src="' + videoUrl11 + '" type="video/mp4" />\
<source src="' + videoUrl12 + '" type="video/mp4" />\
<source src="' + videoUrl13 + '" type="video/mp4" />\
<source src="' + videoUrl14 + '" type="video/mp4" />\
<source src="' + videoUrl15 + '" type="video/mp4" />\
<source src="' + videoUrl16 + '" type="video/mp4" />\
<source src="' + videoUrl17 + '" type="video/mp4" />\
<source src="' + videoUrl18 + '" type="video/mp4" />\
<source src="' + videoUrl19 + '" type="video/mp4" />\
<source src="' + videoUrl20 + '" type="video/mp4" />\
<source src="' + videoUrl21 + '" type="video/mp4" />\
<source src="' + videoUrl22 + '" type="video/mp4" />\
<source src="' + videoUrl23 + '" type="video/mp4" />\
<source src="' + videoUrl24 + '" type="video/mp4" />\
<source src="' + videoUrl25 + '" type="video/mp4" />\
<source src="' + videoUrl26 + '" type="video/mp4" />\
<source src="' + videoUrl27 + '" type="video/mp4" />\
<source src="' + videoUrl28 + '" type="video/mp4" />\
<source src="' + videoUrl29 + '" type="video/mp4" />\
<source src="' + videoUrl30 + '" type="video/mp4" />\
<source src="' + videoUrl31 + '" type="video/mp4" />\
<source src="' + videoUrl32 + '" type="video/mp4" />\
<source src="' + videoUrl33 + '" type="video/mp4" />\
<source src="' + videoUrl34 + '" type="video/mp4" />\
<source src="' + videoUrl35 + '" type="video/mp4" />\
<source src="' + videoUrl36 + '" type="video/mp4" />\
<source src="' + videoUrl37 + '" type="video/mp4" />\
<source src="' + videoUrl38 + '" type="video/mp4" />\
<source src="' + videoUrl39 + '" type="video/mp4" />\
<source src="' + videoUrl40 + '" type="video/mp4" />\
<source src="' + videoUrl41 + '" type="video/mp4" />\
<source src="' + videoUrl42 + '" type="video/mp4" />\
<source src="' + videoUrl43 + '" type="video/mp4" />\
<source src="' + videoUrl44 + '" type="video/mp4" />\
<source src="' + videoUrl45 + '" type="video/mp4" />\
<source src="' + videoUrl46 + '" type="video/mp4" />\
<source src="' + videoUrl95 + '" type="video/mp4" />\
<source src="' + videoUrl96 + '" type="video/mp4" />\
<source src="' + videoUrl97 + '" type="video/mp4" />\
<source src="' + videoUrl98 + '" type="video/mp4" />\
<source src="' + videoUrl99 + '" type="video/mp4" />\
<source src="' + videoUrl100 + '" type="video/mp4" />\
</video>\
</div>');
$(obj).before(video)
}
addVideoN(code, objN) {
let videoUrl = 'https://my.cdn.tokyo-hot.com/media/samples/' + code + '.mp4';
if (null != location.href.match(/crazyasia/)) {
videoUrl = 'https://my.cdn.tokyo-hot.com/media/samples/' + code + '.mp4'
} //东京热 tokyo-hot AB-001
let video = $('<div style="text-align: center;padding: 10px;border-radius: 4px;border: 1px solid #ccc;margin: 10px 0;">\
<video controls style="width: 1120px;">\
<source src="' + videoUrl + '" type="video/mp4" />\
</video>\
</div>');
$(objN).before(video)
}
addVideoY(code, objY) {
let videoUrl = 'http://smovie.1pondo.tv/sample/movies/' + code + '/1080p.mp4';
let videoUrl2 = 'https://smovie.1pondo.tv/sample/movies/' + code + '/480p.mp4';
let videoUrl3 = 'https://smovie.1pondo.tv/sample/movies/' + code + '/520p.mp4';
let videoUrl4 = 'https://smovie.1pondo.tv/sample/movies/' + code + '/720p.mp4';
if (null != location.href.match(/crazyasia/)) {
videoUrl = 'http://smovie.1pondo.tv/sample/movies/' + code + '/1080p.mp4'
} //一本道
let video = $('<div style="text-align: center;padding: 10px;border-radius: 4px;border: 1px solid #ccc;margin: 10px 0;">\
<video controls style="width: 1120px;">\
<source src="' + videoUrl + '" type="video/mp4" />\
<source src="' + videoUrl2 + '" type="video/mp4" />\
<source src="' + videoUrl3 + '" type="video/mp4" />\
<source src="' + videoUrl4 + '" type="video/mp4" />\
</video>\
</div>');
$(objY).before(video)
}
addVideoC(code, objC) {
let videoUrl = 'https://smovie.caribbeancom.com/sample/movies/' + code + '/1080p.mp4';
if (null != location.href.match(/crazyasia/)) {
videoUrl = 'https://smovie.caribbeancom.com/sample/movies/' + code + '/1080p.mp4'
} //加勒比
let video = $('<div style="text-align: center;padding: 10px;border-radius: 4px;border: 1px solid #ccc;margin: 10px 0;">\
<video controls style="width: 1120px;">\
<source src="' + videoUrl + '" type="video/mp4" />\
</video>\
</div>');
$(objC).before(video)
}
addVideoH(code, objH) {
let videoUrl = 'https://smovie.10musume.com/sample/movies/' + code + '/1080p.mp4';
if (null != location.href.match(/crazyasia/)) {
videoUrl = 'https://smovie.10musume.com/sample/movies/' + code + '/1080p.mp4'
} //天然むすめ https://smovie.10musume.com/sample/movies/052319_01/1080p.mp4
let video = $('<div style="text-align: center;padding: 10px;border-radius: 4px;border: 1px solid #ccc;margin: 10px 0;">\
<video controls style="width: 1120px;">\
<source src="' + videoUrl + '" type="video/mp4" />\
</video>\
</div>');
$(objH).before(video)
}
}
class JavBus extends Base {
constructor(Request, Waterfull) {
super(Request, Waterfull);
GM_addStyle(`
.info a.red {color:red;padding-right:15px;}
.screencap {
position: relative;
}
.screencap a.download {
position: absolute;
background: #fff;
background:rgba(255,255,255,0.7);
font-size: 12px;
right: 20px;
top: 5px;
border:0px solid;
border-radius: 4px;
padding: 2px 3px;
border-radius: 5px;
}
`);
if ($('.col-md-3.info').length > 0) {
this.detailPage();
}
}
detailPage() {
let _this = this;
let info = $('.col-md-3.info');
//标题
let title = $('.container > h3').text();
//识别码
let codeRow = info.find('p').eq(0);
let code = codeRow.find('span').eq(1).html();
let studioN = info.find('p').eq(3);
let studio = studioN.find('a[href]').eq(0).html();
codeRow.append($('<span style="color:red">←点击复制</span>'));
codeRow.on('click', function () {
GM_setClipboard(code);
$(this).find('span').eq(2).html('←已复制到黏贴板');
});
//添加预告视频观看按钮
if(null != studio.match(/カリビアンコム/)) {
this.addVideoC(code, '#mag-submit-show');
}else if(null != studio.match(/東京熱/)) {
this.addVideoN(code, '#mag-submit-show');
}else if(null != studio.match(/一本道/)) {
this.addVideoY(code, '#mag-submit-show');
}else if (null != studio.match(/天然むすめ/)) {
this.addVideoH(code, '#mag-submit-show');
}else {
this.addVideo(code, '#mag-submit-show');
}
//添加跳转到javlibrary链接
info.append("<p><a class='red' href='http://www.javlibrary.com/cn/vl_searchbyid.php?keyword=" + code + "' target='_blank'>javlibrary</a><a class='red' href='https://javdb005.com/search?q=" + code + "' target='_blank'>javdb</a><a class='red' href='https://dd7448.com/serch_censored.htm?skey=" + code + "' target='_blank'>javbooks</a></p>");
//封面图添加下载按钮
let downloadBtn = $('<a class="download">' + studio + ' 封面下载</a>');
let imgUrl = $('.screencap img').attr('src');
downloadBtn.on('click', function (e) {
e.stopPropagation();
_this.downloadPic(title, imgUrl);
return false;
});
downloadBtn.attr('download', code);
$('.screencap').append(downloadBtn);
}
}
class JavLibrary extends Base {
constructor(Request, Waterfull) {
super(Request, Waterfull);
GM_addStyle(`
.header a.red {color:red;padding-right:15px;}
#video_info td {
vertical-align: text-bottom;
}
#video_jacket {
position: relative;
}
#video_jacket a {
position: absolute;
background: #fff;
border: 1px solid #000;
padding: 5px 10px;
border-radius: 5px;
font-size: 12px;
right: 5px;
top: 5px;
}
`);
if ($('div.page_selector').length > 0) {
this.listPage();
}
if ($('#video_info').length > 0) {
this.detailPage();
}
}
detailPage() {
let _this = this;
let info = $('#video_info');
//标题
let title = $('.post-title').text();
//识别码
let codeRow = info.find('.item').eq(0);
let code = codeRow.find('.text').html();
codeRow.find('tr').append($('<td class="text" style="color:red">←点击复制</td>'));
codeRow.on('click', function () {
GM_setClipboard(code);
$(this).find('td').last().html('←已复制到黏贴板');
});
//添加跳转到javlibrary链接
info.append("<div class='item'><table><tbody><tr><td class='header'><a class='red' href='https://www.busfan.blog/" + code + "' target='_blank'>javbus</a><a class='red' href='https://javdb005.com/search?q=" + code + "' target='_blank'>javdb</a><a class='red' href='https://dd7448.com/serch_censored.htm?skey=" + code + "' target='_blank'>javbooks</a></td></tr></tbody></table></div>");
//演员
info.find('a').attr('target', '_blank');
//添加预告视频观看按钮
this.addVideo(code, '#video_favorite_edit')
//封面图添加下载按钮
let downloadBtn = $('<a>下载</a>');
let imgUrl = $('#video_jacket img').attr('src');
downloadBtn.on('click', function (e) {
e.stopPropagation();
_this.downloadPic(title, imgUrl);
return false;
});
downloadBtn.attr('download', code);
$('#video_jacket').append(downloadBtn);
}
}
class Main {
constructor() {
if ($("footer:contains('JavBus')").length) {
this.site = 'javBus';
} else if ($("#bottomcopyright:contains('JAVLibrary')").length) {
this.site = 'javLibrary'
}
}
make() {
let waterfullObj = new Waterfull();
let requestObj = new Request();
let obj;
switch (this.site) {
case 'javBus':
obj = new JavBus(requestObj, waterfullObj);
break;
case 'javLibrary':
obj = new JavLibrary(requestObj, waterfullObj);
break;
}
return obj;
}
}
let main = new Main();
main.make();
})();