您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
remove bzzhr's ad link
- // ==UserScript==
- // @name bzzhr Link Resolver
- // @name:ko bzzhr 링크 변환기
- // @namespace BZZHR_RESOLVER_V1
- // @run-at document-end
- // @version 1.0
- // @description remove bzzhr's ad link
- // @description:ko bzzhr의 광고 링크를 제거하고 다운로드 링크를 바로 뱉어내도록 합니다.
- // @author Laria
- // @match https://bzzhr.co/f/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=bzzhr.co
- // @license MIT
- // @encoding utf-8
- // ==/UserScript==
- /*
- * == Change log ==
- * 1.0 - release
- */
- const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
- //https://stackoverflow.com/questions/5525071
- function waitForElm(selector) {
- return new Promise(resolve => {
- if (document.querySelector(selector)) {
- return resolve(document.querySelector(selector));
- }
- const observer = new MutationObserver(mutations => {
- if (document.querySelector(selector)) {
- observer.disconnect();
- resolve(document.querySelector(selector));
- }
- });
- // If you get "parameter 1 is not of type 'Node'" error, see https://stackoverflow.com/a/77855838/492336
- observer.observe(document.body, {
- childList: true,
- subtree: true
- });
- });
- }
- async function linkShow() {
- //remove countdown btn
- document.getElementById('countdown').classList.add("hidden");
- //show all link
- for (let link of document.getElementsByClassName("dl")) link.classList.remove("hidden");
- //repeat all link to resolve original download link
- document.querySelector('div.dl').querySelectorAll('a').forEach((i) => {
- if (i.getAttribute('data-href')) {
- i.innerText = i.innerText + ' ®';
- i.href = i.getAttribute('data-href');
- }
- });
- }
- async function rootProcedure(){
- 'use strict';
- //wait link available
- await waitForElm('div.dl');
- await linkShow();
- }
- window.addEventListener('load', () => setTimeout(rootProcedure, 100));