Greasy Fork is available in English.
原脚本失效,原作者大大还未更新脚本,但原脚本在老地址可以正常运行,于是用此脚本进行暂时的维护。
当前为
// ==UserScript==
// @name 配合“百度网盘视频播放尊享 VIP | 解锁视频倍数 | 解锁全部清晰度”(原作者为:Cangshi)使用
// @namespace http://tampermonkey.net/
// @version 0.1.2
// @description 原脚本失效,原作者大大还未更新脚本,但原脚本在老地址可以正常运行,于是用此脚本进行暂时的维护。
// @author Yangzh12
// @include https://pan.baidu.com/play/video*
// @include https://pan.baidu.com/pfile/*
// @include https://pan.baidu.com/disk/main*
// @icon https://www.google.com/s2/favicons?sz=64&domain=baidu.com
// @grant none
// ==/UserScript==
var currentUrl = window.location.href;
// 替换URL中的pfile为play/video#
var newUrl = currentUrl.replace("pfile", "play/video#");
// 跳转到替换后的页面
window.location.href = newUrl;
// 创建跳转按钮元素,设置属性和样式
var button = document.createElement("button");
button.style.width = "3cm";
button.style.height = "3cm";
button.style.backgroundColor = "red";
button.style.position = "absolute";
button.style.left = "2cm";
button.style.top = "2cm";
button.innerText = "点击此跳转到超清画质,如果第一次使用本脚本,请自行点击创建组群,否则无法跳转";
// 添加点击事件
button.onclick = function() {
// 执行代码
document.querySelector("#video-toolbar > div.video-toolbar-buttonbox > a:nth-child(2) > span > span").click();
setTimeout(function() {
document.querySelector("#dialog1 > div.dialog-body > div > div.share-file-body__nav > div.share-file-body__tabs > div.share-file-body__tabs-item.is-friend").click();
setTimeout(function() {
document.querySelector("#dialog1 > div.dialog-body > div > div.share-file-body__content > div.share-file-body__friend > div > div.share-file__friend-body > div.share-file__friend-list-container.has-scroll > div.share-file__friend-list-wrapper.has-scroll > div.share-file__friend-list.is-group > div.share-file__friend-list-title").click()
setTimeout(function() {
// 选择器
const SELECTOR = '#dialog1 > div.dialog-body > div > div.share-file-body__content > div.share-file-body__friend > div > div.share-file__friend-body > div.share-file__friend-list-container.has-scroll > div.share-file__friend-list-wrapper.has-scroll > div.share-file__friend-list.is-group.is-expand > div.share-file__friend-list-body > div > div';
// 获取同级元素的集合
const siblingsCollection = document.querySelectorAll(SELECTOR);
// 创建包含数据的对象数组
const siblingsArray = Array.from(siblingsCollection).map((item) => ({
name: item.querySelector('.share-file__friend-list-item-name').textContent,
element: item,
}));
const container = document.createElement('div');
container.style.position = 'fixed';
container.style.top = '50%';
container.style.left = '0';
container.style.transform = 'translate(0, -50%)';
container.style.padding = '20px';
container.style.background = 'white';
container.style.zIndex = '999';
container.style.borderRadius = '5px';
container.style.boxShadow = '0 0 10px rgba(0, 0, 0, 0.3)';
document.body.appendChild(container);
// 创建一个标题
const title = document.createElement('h2');
title.textContent = '你有三秒的时间选择,否则默认第一个或上一个组群';
container.appendChild(title);
// 创建项目列表和相应的复选框
const list = document.createElement('ul');
siblingsArray.forEach(({ name }) => {
const listItem = document.createElement('li');
const checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.name = name;
listItem.appendChild(checkbox);
listItem.appendChild(document.createTextNode(name));
list.appendChild(listItem);
});
container.appendChild(list);
// 监听选择
const checkboxes = list.querySelectorAll('input[type="checkbox"]');
let timerId;
checkboxes.forEach((checkbox, index) => {
checkbox.addEventListener('change', () => {
clearTimeout(timerId); // 清除计时器
if (checkbox.checked) {
const selectedItem = siblingsArray.find(
({ name }) => checkbox.name === name
).element;
selectedItem.click();
// 保存选择到本地存储中
localStorage.setItem('lastSelected', checkbox.name);
}
});
});
// 3秒内不选择自动点击获取到的第一个元素或上一次选择的元素
timerId = setTimeout(() => {
let isAnyChecked = false;
checkboxes.forEach(checkbox => {
if (checkbox.checked) {
isAnyChecked = true;
}
});
if (!isAnyChecked) {
const lastSelectedName = localStorage.getItem('lastSelected');
const lastSelectedItem = siblingsArray.find(
({ name }) => name === lastSelectedName
);
if (lastSelectedItem) {
lastSelectedItem.element.click();
} else {
const firstItem = siblingsArray[0].element;
firstItem.click();
}
}
}, 3000);
setTimeout(function() {
document.querySelector("#dialog1 > div.dialog-body > div > div.share-file-body__content > div.share-file-body__friend > div > div.share-file__friend-actions > button > span").click()
setTimeout(function() {
document.querySelector("body > div.module-yun-tip > div > span.tip-msg > a").click()
}, 1000);
}, 5000);
}, 500);
}, 1000);
}, 1000);
};
// 添加按钮元素到页面中
document.body.appendChild(button);
// 添加新的按钮元素到页面中
var currentUrl = window.location.href;
if (currentUrl == "https://pan.baidu.com/disk/main#/im/session?from=mbox") {
// 在距离页面左上角2cm的位置添加一个长为3厘米,宽为2厘米的红色的元素按钮,按钮名字为“正在加载中,如果第一次使用本脚本,请自行点击创建组群”
var element = document.createElement("button");
element.style.width = "3cm";
element.style.height = "2cm";
element.style.backgroundColor = "red";
element.innerHTML = "正在加载中";
element.style.position = "absolute";
element.style.top = "8cm";
element.style.left = "4cm";
document.body.appendChild(element);
}
// 定义一个检查元素是否存在的函数
function checkElement() {
var element = document.querySelector("body > div.nd-main-layout > div.nd-main-layout__wrapper > div.nd-main-layout__body > div > div.im-contain > div.im-contain__left > div > div.im-l-contain > div.im-l-contain__content > div > div > div > div:nth-child(1) > div:nth-child(2) > div > div.im-list-card__content > div > div.im-list-card__cov--top")
if (element) {
//获取需要点击的按钮元素
var button = document.getElementById("myButton");
setTimeout(function() {
element.click();
}, 1000); // 如果元素出现,则延迟1秒钟后执行点击事件
clearInterval(intervalId); // 如果元素出现,则清除定时器
}
}
// 设置定时器每隔一段时间检查一次元素是否存在
var intervalId = setInterval(checkElement, 1000);
setTimeout(function(){
document.querySelector("body > div.nd-main-layout > div.nd-main-layout__wrapper > div.nd-main-layout__body > div > div.im-contain > div.im-contain__right > div > div > div > span > i").click()
}, 8000);
setTimeout(function(){
document.querySelector("body > div.nd-main-layout > div.nd-main-layout__wrapper > div.nd-main-layout__body > div > div.u-drawer__wrapper.is-doc > div > div > section > div.im-doclib > div.im-doc-lib > div.im-pan-list.im-pan-list-loading > div > div > div.im-pan-table__body.mouse-choose-list > table > tbody > tr:nth-child(1) > td:nth-child(2) > div > div > a").click()
}, 9000);