97 lines
3.0 KiB
JavaScript
97 lines
3.0 KiB
JavaScript
// ==UserScript==
|
||
// @name 微信登录通知
|
||
// @namespace https://miaowoo.cc/
|
||
// @version 0.2
|
||
// @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)
|
||
}
|
||
await sleep(500)
|
||
let originClass = img.className
|
||
img.className = ''
|
||
// 创建canvas DOM元素,并设置其宽高和图片一样
|
||
var canvas = document.createElement("canvas");
|
||
canvas.width = img.width;
|
||
canvas.height = img.height;
|
||
// 坐标(0,0) 表示从此处开始绘制,相当于偏移。
|
||
canvas.getContext("2d").drawImage(img, 0, 0);
|
||
img.className = originClass
|
||
let base64 = canvas.toDataURL()
|
||
await post(api, { base64, 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()
|
||
})(); |