JAV_ONLINE

将JavaDB在线播放替换为MissAV跳转播放

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==UserScript==
// @name        JAV_ONLINE
// @version     0.0.1
// @namespace   http://tampermonkey.net/
// @match       https://javdb.com/v/*
// @author      none
// @description 将JavaDB在线播放替换为MissAV跳转播放
// @license MIT
// @grant        GM_xmlhttpRequest
// @connect      missav.com
// ==/UserScript==
(function () {
    'use strict';
 
    let domain = document.location.hostname.split('.').slice(-2).join('.')
    console.log('<JAV_ONLINE> Detect domain: ' + domain)
 
    switch (domain) {
        case 'javdb.com':
            let plate = $('.first-block .value').text();
            search_movie(plate);
            break
        default:
            break
    }
})();
 
function gmFetch(url) {
    return new Promise((resolve, reject) => {
        GM_xmlhttpRequest({
            method: 'GET',
            url: url,
            headers: {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36',
                'Referer': 'https://missav.ws'
            },
            onload: response => resolve(response.responseText),
            onerror: error => reject(error)
        });
    });
}
 
async function search_movie(plate) {
    console.log('Searching for plate:', plate);
    try {
        const searchUrl = `https://missav.ws/en/search/${plate}`;
        const html = await gmFetch(searchUrl);
 
        const parser = new DOMParser();
        const doc = parser.parseFromString(html, 'text/html');
        const result = doc.querySelector('.thumbnail div:first-child a:first-child');
 
        let playAlt = '暂无资源';
        let playUrl = '#';
        if (result) {
            playUrl = result.href;
            playAlt = result.getAttribute('alt').includes('uncensored') ? '跳转播放-无码' : '跳转播放';
            console.log(`playUrl: ${playUrl}`);
        } else {
            console.log('No results found for:', plate);
        }
 
        let $cover = $('.column-video-cover > a');
        let $pb = $cover.find('.play-button');
        if ($pb.length === 0) {
            $pb = $(`<div class="play-button">
                <span class="icon"><img src="/packs/media/images/btn-play-b414746c.svg"></span>
                <span class="text">${playAlt}</span>
              </div>`);
            $cover.append($pb);
            $cover.addClass('cover-container');
            $cover.removeAttr('data-fancybox');
 
        } else {
            $pb.find('.text').text(playAlt);
        }
        $cover.attr('href', playUrl);
        $cover.attr('target', '_blank');
    } catch (error) {
        console.error('Error searching movie:', error);
        return null;
    }
}