iwara 一键搜索

一键在mmdfans.net中搜索MMD

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==UserScript==
// @name         iwara 一键搜索
// @name:en      iwara one-click search
// @namespace    http://tampermonkey.net/
// @version      0.6
// @description  一键在mmdfans.net中搜索MMD
// @description:en  one-click search MMD in mmdfans.net
// @author       XiChan
// @match        *://www.iwara.tv/*
// @match        *://www.iwara.tv
// @icon         https://www.google.com/s2/favicons?sz=64&domain=iwara.tv
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
    'use strict';

    var addSearchButtonTask = null;

    function tryAddSearchButton() {
        console.log("iwara 一键搜索 启动");
        // Get element by class name is page-video__details
        // var videoDetails = document.getElementsByClassName("page-video__details")[0];
        // need wait for the element to be loaded
        if (addSearchButtonTask) {
            addSearchButtonTask.cancel();
        }

        addSearchButtonTask = new Promise((resolve, reject) => {
            (function wait() {
                var videoDetails = document.getElementsByClassName("page-video__details")[0];
                if (videoDetails) {
                    resolve(videoDetails);
                } else {
                    setTimeout(wait, 100);
                }
            })();
        }).then((videoDetails) => {
            // The first div in page-video__details is the title
            var videoTitle = videoDetails.getElementsByTagName("div")[0].innerText;

            // Create a new button, append it after the title
            var searchButton = document.createElement("button");
            searchButton.innerText = "在MMDFans搜索";
            searchButton.style = "margin-left: 10px; background-color: #4CAF50; border: none; color: white; padding: 5px 10px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin: 4px 2px; cursor: pointer;";
            videoDetails.appendChild(searchButton);

            // Click event, open link https://mmdfans.net/?query=title:{url_encoded_title}&order_by=time
            searchButton.onclick = function () {
                var url = "https://mmdfans.net/?query=title:" + encodeURIComponent(videoTitle) + "&order_by=time";
                window.open(url);
            }
        });
    }

    function maybeLoadSearchButton() {
        // check url is start with www.iwara.tv/video/
        if (window.location.href.startsWith("https://www.iwara.tv/video/") || window.location.href.startsWith("http://www.iwara.tv/video/")) {
            tryAddSearchButton();
        }
    }

    // Listening url change
    var oldUrl = "";
    setInterval(function () {
        if (oldUrl != window.location.href) {
            oldUrl = window.location.href;
            maybeLoadSearchButton();
        }
    }, 1000);

})();