Flash Collector Script

Flash Collector 用户脚本,用于解除 4399.com 的源站播放 Referer 限制、增加源站播放标题

当前为 2022-05-16 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        Flash Collector Script
// @namespace   Flash Collector Scripts
// @match       *://*.4399.com/*
// @match       *://*.7k7k.com/*
// @grant       none
// @license MPL-2.0
// @version     1.1
// @author      Cnotech
// @description Flash Collector 用户脚本,用于解除 4399.com 的源站播放 Referer 限制、增加源站播放标题
// ==/UserScript==

function query(key) {
    let m = window.location.href.match(new RegExp(`[?|&]${key}=[^&]*`))

    if (m == null) return null
    else return m[0].split("=")[1]
}

function jump(url) {
    console.log(`Jump to ${url}`)
    document.location.href = url
}

function setTitle() {
    let t = query("title")
    if (t != null) {
        const title = decodeURI(t)
        let titleTags = document.getElementsByTagName('title')
        if (titleTags.length === 0) {
            let tag = document.createElement("title")
            tag.innerText = title
            document.getElementsByTagName('body')[0].appendChild(tag)
        } else {
            titleTags[0].innerText = title
        }
        document.title = title
    }
}

function com4399() {
    //读取hash
    const hash = document.location.hash

    //匹配标记
    let m = hash.match(/#flash-collector-\d/)
    if (m == null) return
    let step = Number(m[0].slice(-1))

    //状态机
    const cur = document.location.href.split("#")[0]
    switch (step) {
        case 0:
            //跳转到 4399 首页
            jump(`http://www.4399.com/#flash-collector-1?next=${cur}&title=${query("title")}`)
            break
        case 1:
            //跳回真实页面
            let n = query("next")
            if (n) jump(n + `#flash-collector-2?title=${query("title")}`)
            break
        case 2:
            //配置标题
            setTitle()
    }
}

function com7k7k() {
    //配置标题
    setTitle()
}

function main() {
    const url = window.location.href
    if (url.indexOf("4399.com") > -1) {
        com4399()
    } else if (url.indexOf("7k7k.com") > -1) {
        com7k7k()
    }
}

main()