Greasy Fork

有谱么 破解打印

这是一个自用的油猴脚本,用于解决白嫖党无法打印的问题,请注意,此插件移除了可以打印乐谱以外的所有功能和内容(包括看谱,启用后,您将不能正常看谱),如果有需要(比如播放,看谱)请勿启用。此脚本仅供学习和参考JavaScript使用,请使用者在下载后24小时内删除,本人不负一切因此脚本而产生的法律责任。

当前为 2023-05-21 提交的版本,查看 最新版本

// ==UserScript==
// @name         有谱么 破解打印
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  这是一个自用的油猴脚本,用于解决白嫖党无法打印的问题,请注意,此插件移除了可以打印乐谱以外的所有功能和内容(包括看谱,启用后,您将不能正常看谱),如果有需要(比如播放,看谱)请勿启用。此脚本仅供学习和参考JavaScript使用,请使用者在下载后24小时内删除,本人不负一切因此脚本而产生的法律责任。
// @author       You
// @match        http://*/*
// @match        *://yopu.co/view/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// @run-at       document-idle
// ==/UserScript==

(function() {

})();
(function() {
    'use strict';

    setTimeout(() => {
    // 移除无用元素
    const headerElems = document.querySelectorAll('header.svelte-19k88m6');
    headerElems.forEach(headerElem => {
        headerElem.remove();
    });

    const sideElems = document.querySelectorAll('div.side.svelte-dbj6vu');
    sideElems.forEach(sideElem => {
        sideElem.remove();
    });
    const selectedElems = document.querySelectorAll('div.at-cursor-bar');
    selectedElems.forEach(selectedElem => {
        selectedElem.remove();
    });
    const beatElems = document.querySelectorAll('div.at-cursor-beat');
    beatElems.forEach(beatElem => {
        beatElem.remove();
    });
    //修改打印设置为允许打印,去除打印提示页
    const doNotPrintElem = document.querySelector('.no-print');
    if (doNotPrintElem) {
        doNotPrintElem.setAttribute("class","allow-print");
    }

    const printElems = document.querySelectorAll('div.print-sheet.svelte-10d563p');
    printElems.forEach(printElem => {
        printElem.remove();
    });

    const playerPanelElems = document.querySelectorAll('div.player-panel.svelte-8wqidh');
    playerPanelElems.forEach(playerPanelElem => {
        playerPanelElem.remove();
    });

    // 修改特定元素宽高,适应打印
    const layoutElem = document.querySelector('.layout.svelte-dbj6vu.nier');
    if (layoutElem) {
        layoutElem.style.width = '100%';
        layoutElem.style.margin = '0';
    }


    const mainElem = document.querySelector('div.main.svelte-dbj6vu');
    if (mainElem) {
        mainElem.style.marginRight = 'unset';
        mainElem.style.height = '8000px';
    }
    }, 2000);
})();