Count Time

Count How much time would you pay

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name          Count Time
// @description   Count How much time would you pay
// @include       https://www.bilibili.com/video/*
// @version       0.0.1
// @author        sEGuoer
// @namespace https://greasyfork.org/users/1147321
// ==/UserScript==
let control = "start";
let controlInterval
window.addEventListener("keyup",function (e) {
    e.preventDefault();
    if (e.keyCode === 17){
        if (control === "start"){
            f();
            control = "stop"
            console.log("start")
        }else if(control === "stop"){
            clearInterval(controlInterval)
            control = "start"
            console.log("stop")
        }
    }
})


function f(){
    if (!document.querySelector(".video-episode-card__info-duration")) {
        if (!document.querySelector(".router-link-active .clickitem .duration")) {
        } else {
            heji(".router-link-active .duration", ".link-content img", ".bpx-player-ctrl-time-label .bpx-player-ctrl-time-current", "viewbox_report", "#multi_page .head-con .head-left")
        }
    } else {
        heji(".video-episode-card__info-duration", ".video-episode-card__info-title .cur-play-icon", ".bpx-player-ctrl-time-label .bpx-player-ctrl-time-current", "viewbox_report", ".first-line-left .cur-page")
    }
}


function heji(a, b, c, d, e) {
    controlInterval = setInterval(function () {
        hejiMethod(a, b, c, d, e)
    }, 2000)
}

hejiMethod(".video-episode-card__info-title .cur-play-icon", ".video-episode-card__info-title .cur-play-icon", ".bpx-player-ctrl-time-label .bpx-player-ctrl-time-current", "viewbox_report", ".first-line-left .cur-page")

function deleteCurrentTime(arg) {
    let deleteCurrentTime = 0
    if (arg.length === 3) {
        deleteCurrentTime = parseInt(arg[0]) * 3600 + parseInt(arg[1]) * 60 + parseInt(arg[2])
    } else if (arg.length === 2) {
        deleteCurrentTime = parseInt(arg[0]) * 60 + parseInt(arg[1])
    } else if (arg.length === 1) {
        deleteCurrentTime = parseInt(arg[0])
    }
    console.log(deleteCurrentTime)
    return deleteCurrentTime;
}

function addUseTime(String, Timename, addContent) {
    let element = document.createElement("div");
    element.innerText = String;
    element.className = Timename;
    element.style = "margin-right: 8px";
    console.log("div." + Timename)
    if (!document.querySelector("div." + Timename)) {
        addContent.appendChild(element)
    } else {
        document.querySelector("div." + Timename).innerText = String;
    }
}

function hejiMethod(act, bond, cat, dog, email) {
    var allTime = document.querySelectorAll(act)
    let time = 0
    let needtime = 0
    let selectWhichIsLooking = 0
    allTime.forEach(function (element) {
        let timeGroup = element.textContent.split(':')
        if (selectWhichIsLooking === 1) {
            if (timeGroup.length === 3) {
                let elementTime = parseInt(timeGroup[0]) * 3600 + parseInt(timeGroup[1]) * 60 + parseInt(timeGroup[2])
                time = time + elementTime
                needtime = needtime + elementTime

            } else if (timeGroup.length === 2) {
                let elementTime = parseInt(timeGroup[0]) * 60 + parseInt(timeGroup[1])
                time = time + elementTime
                needtime = needtime + elementTime
            } else if (timeGroup.length === 1) {
                let elementTime = parseInt(timeGroup[0])
                time = time + elementTime
                needtime = needtime + elementTime

            }
        } else if (selectWhichIsLooking === 0) {
            var a = element.parentElement.querySelector(bond)
            console.log(a.getAttribute("style"))
            if (a.getAttribute("style") === "display:none;" || a.getAttribute("style") === "display: none;") {
                if (timeGroup.length === 3) {
                    let elementTime = parseInt(timeGroup[0]) * 3600 + parseInt(timeGroup[1]) * 60 + parseInt(timeGroup[2])
                    time = time + elementTime

                } else if (timeGroup.length === 2) {
                    let elementTime = parseInt(timeGroup[0]) * 60 + parseInt(timeGroup[1])

                    time = time + elementTime
                } else if (timeGroup.length === 1) {
                    let elementTime = parseInt(timeGroup[0])
                    time = time + elementTime
                }
            } else {
                var b = document.querySelector(cat)
                let currentTimeGroup = b.textContent.split(':')
                selectWhichIsLooking = 1
                if (timeGroup.length === 3) {
                    let elementTime = parseInt(timeGroup[0]) * 3600 + parseInt(timeGroup[1]) * 60 + parseInt(timeGroup[2])
                    let deleteTime = deleteCurrentTime(currentTimeGroup)
                    time = time + elementTime
                    needtime = needtime + elementTime - deleteTime

                } else if (timeGroup.length === 2) {
                    let elementTime = parseInt(timeGroup[0]) * 60 + parseInt(timeGroup[1])
                    let deleteTime = deleteCurrentTime(currentTimeGroup)
                    time = time + elementTime
                    needtime = needtime + elementTime - deleteTime
                } else if (timeGroup.length === 1) {
                    let elementTime = parseInt(timeGroup[0])
                    let deleteTime = deleteCurrentTime(currentTimeGroup)
                    time = time + elementTime
                    needtime = needtime + elementTime - deleteTime
                }
            }
        }
    })
    console.log(time)
    let hour1 = parseInt(time / 3600)
    console.log(hour1)

    let minute1 = parseInt(time % 3600 / 60)
    console.log(minute1)

    let second1 = time % 3600 % 60
    console.log(second1)
    let addContent1 = document.getElementById(dog)
    addUseTime("看完合集用时" + hour1 + ":" + minute1 + ":" + second1, "sumTimeWillBeUse", addContent1)
    console.log(needtime)
    let hour2 = parseInt(needtime / 3600)
    console.log(hour2)

    let minute2 = parseInt(needtime % 3600 / 60)
    console.log(minute2)

    let second2 = needtime % 3600 % 60
    console.log(second2)
    let addContent2 = document.querySelector(email)
    addUseTime("看完剩余需" + hour2 + ":" + minute2 + ":" + second2, "remainTime", addContent2)
}