// ==UserScript== // @name 微信登录通知 // @namespace https://miaowoo.cc/ // @version 0.3 // @description 自动化登录通知 // @author MiaoWoo // @match https://pay.weixin.qq.com/index.php/core/home/login** // @match https://cover.weixin.qq.com/** // @match https://work.weixin.qq.com/wework_admin/wwqrlogin/mng/login_qrcode** // @grant none // ==/UserScript== (function () { 'use strict'; let api = "https://oauth.yumc.pw/qr/push" async function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)) } async function post(url, data) { return await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }).then(r => r.json()) } async function wxpay() { let qrcode = null while (!(qrcode = document.getElementById('IDQrcodeImg'))) { await sleep(100) } let url = null while (!(url = qrcode.getAttribute('title'))) { await sleep(100) } await post(api, { url, title: '微信支付' }) } async function cover() { if (location.hash != "#/login") { return } let qrcode = null while (!(qrcode = document.querySelector('.qrcode'))) { await sleep(100) } let img = null while (!(img = qrcode.children[0])) { await sleep(100) } while (!(img.src.startsWith('data:image/png;base64'))) { await sleep(100) } let base64 = img.src await post(api, { base64, title: '微信红包封面' }) } async function work() { let qrcode = null while (!(qrcode = document.querySelector('.qrcode_wrap'))) { await sleep(100) } let img = null while (!(img = qrcode.children[0])) { await sleep(100) } while (img.style.display) { await sleep(100) } while (!(img.src.startsWith('https://work.weixin.qq.com/wwqrlogin'))) { await sleep(100) } let src = img.src await post(api, { src, title: '企业微信' }) } async function main() { if (location.origin == "https://pay.weixin.qq.com") { await wxpay() } if (location.origin == "https://cover.weixin.qq.com") { await cover() } if (location.origin == "https://work.weixin.qq.com") { await work() } } main() })();