空降失效,似乎是时间格式问题,该善后的代码

BUG反馈 · 65 次浏览
wanderer99176 创建于 2025-02-24 20:26


function formatTime(seconds) {
    let minutes = Math.floor(seconds / 60);
    let remainingSeconds = seconds % 60;

    // 格式化分钟为两位数
    let formattedMinutes = String(minutes).padStart(2, '0');
    // 格式化秒数保留0位小数
    let formattedSeconds = remainingSeconds.toFixed(0).padStart(0, '0');

    return `${formattedMinutes}:${formattedSeconds}`;
}

// 获取当前标签页的网址
var currentUrl = window.location.href;

// 提取 B 站视频 BV 号部分
var pattern = /http.*video\/BV[^\/]+/;
var match = currentUrl.match(pattern);
var extractedPart = "";

var bIsYoutube = false;

if (match) {
    extractedPart = match[0];
} else {
    // 如果是 YouTube 视频
    if (currentUrl.includes("youtube")) {
        bIsYoutube = true;
        var patternVid = /http.*watch\?v=([^\/?&]+)/;
        var vidMatch = currentUrl.match(patternVid);
        if (vidMatch) {
            extractedPart = "https://youtu.be/" + vidMatch[1];
        } else {
            console.log("未找到匹配的 YouTube 视频 ID");
        }
    } else {
        console.log("未找到匹配的 B 站视频链接");
    }
}

// 获取 video 元素
var video = document.querySelector('video');

// 获取当前播放时间(秒)
var currentTime = video.currentTime.toFixed(6);  // 保留6位小数
var formattedTime = formatTime(video.currentTime); // 格式化为 mm:ss.xx

// 解析 URL 参数,获取页码 p
var urlParams = new URLSearchParams(window.location.search);
var pParam = urlParams.get('p') ? `p=${urlParams.get('p')}&` : ""; // 如果有 p 参数,则格式化 `p=3&`

// 构造 B 站带时间戳的链接
var jumpUrl = `${extractedPart}/?${pParam}t=${currentTime}#t=${formattedTime}`;

// 处理 YouTube 特殊情况
if (bIsYoutube) {
    var currentTimeSec = video.currentTime.toFixed(0); // YouTube 只支持整数秒
    jumpUrl = `${extractedPart}?t=${currentTimeSec}`;
}

// 组织数据并发送
var data = {
    "time": currentTime,
    "timecode": formattedTime,
    "url": jumpUrl
};

sendReplyToQuicker(true, "ok", data, qk_msg_serial);


回复内容
暂无回复
回复主贴