计算B站分P视频剩余时长的脚本

        本人经常在B站上学习,但又不知道自己看到的视频还有多久看完,于是自己在油猴上写了一个简单的脚本计算时间还有多长时间。已当前视频位置为基准。全部为js代码。

        下图为展示效果,本人感觉还不错。

 代码如下:

(function() {
    setTimeout(function(){
        let html = '<span><span class="item-text sumtime"></span></span>';
        $(".video-title").after(html);
        html = '<span><span class="item-text lefttime"></span></span>';
        $("span.copyright").after(html);
        calc();
    }, 1000)



    $("ul.list-box li").on("click", function(){
        calc();

    })


})();


function calc(){
    //获取当前播放视频位置(第几条)和总视频数
    const page = $(".cur-page").text();
    const pageNum = page.split("/");
    const curPageNum = parseInt(pageNum[0].substring(1));
    let minList = [];
    let secList = [];
    $("div.duration").each(function(){
        const time = $(this).text();
        const list = time.split(":");
        minList.push(list[0]);
        secList.push(list[1]);
    })

    //计算视频总时长
    const sumTime = calcLeftTime(minList, secList)

    $("span.sumtime").html("视频总时长:" + sumTime);

    //计算视频剩余时间
    const subminList = minList.slice(curPageNum - 1);
    const subsecList = minList.slice(curPageNum - 1);
    const leftTime = calcLeftTime(subminList, subsecList);
    $("span.lefttime").html("视频剩余时长:" + leftTime);
}


//给定时间数组和秒数组,数组长度必须相等,计算剩余时间
function calcLeftTime(minList, secList){
    if(minList.length != secList.length){
        return "计算失败";
    }else{
        let min = listsum(minList);
        let sec = listsum(secList);
        let m = sec / 60;

        let s = sec % 60;

        min += parseInt(m);

        let h = parseInt(min/60);
        m = min%60;

        return h+"小时"+m+"分钟"+s+"秒";
    }

}


function listsum(list){
    let sum = 0;
    for(let i =0;i<list.length;i++ ){
        sum += parseInt(list[i])
    }
    return sum;
}

        也可以在GreasyFork上直接搜索 “计算B站分P视频在自己所看P数的视频剩余时长脚本” 下载脚本。

        主要学习java,对js和jquery不熟悉。纯粹是学习时无聊随便写的代码,供自己学习娱乐而已。另外代码也不再不断优化中。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值