Greasy Fork

来自缓存

SJTU jAccount验证码自动识别

自动识别SJTU jAccount验证码

// ==UserScript==
// @name         SJTU jAccount验证码自动识别
// @namespace    shatyuka
// @version      1.0
// @description  自动识别SJTU jAccount验证码
// @author       Shatyuka
// @require      https://unpkg.com/[email protected]/dist/tesseract.min.js
// @match        https://jaccount.sjtu.edu.cn/jaccount/jalogin*
// ==/UserScript==

function execute() {
    let input = document.getElementById('captcha')
    let captchaImg = document.getElementById('captcha-img')
    let canvas = document.createElement('canvas')
    let ctx = canvas.getContext('2d')
    canvas.width = captchaImg.width
    canvas.height = captchaImg.height
    ctx.fillStyle = 'white'
    ctx.fillRect(0, 0, canvas.width, canvas.height)
    ctx.drawImage(captchaImg, 0, 0)

    Tesseract.recognize(canvas, 'eng', {
        tessedit_char_whitelist: 'abcdefghijklmnopqrstuvwxyz0123456789'
    }).then(data => {
        input.value = data.data.text.replace(/\s/ig,'')
    })
}

let intervalHandler = window.setInterval(() => {
    if (document.getElementById('captcha-img')) {
        window.clearInterval(intervalHandler)
        execute()
    }
}, 500)