在某度网盘中添加复制字幕按钮,并实现复制字幕和导出为doc的功能,按钮名字随操作状态变化(比如没有下载之前,按钮名字为复制字幕,复制后,按钮名字为字幕已复制)
目前為
// ==UserScript==
// @name 🔥【就是爽】某度网盘添加复制字幕按钮+导出doc按钮(360和chrome均已测试)
// @namespace your-namespace
// @version 2.1
// @description 在某度网盘中添加复制字幕按钮,并实现复制字幕和导出为doc的功能,按钮名字随操作状态变化(比如没有下载之前,按钮名字为复制字幕,复制后,按钮名字为字幕已复制)
// @license Yolanda Morgan
// @author Your Name
// @match https://pan.baidu.com/*
// @exclude *://pan.baidu.com/disk/*
// @grant GM_setClipboard
// @require https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js
// ==/UserScript==
(function() {
'use strict';
// 创建复制字幕按钮
function createCopySubtitleButton() {
var btn = document.createElement('button');
btn.id = 'copySubtitleBtn';
btn.innerText = '复制字幕';
btn.style.position = 'fixed';
btn.style.left = '20px';
btn.style.bottom = '20px';
btn.style.zIndex = '9999';
btn.style.padding = '10px';
btn.style.backgroundColor = '#fff';
btn.style.border = '1px solid #ccc';
btn.style.cursor = 'pointer';
// 复制字幕按钮点击事件处理函数
btn.addEventListener('click', function() {
var subtitle = getSubtitle(); // 获取字幕内容
if (subtitle) {
GM_setClipboard(subtitle); // 复制字幕到剪贴板
btn.innerText = '字幕已复制';
} else {
btn.innerText = '无法获取字幕';
}
});
document.body.appendChild(btn);
}
// 创建导出为doc按钮
function createExportToDocButton() {
var btn = document.createElement('button');
btn.id = 'exportToDocBtn';
btn.innerText = '导出为doc';
btn.style.position = 'fixed';
btn.style.left = '140px';
btn.style.bottom = '20px';
btn.style.zIndex = '9999';
btn.style.padding = '10px';
btn.style.backgroundColor = '#fff';
btn.style.border = '1px solid #ccc';
btn.style.cursor = 'pointer';
// 导出为doc按钮点击事件处理函数
btn.addEventListener('click', function() {
var subtitle = getSubtitle(); // 获取字幕内容
if (subtitle) {
var filename = getDefaultFilename();
var blob = new Blob([subtitle], {type: 'text/plain;charset=utf-8'});
saveAs(blob, filename); // 使用FileSaver.js保存文件
btn.innerText = '字幕已导出为doc文件';
} else {
btn.innerText = '无法获取字幕';
}
});
document.body.appendChild(btn);
}
// 获取字幕内容的逻辑处理代码
function getSubtitle() {
var subtitleElements = document.querySelectorAll('.ai-draft__wrap-list p.ai-draft__p-paragraph'); // 获取所有段落元素
var subtitleText = [];
for (var i = 0; i < subtitleElements.length; i++) {
subtitleText.push(subtitleElements[i].innerText.trim()); // 将每个段落的文本添加到字幕数组中
}
return subtitleText.join('\n\n'); // 将字幕数组以空行连接起来并返回
}
// 获取默认文件名
function getDefaultFilename() {
var videoNameElement = document.querySelector('div.vp-video-page-card span.is-playing.vp-video-page-card__video-name');
if (videoNameElement) {
var originalFilename = videoNameElement.innerText.trim();
var newFilename = originalFilename.replace(/\.[^/.]+$/, '') + '.doc'; // 去掉原始文件名的后缀,并添加新的后缀名
return newFilename;
}
return 'subtitle.doc';
}
// 添加复制字幕按钮和导出为doc按钮
createCopySubtitleButton();
createExportToDocButton();
})();