db=>

javdb添加跳转在线观看网站

As of 2021-07-11. See the latest version.

// ==UserScript==
// @name         db=>
// @namespace    http://tampermonkey.net/
// @version      0.00003
// @description  javdb添加跳转在线观看网站
// @author       misssion522
// @match        https://javdb.com/*
// @match        https://、、.jable.com/*
// @icon         https://www.google.com/s2/favicons?domain=javdb.com
// @license      MIT
// @connect jable.tv
// @connect javhhh.com
// @connect netflav.com
// @connect *
// @grant GM_xmlhttpRequest
// @require        https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js
// @resource mycss https://192.168.1.321
// ==/UserScript==

'use strict';

// document.querySelectorAll('img').forEach((item) => {
//   item.style.display = 'none';
// });

// 网站列表
let site = [
  { siteId: '0', hostname: 'Jable.tv', url: 'https://jable.tv/videos/(code)/', search: 'false', reg: /reg/ },
  { siteId: '1', hostname: 'Javhhh.com', url: 'https://javhhh.com/video/(code)', search: 'return200', reg: /<div class="text">獲取數據失敗<\/div>/ },
  {
    siteId: '2',
    hostname: 'Netflav.com',
    url: 'https://netflav.com/search?type=title&keyword=(code)',
    search: 'search',
    // reg: '<div class="grid_title">.?(code)',
    reg: /reg/,
  },
  // { siteId: '99', hostname: 'test', url: 'https://lkoipfdsanjkfhasnbqjzlqajfs.com/', search: 'search', reg: /reg/ },
];

let curLocation = location.pathname;
// tabs is-boxed
if (document.querySelector('.tabs.is-boxed')) {
  console.log('mainPage');
  // mainPage();
} else if (curLocation.includes('/v/' && ducoment.querySelector('h2'))) {
  console.log('vPage');
  vPage();
}

function mainPage() {
  let items = document.querySelectorAll('.grid-item.column>a');
  items.forEach((item) => {
    getScore(item.href);
  });
}

function vPage() {
  site.forEach((item) => {
    getWebsite(item);
  });
}

//获取分数,   不写了
function getScore(link) {
  // GM_xmlhttpRequest({
  //   method: 'GET',
  //   url: link,
  //   headers: {
  //     'Content-type': 'application/x-www-form-urlencoded',
  //   },
  //   onload: function (result) {
  //     console.dir(result.responseText);
  //   },
  // });
}

//传入网站,处理网站
function getWebsite(site) {
  let videoCode = document.querySelector('[data-clipboard-text]').attributes[2].value;
  let xhrResult = '';
  let siteUrl = site.url.replace('(code)', videoCode);
  let siteReg = site.reg;
  // let siteReg = new RegExp(site.reg.replace('(code)', videoCode), 'gim');

  const buttonG = document.createElement('a');
  document.querySelectorAll('.panel-block div.buttons')[1].appendChild(buttonG);
  buttonG.classList.add('button', 'is-info', 'is-outlined', 'button-g');
  buttonG.innerHTML = site.hostname;
  buttonG.setAttribute('target', '_blank');
  // buttonG.style.background = '#3298dc';
  // buttonG.style.color = 'white';
  buttonG.href = siteUrl;
  function setbuttonGColor(color) {
    buttonG.style.color = color;
    buttonG.style.borderColor = color;
  }

  // 获取xhr状态函数,立即执行
  (function xhr() {
    GM_xmlhttpRequest({
      method: 'GET',
      url: siteUrl,
      headers: {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
      },
      onload: function (result) {
        xhrResult = result.status;
        console.log(`----${site.hostname} onload,${xhrResult}`);
        // 默认search=’false‘,不用任何搜索,直接200 显示绿色
        // search=’return200’,用于实际网页是 404,返回result.status却为 200
        if (site.search == 'return200' && result.status == 200) {
          if (siteReg.test(result.responseText)) {
            xhrResult = 404;
          }
        }
        // search=‘search‘,用于在网站搜索,并返回搜索结果(视频地址)
        else if (site.search == 'search') {
          let newDocument = new DOMParser().parseFromString(result.responseText, 'text/html');
          if (newDocument.querySelectorAll('img[src="/static/assets/404.gif"]').length > 0) {
            xhrResult = 404;
          } else if (newDocument.querySelectorAll('.grid_title')[0].innerText.includes(videoCode) == false) {
            xhrResult = 404;
          } else {
            buttonG.href = `https://${site.hostname}${newDocument.querySelectorAll('.grid_cell>a')[0].pathname}${newDocument.querySelectorAll('.grid_cell>a')[0].search}`;
          }
        }
        xhrResult == 404 ? setbuttonGColor('red') : setbuttonGColor('green');
      },
      onerror: function (result) {
        // xhrResult = false;
        console.log(`----${site.hostname} onerror`, xhrResult);
        console.log(result);
        setbuttonGColor('red');
      },
    });
  })();
}