javbus 快捷键

使用说明:下载封面:alt+s 复制番号:alt+c

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         javbus 快捷键
// @namespace    http://tampermonkey.net/
// @version      0.0.1
// @description  使用说明:下载封面:alt+s 复制番号:alt+c
// @author       You
// @match        https://www.javbus.com/*
// @match        https://www.buscdn.shop/*
// @match        https://www.javsee.ink/*
// @icon         https://www.javbus.com/favicon.ico
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
  'use strict';

  function showInfo(textContent, ms = 1200) {
    // 创建一个新的div元素,用于显示消息
    let messageDiv = document.createElement('div');
    messageDiv.style.position = 'fixed'; // 设置位置固定
    messageDiv.style.top = '10px'; // 从页面顶部距离10px开始
    messageDiv.style.right = '10px'; // 从页面右侧距离10px开始
    messageDiv.style.padding = '10px';
    messageDiv.style.backgroundColor = '#333';
    messageDiv.style.color = '#fff';
    messageDiv.style.borderRadius = '5px';
    messageDiv.style.zIndex = '9999'; // 确保消息显示在其他元素之上
    messageDiv.textContent = textContent; // 显示的消息内容

    // 将新创建的div添加到body中
    document.body.appendChild(messageDiv);

    setTimeout(() => {
      // 删除消息
      document.body.removeChild(messageDiv);
    }, ms);
  }

  function getAvCode() {
    return document.querySelector(
      'body > div.container > div.row.movie > div.info > p:nth-child(1) span:nth-child(2)'
    ).innerText;
  }

  async function copyAvCode() {
    try {
      const avCode = getAvCode();
      await navigator.clipboard.writeText(avCode);
      showInfo(`已复制 ${avCode}`);
    } catch (error) {
      showInfo(error);
    }
  }

  async function downloadCover() {
    const avCode = getAvCode();
    const imgElement = document.querySelector(
      'body > div.container > div.row.movie img'
    );
    if (!imgElement) {
      showInfo('没有找到匹配的img标签');
      return;
    }
    const imageUrl = imgElement.src;
    const link = document.createElement('a');
    link.href = imageUrl;
    link.download = avCode;
    showInfo(`封面开始下载 ${avCode}`);
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
  }

  document.addEventListener('keydown', function (event) {
    if (event.altKey && (event.key === 'c' || event.key === 'C')) {
      copyAvCode();
    }
  });

  document.addEventListener('keydown', function (event) {
    if (event.altKey && (event.key === 's' || event.key === 'S')) {
      downloadCover();
    }
  });
})();