EWT360 Permission Interceptor

拦截并修改EWT360 课程视频API响应内容

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         EWT360 Permission Interceptor
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  拦截并修改EWT360 课程视频API响应内容
// @author       LaoShui
// @match        https://teacher.ewt360.com/*
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    const open = XMLHttpRequest.prototype.open;
    XMLHttpRequest.prototype.open = function(method, url, async, user, password) {
        this.addEventListener('readystatechange', function() {
            if (this.readyState === 4 && this.status === 200 && url.endsWith('getLessonDetailV2')) {
                let response = JSON.parse(this.responseText);
                if (response.success && response.code === "200") {
                    response.data.hasPermission = true;
                    response.data.authFromSchool = false;
                    response.data.tips = null;
                    Object.defineProperty(this, 'responseText', { value: JSON.stringify(response) });
                }
            }
        }, false);
        open.call(this, method, url, async, user, password);
    };
})();