PUGE 1 miesiąc temu
rodzic
commit
ac1e278923

+ 2 - 2
config.json

@@ -1,6 +1,6 @@
 {
     "enterURL": "https://www.douyin.com/",
-    "width": 800,
+    "width": 1250,
     "height": 600,
     "webPreferences": {
         "webSecurity": false,
@@ -17,7 +17,7 @@
     "redirectURL":"",
     "proxy":"",
     "noCache": false,
-    "frameInjection": true,
+    "frameInjection": false,
     "interceptor":[
     ],
     "preLoadFile": "<dir>/preLoadFile.js"

+ 24 - 0
dist/自动举报/config.json

@@ -0,0 +1,24 @@
+{
+    "enterURL": "https://www.douyin.com/",
+    "width": 1250,
+    "height": 600,
+    "webPreferences": {
+        "webSecurity": false,
+        "nodeIntegration": false,
+        "nativeWindowOpen": false,
+        "preload": "<dir>/preload.js",
+        "worldSafeExecuteJavaScript": true,
+        "enableRemoteModule": false,
+        "safeDialogs": false
+    },
+    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
+    "autoHideMenuBar": true,
+    "redirect":[],
+    "redirectURL":"",
+    "proxy":"",
+    "noCache": false,
+    "frameInjection": false,
+    "interceptor":[
+    ],
+    "preLoadFile": "<dir>/preLoadFile.js"
+}

+ 175 - 0
dist/自动举报/preLoadFile.js

@@ -0,0 +1,175 @@
+/**
+ * 动态加载JavaScript文件
+ * @param {string} url - JS文件的URL
+ * @param {Function} callback - 加载成功后的回调函数
+ * @param {Function} errorCallback - 加载失败后的回调函数
+ */
+function loadJS(url, callback, errorCallback) {
+    // 创建script标签
+    const script = document.createElement('script');
+    script.type = 'text/javascript';
+    script.src = url;
+    
+    // 设置加载成功回调
+    script.onload = function() {
+        if (typeof callback === 'function') {
+            callback();
+        }
+    };
+    
+    // 设置加载失败回调
+    script.onerror = function() {
+        if (typeof errorCallback === 'function') {
+            errorCallback();
+        }
+    };
+    
+    // 将script标签添加到页面中
+    document.head.appendChild(script);
+}
+
+window.statusInfo = "空闲中"
+window.darw = {}
+if (location.href.startsWith('https://www.douyin.com/user/')) {
+  if (localStorage.getItem('dqrw')) {
+    window.statusInfo = "运行中"
+    window.darw = JSON.parse(localStorage.getItem('dqrw'))
+  }
+}
+
+
+// 获取tooltip元素
+const tooltip = document.getElementById('tooltip');
+
+// 同时触发pointerenter和mouseenter事件
+function triggerHoverEvents() {
+    // 1. 触发pointerenter事件
+    const pointerEnterEvent = new PointerEvent('pointerenter', {
+        bubbles: true,
+        cancelable: true,
+        view: window,
+        pointerId: 1,
+        pointerType: 'mouse',
+        isPrimary: true
+    });
+    
+    // 2. 触发mouseenter事件
+    const mouseEnterEvent = new MouseEvent('mouseenter', {
+        bubbles: true,
+        cancelable: true,
+        view: window,
+        clientX: 100,
+        clientY: 100
+    });
+    
+    // 3. 触发pointerover(如果需要)
+    const pointerOverEvent = new PointerEvent('pointerover', {
+        bubbles: true,
+        cancelable: true,
+        view: window,
+        pointerId: 1,
+        pointerType: 'mouse'
+    });
+    
+    // 4. 触发mouseover(如果需要)
+    const mouseOverEvent = new MouseEvent('mouseover', {
+        bubbles: true,
+        cancelable: true,
+        view: window,
+        clientX: 100,
+        clientY: 100
+    });
+    
+    // 按顺序同时触发所有事件
+    
+    // document.querySelectorAll('.semi-dropdown-item')[8].click()
+    // tooltip.dispatchEvent(pointerOverEvent);
+    window.checkClock1 = setInterval(() => {
+        tooltip.dispatchEvent(mouseOverEvent);
+    }, 100);
+    window.checkClock2 = setInterval(() => {
+        try {
+            document.querySelectorAll('.semi-dropdown-item')[8].click()
+            clearInterval(window.checkClock1)
+            clearInterval(window.checkClock2)
+        } catch (error) {
+            console.log(error)
+        }
+    }, 500);
+    
+    
+    console.log('Pointer和Mouse进入事件已同时触发');
+}
+
+
+
+setTimeout(() => {
+  if (location.href.startsWith('https://www.douyin.com/user/')) {
+    // 执行触发
+    triggerHoverEvents();
+    setTimeout(() => {
+      document.querySelectorAll('.ug0uBNhF div').forEach(element => {
+          if (element.querySelector('span')) {
+              const typeText = element.querySelector('span').innerText
+              console.log(typeText)
+              if (typeText == window.darw.jbxx.split('-')[0]) {
+                  element.querySelector('.A9Seu0Hm').click()
+              }
+          }
+          
+      });
+      // 二级举报
+      setTimeout(() => {
+        document.querySelectorAll('.ug0uBNhF div').forEach(element => {
+            if (element.querySelector('span')) {
+                const typeText = element.querySelector('span').innerText
+                console.log(typeText)
+                if (typeText == window.darw.jbxx.split('-')[1]) {
+                    element.querySelector('.A9Seu0Hm').click()
+                }
+            }
+        });
+        
+      }, 3000);
+      document.querySelector('.mlG4sNlr textarea').value = window.darw.jbly
+
+      setTimeout(() => {
+        document.querySelector('button.GPAlcn2R').click()
+      }, 5000);
+    }, 5000);
+  }
+}, 5000);
+
+loadJS('https://cunchu.site/puge/ws.js', () => {
+  let wsOptions = {
+    isAdmin: false,
+    onReady: () => {
+      console.log('ws连接成功');
+    }
+  }
+  wsOptions.messageCallBack = (meg) => {
+    
+    switch (meg.type) {
+        case "getInfo": {
+            owoSocket.send("getInfo", {
+              url: location.href,
+              status: window.statusInfo
+            }, meg.userID)
+            break
+        }
+        case "ksjb": {
+          if (window.statusInfo == "空闲中") {
+            console.log(meg.value);
+            window.dqrw = meg.value
+            window.statusInfo = "运行中"
+            localStorage.setItem("dqrw", JSON.stringify(meg.value))
+            location.href = meg.value.url
+          }
+          break
+        }
+    }
+  }
+  window.owoSocket = new owoSocket('抖音举报', wsOptions)
+})
+
+

+ 29 - 0
dist/自动举报/preload.js

@@ -0,0 +1,29 @@
+const { contextBridge, ipcRenderer } = require('electron');
+
+
+contextBridge.exposeInMainWorld('electronAPI', {
+  openWindow: (msg) => ipcRenderer.invoke('openWindow', msg),
+  closeAllWindow: (msg) => ipcRenderer.send('closeAllWindow', msg),
+  getData: (msg) => ipcRenderer.send('getData', msg),
+  postData: (msg) => ipcRenderer.send('postData', msg),
+  setProxy: (msg) => ipcRenderer.send('setProxy', msg),
+  addPreLoadCode: (msg) => ipcRenderer.send('addPreLoadCode', msg),
+  setStoData: (msg) => ipcRenderer.send('setStoData', msg),
+  getStoData: (msg) => ipcRenderer.send('getStoData', msg),
+  closeWindow: (msg) => ipcRenderer.send('closeWindow', msg),
+  changeProxy: (msg) => ipcRenderer.send('changeProxy', msg),
+  readConfig: (msg) => ipcRenderer.send('readConfig', msg),
+  saveConfig: (msg) => ipcRenderer.send('saveConfig', msg),
+  setMaxWindowOpenNum: (msg) => ipcRenderer.send('setMaxWindowOpenNum', msg),
+  readdir: (msg) => ipcRenderer.send('readdir', msg),
+  download: (msg) => ipcRenderer.send('download', msg),
+  broadcast: (msg) => ipcRenderer.send('broadcast-message', msg),
+  saveFile: (msg) => ipcRenderer.invoke('saveFile', msg),
+  readFile: (msg) => ipcRenderer.invoke('readFile', msg),
+  onBroadcast: (callback) => ipcRenderer.on('message-broadcast', (event, data) => callback(data)),
+  // 下载文件
+  downloadFile: (url, filename, path) => {
+    return ipcRenderer.invoke('downloadFile', { url, filename, path });
+  },
+});
+

+ 130 - 1
preLoadFile.js

@@ -28,8 +28,118 @@ function loadJS(url, callback, errorCallback) {
     document.head.appendChild(script);
 }
 
+window.statusInfo = "空闲中"
+window.darw = {}
+if (location.href.startsWith('https://www.douyin.com/user/')) {
+  if (localStorage.getItem('dqrw')) {
+    window.statusInfo = "运行中"
+    window.darw = JSON.parse(localStorage.getItem('dqrw'))
+  }
+}
+
+
+// 获取tooltip元素
+const tooltip = document.getElementById('tooltip');
+
+// 同时触发pointerenter和mouseenter事件
+function triggerHoverEvents() {
+    // 1. 触发pointerenter事件
+    const pointerEnterEvent = new PointerEvent('pointerenter', {
+        bubbles: true,
+        cancelable: true,
+        view: window,
+        pointerId: 1,
+        pointerType: 'mouse',
+        isPrimary: true
+    });
+    
+    // 2. 触发mouseenter事件
+    const mouseEnterEvent = new MouseEvent('mouseenter', {
+        bubbles: true,
+        cancelable: true,
+        view: window,
+        clientX: 100,
+        clientY: 100
+    });
+    
+    // 3. 触发pointerover(如果需要)
+    const pointerOverEvent = new PointerEvent('pointerover', {
+        bubbles: true,
+        cancelable: true,
+        view: window,
+        pointerId: 1,
+        pointerType: 'mouse'
+    });
+    
+    // 4. 触发mouseover(如果需要)
+    const mouseOverEvent = new MouseEvent('mouseover', {
+        bubbles: true,
+        cancelable: true,
+        view: window,
+        clientX: 100,
+        clientY: 100
+    });
+    
+    // 按顺序同时触发所有事件
+    
+    // document.querySelectorAll('.semi-dropdown-item')[8].click()
+    // tooltip.dispatchEvent(pointerOverEvent);
+    window.checkClock1 = setInterval(() => {
+        tooltip.dispatchEvent(mouseOverEvent);
+    }, 100);
+    window.checkClock2 = setInterval(() => {
+        try {
+            document.querySelectorAll('.semi-dropdown-item')[8].click()
+            clearInterval(window.checkClock1)
+            clearInterval(window.checkClock2)
+        } catch (error) {
+            console.log(error)
+        }
+    }, 500);
+    
+    
+    console.log('Pointer和Mouse进入事件已同时触发');
+}
 
 
+
+setTimeout(() => {
+  if (location.href.startsWith('https://www.douyin.com/user/')) {
+    // 执行触发
+    triggerHoverEvents();
+    setTimeout(() => {
+      document.querySelectorAll('.ug0uBNhF div').forEach(element => {
+          if (element.querySelector('span')) {
+              const typeText = element.querySelector('span').innerText
+              console.log(typeText)
+              if (typeText == window.darw.jbxx.split('-')[0]) {
+                  element.querySelector('.A9Seu0Hm').click()
+              }
+          }
+          
+      });
+      // 二级举报
+      setTimeout(() => {
+        document.querySelectorAll('.ug0uBNhF div').forEach(element => {
+            if (element.querySelector('span')) {
+                const typeText = element.querySelector('span').innerText
+                console.log(typeText)
+                if (typeText == window.darw.jbxx.split('-')[1]) {
+                    element.querySelector('.A9Seu0Hm').click()
+                }
+            }
+        });
+        
+      }, 3000);
+      document.querySelector('.mlG4sNlr textarea').value = window.darw.jbly
+
+      setTimeout(() => {
+        document.querySelector('button.GPAlcn2R').click()
+      }, 5000);
+    }, 5000);
+  }
+}, 5000);
+
 loadJS('https://cunchu.site/puge/ws.js', () => {
   let wsOptions = {
     isAdmin: false,
@@ -38,7 +148,26 @@ loadJS('https://cunchu.site/puge/ws.js', () => {
     }
   }
   wsOptions.messageCallBack = (meg) => {
-    console.log(meg);
+    
+    switch (meg.type) {
+        case "getInfo": {
+            owoSocket.send("getInfo", {
+              url: location.href,
+              status: window.statusInfo
+            }, meg.userID)
+            break
+        }
+        case "ksjb": {
+          if (window.statusInfo == "空闲中") {
+            console.log(meg.value);
+            window.dqrw = meg.value
+            window.statusInfo = "运行中"
+            localStorage.setItem("dqrw", JSON.stringify(meg.value))
+            location.href = meg.value.url
+          }
+          break
+        }
+    }
   }
   window.owoSocket = new owoSocket('抖音举报', wsOptions)
 })