// ==UserScript==
// @name 去水印--支持婚贝、图怪兽、创客贴、易企秀
// @namespace http://tampermonkey.net/
// @version 1.2
// @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
// @run-at document-start
// @grant none
// ==/UserScript==
/*请勿随意传播,自己使用就好,不然很容易被官方ban*/
(function() {
'use strict';
/*
* @Author: zouys [email protected]
* @Date: 2024-04-12 14:49:35
* @LastEditors: zouys [email protected]
* @LastEditTime: 2024-05-14 12:29:31
* @FilePath: \Project_client\water-mask.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
var chuangKitUrl='';
/**获取创可贴链接 */
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)
}
/**
* 捕获请求获取url
* */
let getImageUrlFromXHR=()=>{
}
function addXMLRequestCallback() {
let url={
shareInfo:'https://gw.chuangkit.com/team/share/getShareInfoV3.do'
}
// oldSend 旧函数 i 循环
var oldSend = XMLHttpRequest.prototype.send;
var oldOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function(method, url, async, user, password) {
this._url = url; // 将 URL 存储在 XMLHttpRequest 实例的 _url 属性中
oldOpen.apply(this, arguments);
};
XMLHttpRequest.prototype.send = function (data) {
var self = this;
//拦截返回请求
this.addEventListener('load', function() {
if (self.responseURL.includes(url.shareInfo)) {
let responseObject = JSON.parse(self.responseText);
chuangKitUrl= responseObject.body.bean.imgUrl;
console.log('捕获请求,url:',chuangKitUrl)
}else if (1){
}
});
oldSend.call(this, data);
};
}
addXMLRequestCallback()
/**
* 图怪兽去水印
* https://ue.818ps.com/v4/
*/
var doTuGuaiShou=async()=>{
//获取分享链接
await document.querySelector('.headerBtnItem.userShare').click();
setTimeout(() => {
var shareURL = document.getElementById('link').value.split(':')[1];
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));
}
window.onload = () =>{
console.log('loaded: url:',location.href)
console.log('state: ', document.readyState)
let needSrc=location.href;
//图怪兽分享界面直接获取链接
//非同源通信策略
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);
let size = prompt('图片大小(默认520,越大越清晰)','520' ); //将输入的内容赋给变量 name
let substring=approvalIframeSrc.split('height=')[1]= size || '520';
approvalIframeSrc=approvalIframeSrc.split('height=')[0]+'height='+substring;
let secWindow = window.open(approvalIframeSrc);
}
window.close();
return
}
if(window.location.href.includes("https://approval.818ps.com/ue/")){
console.log(window.location.href.includes("https://approval.818ps.com/ue/"))
console.log('检查水印')
try {
while(document.querySelectorAll('.image-watermark')!=null){
document.querySelector('.image-watermark').remove();
}
}catch (e) {
console.log(e);
}
let approvalIframeSrc = location.href;
console.log('Approval Iframe Source:', approvalIframeSrc);
let size = prompt('图片大小(建议520以上,越大越清晰)--重复弹窗请点击取消!' ); //将输入的内容赋给变量 name
if(size===null){
return;
}else {
let substring=approvalIframeSrc.split('height=')[1]= size;
approvalIframeSrc=approvalIframeSrc.split('height=')[0]+'height='+substring;
let secWindow = window.open(approvalIframeSrc);
}
return
}
if(window.location.href.includes("https://www.chuangkit.com/sharedesign")){
//console.log('获取图片链接')
let imgURL
console.log('chuangKitUrl:',chuangKitUrl);
if(chuangKitUrl!==''){
imgURL='https:'+chuangKitUrl;
downloadImage(imgURL,new Date().getTime.toString())
}else {
setTimeout(() =>{
if(document.querySelector('img[alt="设计缩略图"]').src){
imgURL=document.querySelector('img[alt="设计缩略图"]').src
}else {
}
// console.log(imgURL);
downloadImage(imgURL,new Date().getTime.toString())
},5000)
}
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)
}
})();