Greasy Fork

Greasy Fork is available in English.

去水印--支持婚贝、图怪兽、创客贴、易企秀

支持婚贝、图怪兽、创客贴、易企秀的设计图片去水印,去水印后自行截图即可。

当前为 2024-04-13 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         去水印--支持婚贝、图怪兽、创客贴、易企秀
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  支持婚贝、图怪兽、创客贴、易企秀的设计图片去水印,去水印后自行截图即可。
// @author       ZouYS
// @match        https://ue.818ps.com/v4/*
// @match        https://818ps.com/u/*
// @match        https://www.eqxiu.com/*
// @match        https://h5.hunbei.com/*
// @match        https://approval.818ps.com/ue/*
// @match        https://www.chuangkit.com/odyssey/design*
// @match        https://www.chuangkit.com/sharedesign*
// @icon         https://img0.baidu.com/it/u=3057892570,2098051223&fm=253&fmt=auto&app=138&f=PNG?w=256&h=256
// @grant        none
// ==/UserScript==
/*请勿随意传播,自己使用就好,不然很容易被官方ban*/
(function() {
    'use strict';

    /*
 * @Author: zouys [email protected]
 * @Date: 2024-04-12 14:49:35
 * @LastEditors: zouys [email protected]
 * @LastEditTime: 2024-04-12 17:45:31
 * @FilePath: \Project_client\water-mask.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */

    window.onload = () =>{
        //图怪兽分享界面直接获取链接
        //非同源通信策略
        if(window.location.href.includes('https://818ps.com/u/')){
            console.log('share page')
            let approvalIframe = document.getElementById('approval-iframe');
            console.log('approvalIframe:',approvalIframe);
            if (approvalIframe) {
                let approvalIframeSrc = approvalIframe.src;
                console.log('Approval Iframe Source:', approvalIframeSrc);
                var size = prompt('图片大小(默认520,越大越清晰)','520' ); //将输入的内容赋给变量 name
                let substring=approvalIframeSrc.split('height=')[1]= size || '520';
                approvalIframeSrc=approvalIframeSrc.split('height=')[0]+'height='+substring;
                var secWindow = window.open(approvalIframeSrc);
            }
            window.close();
            return
        }
        if(window.location.href.includes("https://approval.818ps.com/ue/")){

            console.log('检查水印')
            while(document.querySelectorAll('.image-watermark')!=null){
                document.querySelector('.image-watermark').remove();
            }
            return
        }
        if(window.location.href.includes("https://www.chuangkit.com/sharedesign")){
            console.log('获取图片链接')

            setTimeout(() =>{
                let imgURL=document.querySelector('img[alt="设计缩略图"]').src
                console.log(imgURL);
                downloadImage(imgURL,new Date().getTime.toString())
            },3000)
            return
        }
        let showWindow = document.createElement('button')
        showWindow.style.width = '100px'
        showWindow.style.height = '40px'
        showWindow.innerText = '一键祛除水印'
        showWindow.style.position = 'fixed'
        showWindow.style.right = '50%'
        showWindow.style.top = '0px'
        showWindow.style.zIndex = '9999999'
        showWindow.style.backgroundColor = 'yellow'
        showWindow.style.color = 'red'
        showWindow.addEventListener('click', () =>{
        /**婚贝 */
        if(window.location.href.includes('https://h5.hunbei.com/')){
            doHunBe();
        }
        /**图怪兽 */
        if(window.location.href.includes('https://ue.818ps.com/v4/')){
            doTuGuaiShou();
        }
        /**易企秀 */
        if(window.location.href.includes('https://www.eqxiu.com/')){
            doYiQiXiu();
        }
        /**创客贴 */
        if(window.location.href.includes('https://www.chuangkit.com/odyssey/design')){
            doChuangKeTie();
        }
    })
    document.body.appendChild(showWindow)

    }

/**获取创可贴链接 */
var getImg=(delay)=>{
    setTimeout(() =>{
        if(document.querySelector('img[alt="设计缩略图"]')==null){
            getImg(1000);
            return
        }
        let imgURL=document.querySelector('img[alt="设计缩略图"]').src
        console.log(imgURL);
        downloadImage(imgURL,new Date().getTime.toString())
    },delay || 3000)
}

/**
 * 图怪兽去水印
 * https://ue.818ps.com/v4/
 */
var doTuGuaiShou=async()=>{
    //获取分享链接
    await document.querySelector('.headerBtnItem.userShare').click();

    setTimeout(() => {
        var shareURL = document.getElementById('link').value;
        console.log(shareURL);

        var newWindow = window.open(shareURL);
        console.log('new window:',newWindow);


        /*同源通信策略
        newWindow.onload = () => {
            let newWindowDocument = newWindow.document;
            let approvalIframe = newWindowDocument.getElementById('approval-iframe');
            console.log('newWindowDocument:',newWindowDocument);
            if (approvalIframe) {
                let approvalIframeSrc = approvalIframe.src;
                console.log('Approval Iframe Source:', approvalIframeSrc);

                var secWindow = window.open(approvalIframeSrc);

                secWindow.onload = () => {
                    let secWindowDocument = secWindow.document;
                    let imageWatermark = secWindowDocument.querySelector('.image-watermark');

                    if (imageWatermark) {
                        imageWatermark.remove();
                    }

                    // 使用循环确保移除所有类名为 '.image-watermark' 的元素
                    while (secWindowDocument.querySelector('.image-watermark')) {
                        secWindowDocument.querySelector('.image-watermark').remove();
                    }
                };
            } else {
                console.log('No approval iframe found in the new window.');
            }
        };*/
    }, 1000);
}

/**
 * https://www.eqxiu.com/
 * 易企秀去水印
 */

var doYiQiXiu=()=>{
    while(document.querySelector('.eqc-watermark')!=null) {
        document.querySelector('.eqc-watermark').remove()
    }
    // while(document.querySelector('[data-hint="双击或从素材库拖拽进行替换"]')!=null)
        document.querySelector('[data-hint="双击或从素材库拖拽进行替换"]').remove()
}

/**
 * 婚贝
 * https://h5.hunbei.com/
 */
var doHunBe=async()=>{
    //去除页面监听
    // 保存 MutationObserver 的原始引用
    var originalMutationObserver = window.MutationObserver;

    // 重写 MutationObserver 的原型
    window.MutationObserver = function(callback) {
        // 返回一个空的对象,模拟 MutationObserver 的行为,但不执行任何操作
        this.observe = function() {};
        this.disconnect = function() {};
        this.takeRecords = function() {};
    };
    // 为了兼容性,保留原始的 MutationObserver 属性
    window.MutationObserver.prototype = originalMutationObserver.prototype;
    console.log(1)
    // 保存原始的 addEventListener 方法
    var originalAddEventListener = Element.prototype.addEventListener;

    // 重写 addEventListener 方法
    Element.prototype.addEventListener = function(type, listener, options) {
        // 如果是要添加的事件是 'DOMNodeInserted'
        if (type === 'DOMNodeInserted') {

        } else {
            // 对于其他类型的事件,调用原始的 addEventListener 方法
            originalAddEventListener.call(this, type, listener, options);
        }
    };
    // 使用 setTimeout 来延迟执行循环体

    // setTimeout(function() {
    //     do {
    //         var watermark = document.getElementById('water-mark');
    //         if (watermark) {
    //             watermark.remove();
    //         }
    //     } while (watermark !== undefined);
    // }, 0);
    await sleep(2000);
    document.getElementById('water-mark') &&  document.getElementById('water-mark').remove();
    document.getElementById('water-mark') && document.getElementById('water-mark').remove();
    // console.log('MutationObserver');
    setTimeout(() => {
        console.log('3');
        document.getElementById('water-mark').remove();
        setTimeout(() => {
            if(document.getElementById('water-mark')===null) {
                alert('去除水印成功!');
            }
        }, 1000);
    },1000)

}



/**
 * 创客贴
 * https://www.chuangkit.com/odyssey/design
 */
var doChuangKeTie=()=>{
    document.querySelector('.personal-share-design-warp-btn').click()
    setTimeout(() => {
        var chuangkitURL=document.querySelector('.link-text').innerText
        var chuangkitWindow=window.open(chuangkitURL)
        setTimeout(()=>{
            console.log('sencond page loaded');
            let mydom=chuangkitWindow.document
            //图片链接
            let chuangkitImgURL=mydom.querySelector('img[alt="设计缩略图"]')
            console.log('chuangkitImgURL',chuangkitImgURL);
        },3000)
        chuangkitWindow.onload=()=>{
            console.log('sencond page loaded');
            let mydom=chuangkitWindow.document
            //图片链接
            let chuangkitImgURL=mydom.querySelector('img[alt="设计缩略图"]')
            console.log('chuangkitImgURL',chuangkitImgURL);
        }
    },1000);
}
function downloadImage(url, filename) {
    var link = document.createElement('a');
    link.href = url;
    link.download = filename;
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
}
async function sleep(time) {
    console.log('睡眠' + time / 1000 + 's')
    //if(time < 1000)time=1000
    return await new Promise((resolve) => setTimeout(resolve, time));
}
})();