在某度网盘中添加复制字幕按钮,并实现复制字幕和导出为doc的功能,按钮名字随操作状态变化(比如没有下载之前,按钮名字为复制字幕,复制后,按钮名字为字幕已复制)
目前為
// ==UserScript==
// @name 为网盘添加复制字幕按钮+导出doc按钮(这下百度网盘客户端的导出到文档的vip功能有了)
// @namespace your-namespace
// @version 1.2
// @description 在某度网盘中添加复制字幕按钮,并实现复制字幕和导出为doc的功能,按钮名字随操作状态变化(比如没有下载之前,按钮名字为复制字幕,复制后,按钮名字为字幕已复制)
// @license Yolanda Morgan
// @author Your Name
// @match https://pan.baidu.com/*
// @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 = 'subtitle.doc';
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'); // 将字幕数组以空行连接起来并返回
}
// 添加复制字幕按钮和导出为doc按钮
createCopySubtitleButton();
createExportToDocButton();
})();