BYRBT Subtitle Search Plus

自动填写搜索关键词,增加或修复一些网站的字幕搜索功能

// ==UserScript==
// @name         BYRBT Subtitle Search Plus
// @namespace    http://tampermonkey.net/
// @version      0.3.0
// @description  自动填写搜索关键词,增加或修复一些网站的字幕搜索功能
// @author       shadows
// @license      MIT License
// @copyright    Copyright (c) 2021 shadows
// @match        https://byr.pt/details.php?id=*
// @icon         https://byr.pt/favicon.ico
// @grant        none
// ==/UserScript==
"use strict";
function getName(type) {
    let title = document.querySelector('#share').textContent.trim();
    let fields = title.match(/\[[^\]]*\]/g);
    if (type == '电影') {
        return fields[0].slice(1, -1).trim();
    } else if (type == '剧集') {
        return fields[1].slice(1, -1).trim();
    } else if (type == '动漫') {
        return fields[2].slice(1, -1).trim();
    }
}

function mysearch(event) {
    let elem = event.target;
    let nameInput = elem.parentElement.querySelector('[data-keyword]');
    let keywordInput = document.getElementById('keyword');
    if (keywordInput.value.match(/^tt\d{7,8}$/g)) {
        keywordInput.value = nameInput.dataset.keyword;
    }
    nameInput.value = keywordInput.value;
}

document.querySelector('#zmzname').closest('td').style.display = 'none';
document.querySelector('#zmkname').parentNode.action = "https://zmk.pw/search";
let type = document.querySelector('#type').textContent.trim();
let keyword = getName(type);

let imdbTag = document.querySelector(".imdbRatingPlugin");
if (imdbTag) {
    document.querySelector('#keyword').value = imdbTag.dataset.title;
} else {
    document.querySelector('#keyword').value = keyword;
}

let zimuElement = document.querySelector('#keyword').closest('tr');
let template = document.createElement('td')
template.classList.add('embedded');
template.innerHTML = "<form method=\"get\" target=\"_blank\"><input type=\"hidden\"><input type=\"submit\"></form>";
let templateInputNode = template.querySelectorAll('input')
templateInputNode[0].dataset.keyword = keyword;

let assrtElement = template.cloneNode(true);
assrtElement.querySelector('form').action = 'https://assrt.net/sub/';
let inputNode = assrtElement.querySelectorAll('input');
inputNode[0].id = 'assrt';
inputNode[0].name = 'searchword';
inputNode[1].value = "搜索伪射手";
zimuElement.append(assrtElement);
inputNode[1].addEventListener('click',mysearch);

if (type == '动漫') {
    let skyeysnow = template.cloneNode(true);
    skyeysnow.querySelector('form').action = 'https://skyeysnow.com/forum.php';
    let inputNode = skyeysnow.querySelectorAll('input');
    inputNode[0].id = 'skyeysnow';
    inputNode[0].name = 'search';
    inputNode[1].value = "搜索天雪论坛";
    skyeysnow.querySelector('form').innerHTML += `<input type="hidden" name="mod" value="torrents"><input type="hidden" name="cat" value="16">`;
    zimuElement.append(skyeysnow);
    skyeysnow.querySelector('[type="submit"]').addEventListener('click',mysearch);

    let acgrip = template.cloneNode(true);
    acgrip.querySelector('form').action = 'https://bbs.acgrip.com/search.php';
    inputNode = acgrip.querySelectorAll('input');
    inputNode[0].id = 'acgrip';
    inputNode[0].name = 'srchtxt';
    inputNode[1].value = "搜索Anime字幕论坛";
    acgrip.querySelector('form').innerHTML += `<input type="hidden" name="mod" value="forum"><input type="hidden" name="searchsubmit" value="true">`;
    zimuElement.append(acgrip);
    acgrip.querySelector('[type="submit"]').addEventListener('click',mysearch);
}