Greasy Fork

Auto Select Favourit Hoster

Automatically opens your Stream on your favourite Hoster by order.

当前为 2022-09-25 提交的版本,查看 最新版本

// ==UserScript==
// @name         Auto Select Favourit Hoster
// @namespace    https://greasyfork.org/users/928242
// @version      1.0
// @description  Automatically opens your Stream on your favourite Hoster by order.
// @author       Kamikaze (https://github.com/Kamiikaze)
// @match        https://aniworld.to/anime/stream/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=aniworld.to
// @match        https://s.to/serie/stream/*
// @match        https://serien.sx/serie/stream/*
// @match        https://anicloud.io/anime/stream/*
// @match        https://aniworld.to/anime/stream/*
// @grant        none
// @license      MIT
// ==/UserScript==

// Example Hosters:
// ['VOE', 'Doodstream', 'Streamtape', 'Vidoza']

const hosterOrder = ['Vidoza', 'VOE', "Streamtape"];
const availableHosters = [];

(() => {

    getHosterList()
    console.log(availableHosters)
    const hoster = findFavHosterByOrder()

    if (!hoster) return

    const iframe = getVideoIframe()

    if (!iframe) return

    iframe.src = "/redirect/" + hoster.id

})();



function findFavHosterByOrder() {
    let hoster = false

    for (let favHost of hosterOrder) {
        hoster = availableHosters.find( (avHost) => avHost.name === favHost )

        if (hoster) break;

    }
    return hoster
}



function getHosterList() {
    const hosterListEl = document.querySelectorAll(".hosterSiteVideo > ul > li")

    for (let i = 0; i < hosterListEl.length; i++) {
        const host = hosterListEl[i]

        if (!isAvailable(host)) return

        availableHosters.push({
            name: host.getElementsByTagName("h4")[0].innerText,
            id: host.getAttribute("data-link-id"),
        })
    }
}


function isAvailable(host) {
    return host.style.display !== "none"
}

function getVideoIframe() {
    return document.querySelector(".inSiteWebStream iframe")
}