Greasy Fork

Greasy Fork is available in English.

蓝奏云自动点击下载

自动点击蓝奏云页面中的下载按钮,实现自动下载功能

目前为 2024-03-09 提交的版本,查看 最新版本

// ==UserScript==
// @name         蓝奏云自动点击下载
// @version      2.0
// @description  自动点击蓝奏云页面中的下载按钮,实现自动下载功能
// @author       ChatGPT
// @include      *.lanosso.com/*
// @include      *.lanzn.com/*
// @include      *.lanzog.com/*
// @include      *.lanpw.com/*
// @include      *.lanpv.com/*
// @include      *.lanzv.com/*
// @include      *://*.lanz*.com/*
// @include      *://lanz*.com/*
// @run-at      document-end
// @grant        none
// @namespace http://greasyfork.icu/users/452911
// ==/UserScript==

// 找到符合选择器的元素
const element = document.querySelector("[href='javascript:filego();']");

// 如果找到了元素,则触发 click 事件
if (element) {
    element.click();
} else {
    console.log('未找到符合选择器的元素');
}

// 选择要监视的目标元素
const targetNode = document.body;

// 配置观察器的选项(监视子节点变动)
const config = { childList: true, subtree: true };

// 创建一个观察器实例并指定回调函数
const observer = new MutationObserver(function(mutationsList) {
    for(const mutation of mutationsList) {
        if (mutation.type === 'childList') {
            mutation.addedNodes.forEach(node => {
                if (node.tagName && node.tagName.toLowerCase() === 'a') {
                    // 查找具有 onclick='m_load();' 属性的父元素,并在该父元素中查找子元素 <a> 进行点击
document.querySelector("[onclick='m_load();'] > a").click();
                }
            });
        }
    }
});

// 通过观察器实例与目标节点绑定
observer.observe(targetNode, config);

function extractAndNavigateURL() {
  // 获取整个页面的 HTML 源码,包括 script 标签中的内容
  var htmlSource = document.documentElement.innerHTML;

  // 使用正则表达式匹配并提取 vkjxld 和 hyggid 变量的值
  var vkjxldMatch = htmlSource.match(/var vkjxld\s*=\s*['"]([^'"]+)['"];/);
  var hyggidMatch = htmlSource.match(/var hyggid\s*=\s*['"]([^'"]+)['"];/);

  // 确保匹配并提取成功
  if (vkjxldMatch && hyggidMatch) {
    // 分别获取匹配到的值
    var vkjxldValue = vkjxldMatch[1];
    var hyggidValue = hyggidMatch[1];

    // 拼接得到完整 URL
    var completeURL = vkjxldValue + hyggidValue;

    // 在当前标签页打开拼接好的 URL
    window.location.href = completeURL;
  } else {
    // 如果没有匹配到,抛出错误提示
    console.error('未能找到 vkjxld 或 hyggid 变量');
  }
}

extractAndNavigateURL();

(function() {
  // 获取整个页面的 HTML 源码,包括 script 标签中的内容
  var htmlSource = document.documentElement.innerHTML;

  // 使用正则表达式匹配并提取 link 变量的值
  var linkMatch = htmlSource.match(/var link\s*=\s*['"]([^'"]+)['"];/);

  if (linkMatch) {
    // 获取当前页面的域名,包括协议部分
    var currentDomain = window.location.origin;

    // 获取匹配到的 link 变量的值
    var linkValue = linkMatch[1];

    // 拼接当前域名和 link 变量的值
    var completeURL = currentDomain + '/' + linkValue;

    // 在当前标签页打开拼接好的 URL
    window.location.href = completeURL;
  } else {
    // 如果没有匹配到 link 变量,抛出一个错误提示
    console.error('未能找到变量 link');
  }
})();