您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add a direct download button below each thumbnails
当前为
- // ==UserScript==
- // @name Bunkrr DL Button
- // @version 1.3
- // @description Add a direct download button below each thumbnails
- // @match https://bunkrr.ru/a/*
- // @namespace bunkrr
- // @license MIT
- // @grant GM_download
- // ==/UserScript==
- const extensions = [
- "mp4",
- "jpg",
- "png",
- "jpeg",
- "zip",
- "rar",
- "webp",
- "gif",
- "mp3",
- "mkv",
- "avi",
- "mov",
- "wmv",
- "flv",
- ];
- const extensionsSelector = extensions
- .map((ext) => `a[href$='.${ext}']`)
- .join(", ");
- (async () => {
- "use strict";
- const mediaLinks = [...document.querySelectorAll(".grid-images_box-link")];
- const links = mediaLinks.map((mediaLink) => {
- const relativeLink = mediaLink.getAttribute("href");
- return window.location.origin + relativeLink;
- });
- const medias = document.querySelectorAll(".grid-images > *");
- await Promise.all(
- links.map(async (link, i) => {
- const response = await fetch(link);
- const html = await response.text();
- const parser = new DOMParser();
- const doc = parser.parseFromString(html, "text/html");
- const ddlLink = doc
- .querySelector(extensionsSelector)
- .getAttribute("href");
- const media = medias[i];
- const mediaStyle = {
- display: "flex",
- flexDirection: "column",
- border: "none",
- padding: "0",
- };
- Object.assign(media.style, mediaStyle);
- const mediaChildren = media.querySelectorAll(":scope > *");
- mediaChildren[mediaChildren.length - 1].style.bottom = "0";
- const newMediaBox = document.createElement("div");
- const newMediaBoxStyle = {
- position: "relative",
- padding: "0.625rem",
- paddingBottom: "0",
- border: "solid #ffd369 2px",
- borderBottom: "none",
- };
- Object.assign(newMediaBox.style, newMediaBoxStyle);
- newMediaBox.append(...mediaChildren);
- const dlBox = document.createElement("a");
- dlBox.setAttribute("href", ddlLink);
- dlBox.textContent = "Download";
- dlBoxEventListener(dlBox);
- const dlBoxStyle = {
- border: "solid #ffd369 2px",
- borderRadius: "0px 0px 20px 20px",
- width: "100%",
- };
- Object.assign(dlBox.style, dlBoxStyle);
- media.append(newMediaBox, dlBox);
- })
- );
- })();
- function dlBoxEventListener(dlBox) {
- dlBox.addEventListener("click", async (e) => {
- e.preventDefault();
- const url = dlBox.getAttribute("href");
- const name = url.split("/").pop();
- GM_download({
- url,
- name,
- saveAs: true,
- onerror: (e) => console.error(e),
- });
- });
- }