OneJAVOneWeb

老司机开车带你飞,一个插件畅览几大JAV网站

28.06.2022 itibariyledir. En son verisyonu görün.

  1. /* globals $ */
  2. // ==UserScript==
  3. // @name OneJAVOneWeb
  4. // @namespace https://sleazyfork.org/zh-CN/scripts/428639-onejavoneweb
  5. // @version 2022.0628.2200
  6. // @description 老司机开车带你飞,一个插件畅览几大JAV网站
  7. // @author 匿名老司机
  8. // @license GPL
  9. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAAAAAAAAQCEeRdzAAAC1klEQVR4nK1V/U+NYRg+/4kxHylUxsx8bD4yH7PxAxmzMfO9qemkcyo5NX1wyEhD6WSpOSXmGG1+UBZJ0rA5FErIGbIoSowu9/1e7znvOfNbvNuznef+uO7rvp/reY4N9f7VWFLQjbh0YHrG6JbmKoZg2ZBQEEB0Kh3xowTUNVkwBMtmoMc6gakOc6Uhgq3+jkljTNCmMVNkxadbMWqTfBti9gEOL/D4NdDaCTS/AFYeAaaZBZYeApqeA2tPEESTL9wFqu8RUGOWHQYedAEpVQI4yQ5U3kHEt70MxhjihNXFFtqKbsCIVabtAdq02MQUYE8F9/k+AdSA5VLBc4vGknpg9gG2sDgPGPpB+/WHnFOUnQz123wGGJsMHK3jfuMpAdQZaOX1J2nc6WGSzm3TaYu1v4ctqi+zhjbXJWBMEnC1DRj+CSw4aALqHLeUMCj5vLQr+yhhk3sF+PUb6JAWv34HFuaSZWIRYytuAxP2Ak+l2LN3xjgswK2lfwNebgUCfUBpA30bigk4NxvoHwIa24FZWcC3YaC2xWBvAW47awFqkp6yVm7qkGKmL6OGhfRkH3UDXR+BdSbbrFojj4DKaIfHAtSZzs8BBqTNm09EDpX0nWvkDHV5m8UvLN3X6DNlZQHuKrcAx8tcEiVgZCRSTtqiHpay1ANRf9sr4EO/KMNlaJSyUUZJppZ2l1MKTi/32raKfVDk8+YTZ6YERCKhr8HPsQk5m1xqXp8yU4c6k3HJbE+/FW5Kw9dm7RVwkWj0yyBtx+o4BgNQgXoH6Ah8pqg14X4nT3JONqVRWBem01Qy7emjTfUaYhhsTb88H4NnZALdvSLmt7x+0WEqcFZzRAr48j1ZzssJPR42I9lexcpq1Nugz9iqQrmSbj4Gup+5H1hzXBi7GKOFEvLlhhVbr44BGGsyMClbT5SDWgzuNSn8ydKluWoLe+oiH9h/WdHBB/Y//wX8ASlYtkPZ5uteAAAAAElFTkSuQmCC
  10. // @match *://*.javlibrary.com/*
  11. // @match *://*.n53i.com/*
  12. // @match *://onejav.com/*
  13. // @match *://*.141jav.com/*
  14. // @match *://*.jav321.com/*
  15. // @match *://*.javbus.com/*
  16. // @match *://hpjav.tv/*
  17. // @match *://hpav.tv/*
  18. // @match *://*.jav321.com/*
  19. // @match *://jable.tv/*
  20. // @match *://javdb.com/*
  21. // @include /^.*://.*?(busjav|buscdn|busdmm|dmmbus|seedmm|dmmsee).*?\..+$/
  22. // @include /^.*://.*?avmoo.*?\..+$/
  23. // @include /^.*://javdb3\d+\.com.+$/
  24. // @exclude *://*.javlibrary.com/*/login.php
  25. // @exclude *://*.javlibrary.com/login.php
  26. // @exclude *://*.n53i.com/*/login.php
  27. // @exclude *://*.n53i.com/login.php
  28. // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js#sha256=668b046d12db350ccba6728890476b3efee53b2f42dbb84743e5e9f1ae0cc404
  29. // @connect pics.dmm.co.jp
  30. // @connect jp.netcdn.space
  31. // @run-at document-end
  32. // @grant window.close
  33. // @grant window.onurlchange
  34. // @grant GM_openInTab
  35. // @grant GM_xmlhttpRequest
  36. // @grant GM_registerMenuCommand
  37. // @grant GM_setValue
  38. // @grant GM_getValue
  39. // @grant GM_deleteValue
  40. // @grant GM_notification
  41. // @grant GM_getResourceURL
  42. // @grant GM_getResourceText
  43. // @grant GM_addStyle
  44. // @grant GM_info
  45. // ==/UserScript==
  46. (() => {
  47. 'use strict';
  48. console.clear();
  49. console.time('JAV');
  50. //@ts-ignore
  51. if (GM_getValue('data', '') == '') {
  52. //@ts-ignore
  53. GM_setValue('data', '[{"name":"JAV目錄大全","color":"#fe1773","website":"https://freejavbt.com","path":"/{{fanHao}}"},{"name":"JAVMOVS","color":"#79c142","website":"https://javmovs.com","path":"/{{fanHao}}"},{"name":"Javfree","color":"#df6e05","website":"https://javfree.sh","path":"/search/movie/{{fanHao}}"},{"name":"HPJAV","color":"#f96364","website":"https://hpjav.tv","path":"/?s={{fanHao}}"},{"name":"JAVHD","color":"#cb000d","website":"https://javhd.today","path":"/search/video/?s={{fanHao}}"},{"name":"JAVTRUST","color":"#e38a5a","website":"https://javtrust.com","path":"/search/movie/{{fanHao}}.html"},{"name":"JAVFUN","color":"#79c142","website":"https://www3.javfun.me","path":"/search/{{fanHao}}"},{"name":"BEJAV","color":"#fd6500","website":"https://bejav.net","path":"/search/{{fanHao}}"},{"name":"SEXTOP","color":"#c20001","website":"https://sextop.net","path":"/?s={{fanHao}}&search=Search"},{"name":"JAVDISK","color":"#fe121e","website":"https://javdisk.com","path":"/search.html?q={{fanHao}}"},{"name":"SUPJAV","color":"#d8201d","website":"https://supjav.com","path":"/?s={{fanHao}}"},{"name":"SVJAV","color":"#cc2748","website":"https://svjav.com","path":"/{{fanHao}}/"},{"name":"FBJAV","color":"#365899","website":"https://fbjav.com","path":"/{{fanHao}}/"},{"name":"JAVUSA","color":"#0f0f0f","website":"https://javusa.com","path":"/jav/{{fanHao}}/"},{"name":"JAVHDPorn","color":"#fa9f22","website":"https://www2.javhdporn.net","path":"/video/{{fanHao}}/"},{"name":"JAVHHH","color":"#da2657","website":"https://javhhh.com","path":"/video/{{fanHao}}/"},{"name":"KISSJAV","color":"#00a2e8","website":"https://kissjav.com","path":"/search/video/?s={{fanHao}}"},{"name":"JAVSKY","color":"#ca6e00","website":"https://javsky.tv","path":"/search/movie/{{fanHao}}"},{"name":"JavDragon","color":"#ec4caf","website":"https://javdragon.com","path":"/{{bango}}/"},{"name":"JAVBEL","color":"#ff5b15","website":"https://javbel.com","path":"/search.php?q={{fanHao}}"},{"name":"Javmix","color":"#f7c54c","website":"https://javmix.tv","path":"/video/{{fanHao}}/"},{"name":"JAV-FOR","color":"#f0542e","website":"https://jav-for.me","path":"/"},{"name":"av-Drive","color":"#8ce1f5","website":"https://av-drive.blogspot.com","path":"/"},{"name":"GGJAV","color":"#2287f0","website":"https://ggjav.com","path":"/ja/main/search?string={{fanHao}}"},{"name":"WideAV","color":"#3e7bee","website":"https://wideav.com","path":"/search?keyword={{fanHao}}"},{"name":"JAVCL","color":"#ffcc00","website":"https://javcl.com","path":"/search/{{fanHao}}/"},{"name":"JAV321","color":"#777","website":"https://www.jav321.com","path":"/?bango={{fanHao}}"},{"name":"Jable","color":"#0077ac","website":"https://jable.tv","path":"/search/{{fanHao}}/"},{"name":"JavDB","color":"#0a0a0a","website":"https://javdb.com","path":"/search?q={{fanHao}}"},{"name":"OneJAV","color":"#f5da47","website":"https://onejav.com","path":"/search/{{bango}}"},{"name":"AVMOO","color":"#cc0000","website":"https://avmoo.click","path":"/cn/search/{{fanHao}}"},{"name":"JavBus","color":"#febe00","website":"https://www.javbus.com","path":"/search/{{fanHao}}"},{"name":"JAVLibrary","color":"#f908bb","website":"https://www.javlibrary.com","path":"/cn/vl_searchbyid.php?keyword={{fanHao}}"},{"name":"SEXTB","color":"#f5c823","website":"https://sextb.net","path":"/{{fanHao}}"},{"name":"JAVGG","color":"#151515","website":"https://javgg.net","path":"/jav/{{fanHao}}/"}]');
  54. //@ts-ignore
  55. GM_deleteValue('version');
  56. }
  57. console.info('老司机开车带你飞');
  58. console.info('%c ', "background:url('data:image/webp;base64,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') no-repeat;padding:98px 125px;");
  59. console.info('%cOneJAV插件使用了“思源黑体”字,请确保你的计算机安装了该字体\nhttps://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese', 'margin:1px;border:3px solid orange;border-radius:5px;padding:3px;line-height:1.8;');
  60. //@ts-ignore
  61. GM_registerMenuCommand('更新', () => {
  62. //@ts-ignore
  63. GM_openInTab('https://sleazyfork.org/zh-CN/scripts/428639-onejavoneweb', {
  64. active: true,
  65. insert: true,
  66. setParent: true
  67. });
  68. });
  69. //@ts-ignore
  70. GM_registerMenuCommand('下载思源黑体字体', () => {
  71. //@ts-ignore
  72. GM_openInTab('https://cdn.jsdelivr.net/gh/adobe-fonts/source-han-sans@release/OTF/SimplifiedChinese/SourceHanSansSC-Regular.otf', { active: true, insert: true, setParent: true });
  73. });
  74. class JAV {
  75. constructor(i) {
  76. [this.bango, this.fanHao] = (() => {
  77. const o = i.trim().replace(/ +/, '-');
  78. let t = o.match(/FC2-?PPV-?(\d+)/i);
  79. if ((t = o.match(/FC2-?PPV-?(\d+)/i))) {
  80. return [`FC2PPV${t[1]}`, `FC2PPV-${t[1]}`];
  81. }
  82. else if ((t = o.match(/([a-zA-Z]+)-?(\d+)/i))) {
  83. return [`${t[1].toUpperCase()}${t[2]}`, `${t[1].toUpperCase()}-${t[2]}`];
  84. }
  85. else {
  86. console.info(`JAV:${i}处理失败,反馈给作者修复bug`);
  87. return [i, i];
  88. }
  89. })();
  90. // @ts-ignore
  91. this.data = eval(GM_getValue('data'));
  92. }
  93. render(i) {
  94. return i.replace('{{fanHao}}', this.fanHao).replace('{{bango}}', this.bango);
  95. }
  96. create_table(position = 0) {
  97. const rows = 4;
  98. let htmlTable;
  99. if (position == 0) {
  100. // absolute
  101. htmlTable = `<div id="jav_table" style="font-family:'思源黑体';font-weight:700;font-size:18px;display:inline-block;position:absolute;z-index:9999;background-color:#fff;"><table border="1" cellspacing="0" style="border-spacing:0;line-height:1.6;">`;
  102. }
  103. else {
  104. // inherit
  105. htmlTable = `<div id="jav_table" style="font-family:'思源黑体';font-weight:700;font-size:18px;display:inline-block;inherit:relative;z-index:9999;background-color:#fff;"><table border="1" cellspacing="0" style="border-spacing:0;line-height:1.6;">`;
  106. }
  107. let htmlTbody = ``;
  108. for (let index in this.data) {
  109. let i = Number(index);
  110. this.data[i]['url'] = `${this.data[i]['website']}${this.render(this.data[i]['path'])}`;
  111. if (i % rows == 0) {
  112. htmlTbody += '<tr>';
  113. }
  114. htmlTbody += `<td>&nbsp<a target="_blank" style="text-decoration:none;color:${this.data[i]['color']}" href="${this.data[i]['url']}">${this.data[i]['name']}</a>&nbsp</td>`;
  115. if (i % rows == 3) {
  116. htmlTbody += '</tr>';
  117. }
  118. }
  119. htmlTable += `${htmlTbody}</table></div>`;
  120. return htmlTable;
  121. }
  122. }
  123. /* OneJAV 141jav */
  124. if (null != location.hostname.match(/onejav.com|141jav.com/)) {
  125. (() => {
  126. $('body').on('mouseenter', '.card.mb-3>.container>.columns>.column:even', function () {
  127. const bango = $(this).parents('.columns').find('.title.is-spaced>a').text().trim();
  128. const jav = new JAV(bango);
  129. $(this).prepend(jav.create_table());
  130. return false;
  131. });
  132. $('body').on('mouseleave', '.card.mb-3>.container>.columns>.column:even', function () {
  133. $(this).find('#jav_table').remove();
  134. return false;
  135. });
  136. // Show a table without no search reasult
  137. if (null != location.pathname.match(/\/search\/[a-zA-Z0-9-]/) && 0 == $('div.card.mb-3').length) {
  138. const jav = new JAV(location.pathname.substr(8));
  139. $('div.container').append(jav.create_table(1));
  140. }
  141. })();
  142. }
  143. /* avmoo javbus */
  144. if (null != location.hostname.match(/avmoo|javbus|busjav|buscdn|busdmm|dmmbus|seedmm|dmmsee/)) {
  145. (() => {
  146. const showBoxes = $('.movie-box');
  147. // @ts-ignore
  148. if (showBoxes.length && Number(GM_getValue('auto_jump', '1'))) {
  149. location.href = showBoxes[0].href;
  150. }
  151. $('body').on('mouseenter', '.col-md-9.screencap', function () {
  152. const bango = $('body > div.container > h3').text().trim().split(' ')[0];
  153. const jav = new JAV(bango);
  154. $(this).prepend(jav.create_table());
  155. return false;
  156. });
  157. $('body').on('mouseleave', '.col-md-9.screencap', function () {
  158. $(this).find('#jav_table').remove();
  159. return false;
  160. });
  161. $('#sample-waterfall > a').each((_, a) => {
  162. // @ts-ignore
  163. GM_xmlhttpRequest({
  164. method: 'GET',
  165. url: a.href,
  166. responseType: 'blob',
  167. onload: (res) => {
  168. const blob = new Blob([res.response], { type: 'image/jpeg' });
  169. a.href = URL.createObjectURL(blob);
  170. }
  171. });
  172. });
  173. })();
  174. }
  175. /* javlibarary */
  176. if (null != location.hostname.match(/javlibrary|n53i/)) {
  177. (() => {
  178. const style = `.pointer,#onejav_modal *{cursor:pointer}#onejav_modal{color:#dcdcdc;font-size:64px;font-weight:700;font-family:'思源黑体';background-color:rgba(0,0,0,0.8);position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}#onejav_modal img{cursor:default;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);position:absolute;top:50%;right:auto;bottom:auto;left:50%}#onejav_modal #left{-webkit-transform:translateY(-50%);transform:translateY(-50%);position:absolute;top:50%;right:auto;bottom:auto;left:10px}#onejav_modal #left::after{content:"◀"}#onejav_modal #left:hover{color:#fff}#onejav_modal #right{-webkit-transform:translateY(-50%);transform:translateY(-50%);position:absolute;top:50%;right:10px;bottom:auto;left:auto}#onejav_modal #right::after{content:"▶"}#onejav_modal #right:hover{color:#fff}#onejav_modal #close{position:absolute;top:0;right:10px;bottom:auto;left:auto}#onejav_modal #close::after{content:"✖"}#onejav_modal #close:hover{color:#fff}`;
  179. $('head').append(`<style>${style}</style>`);
  180. const sourceArr = $('#rightcolumn > div.previewthumbs > img').map((_, img) => img.src);
  181. const srcArr = sourceArr.map((_, source) => {
  182. const match = source.match(/digital\/video\/(\w+)\/\1-(\d+.jpg)/i);
  183. const src = source.replace(match[0], `digital/video/${match[1]}/${match[1]}jp-${match[2]}`);
  184. return src;
  185. });
  186. srcArr.each((index, src) => {
  187. // @ts-ignore
  188. GM_xmlhttpRequest({
  189. method: 'GET',
  190. url: src,
  191. responseType: 'blob',
  192. onload: (res) => {
  193. const blob = new Blob([res.response], { type: 'image/jpeg' });
  194. srcArr[index] = URL.createObjectURL(blob);
  195. }
  196. });
  197. });
  198. const modal = $(`<div id="onejav_modal"><img src="" alt="预览大图"/><div id="left"></div><div id="right"></div><div id="close"></div></div>`);
  199. $('#rightcolumn > div.previewthumbs > img').each(function (index, img) {
  200. $(img).addClass('pointer');
  201. $(img).on('click', () => {
  202. modal.find('img')[0].src = srcArr[index];
  203. $('body').append(modal);
  204. let i = 0;
  205. $('body').on('click', '#onejav_modal>#left', () => {
  206. i -= 1;
  207. if (i < 0) {
  208. i = srcArr.length - 1;
  209. }
  210. $('#onejav_modal>img')[0].src = srcArr[i];
  211. return false;
  212. });
  213. $('body').on('click', '#onejav_modal>#right', () => {
  214. i += 1;
  215. if (i > srcArr.length - 1) {
  216. i = 0;
  217. }
  218. $('#onejav_modal>img')[0].src = srcArr[i];
  219. return false;
  220. });
  221. $('body').on('click', '#onejav_modal>img', () => {
  222. return false;
  223. });
  224. $('body').on('click', '#onejav_modal', () => {
  225. $('#onejav_modal').remove();
  226. $('body').off('keydown.onejav');
  227. return false;
  228. });
  229. $('body').on('keydown.onejav', (event) => {
  230. if (event.key == 'ArrowLeft') {
  231. $('#onejav_modal>#left').trigger('click');
  232. }
  233. else if (event.key == 'ArrowRight') {
  234. $('#onejav_modal>#right').trigger('click');
  235. }
  236. else if (event.key == 'Escape') {
  237. $('#onejav_modal').trigger('click');
  238. }
  239. return false;
  240. });
  241. return false;
  242. });
  243. });
  244. $('body').on('mouseenter', '.video', function () {
  245. const bango = $(this).find('.id').text().trim().split(' ')[0];
  246. const jav = new JAV(bango);
  247. const html = `<div class="newBox" style="position:absolute;z-index:9999;top:0;right:0;"><button style="display:block;" link="${jav.data[29]['url']}">${jav.data[29]['name']}</button><button style="display:block;" link="${jav.data[30]['url']}">${jav.data[30]['name']}</button><button style="display:block;" link="${jav.data[27]['url']}">${jav.data[27]['name']}</button></div>`;
  248. $(this).prepend(html);
  249. $('.newBox>button').on('click', function () {
  250. window.open($(this).attr('link'));
  251. return false;
  252. });
  253. });
  254. $('body').on('mouseleave', '.video', function () {
  255. $(this).find('.newBox').remove();
  256. return false;
  257. });
  258. $('body').on('mouseenter', '#video_jacket', function () {
  259. const bango = $('#video_title > h3').text().trim().split(' ')[0];
  260. const jav = new JAV(bango);
  261. $(this).prepend(jav.create_table());
  262. return false;
  263. });
  264. $('body').on('mouseleave', '#video_jacket', function () {
  265. $(this).find('#jav_table').remove();
  266. return false;
  267. });
  268. })();
  269. }
  270. /* jav321 */
  271. if (null != location.hostname.match(/jav321/)) {
  272. (() => {
  273. if (location.pathname.match(/\/video\/[a-zA-Z0-9-]+/i)) {
  274. const hinban = $('body > div:nth-child(3) > div.col-md-7.col-md-offset-1.col-xs-12 > div:nth-child(1) > div.panel-body > div:nth-child(1) > div.col-md-9')
  275. .text()
  276. .match(/品番: ([a-zA-Z0-9-]+)/i);
  277. const jav = new JAV(hinban[1]);
  278. $('body > div:nth-child(3) > div.col-md-7.col-md-offset-1.col-xs-12 > div:nth-child(1) > div.panel-body').append(jav.create_table(1));
  279. }
  280. const searchParams = new URLSearchParams(location.search.substr(1));
  281. if (undefined != searchParams.get('bango')) {
  282. $('body > div:nth-child(2) > div > nav > div > form:nth-child(2) > div > input')[0].value =
  283. searchParams.get('bango');
  284. $('body > div:nth-child(2) > div > nav > div > form:nth-child(2) > div > span > button')[0].click();
  285. window.close();
  286. }
  287. })();
  288. }
  289. /* hpjav */
  290. if (null != location.hostname.match(/hpj?av/)) {
  291. (() => {
  292. $('body > div.video-box-ather.container > div:nth-child(1) > div > div.col-md-5').on('mouseenter', function () {
  293. const bango = location.pathname.slice(location.pathname.lastIndexOf('/') + 1).toUpperCase();
  294. const jav = new JAV(bango);
  295. $(this).prepend(jav.create_table());
  296. return false;
  297. });
  298. $('body > div.video-box-ather.container > div:nth-child(1) > div > div.col-md-5').on('mouseleave', function () {
  299. $(this).find('#jav_table').remove();
  300. return false;
  301. });
  302. })();
  303. }
  304. /* jable */
  305. if (null != location.hostname.match(/jable/i)) {
  306. (() => {
  307. const matches = location.pathname.match(/\/videos\/([a-zA-Z0-9-]+)\//i);
  308. if (matches) {
  309. const jav = new JAV(matches[1]);
  310. $('#site-content > div > div > div:nth-child(1) > section.video-info.pb-3').append(jav.create_table(1));
  311. }
  312. })();
  313. }
  314. /* javdb */
  315. if (null != location.hostname.match(/javdb/i)) {
  316. const bango = $('div.panel-block.first-block > span').text().trim().split(' ')[0];
  317. const jav = new JAV(bango);
  318. $('div.video-meta-panel').after(jav.create_table(1));
  319. }
  320. console.timeEnd('JAV');
  321. })();