您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Cheat do CMSP by marco10pc, modificado
当前为
- // ==UserScript==
- // @name Cheat para CMSP
- // @namespace https://cmspweb.ip.tv/
- // @version 1.1
- // @description Cheat do CMSP by marco10pc, modificado
- // @connect cmsp.ip.tv
- // @connect edusp-api.ip.tv
- // @author Rafael Gustavo Nogueira (marco10pc)
- // @match https://cmsp.ip.tv/*
- // @icon https://edusp-static.ip.tv/permanent/66aa8b3a1454f7f2b47e21a3/full.x-icon
- // @license GNU Affero General Public License v3.0
- // ==/UserScript==
- (function() {
- 'use strict';
- let lesson_regex = /https:\/\/cmsp\.ip\.tv\/mobile\/tms\/task\/\d+\/apply/;
- console.log("-- STARTING CMSP CHEETO By marcos10pc --");
- function transformJson(jsonOriginal) {
- let novoJson = {
- status: "submitted",
- accessed_on: jsonOriginal.accessed_on,
- executed_on: jsonOriginal.executed_on,
- answers: {}
- };
- for (let questionId in jsonOriginal.answers) {
- let question = jsonOriginal.answers[questionId];
- let taskQuestion = jsonOriginal.task.questions.find(q => q.id === parseInt(questionId));
- if (taskQuestion.type === "order-sentences") {
- let answer = taskQuestion.options.sentences.map(sentence => sentence.value);
- novoJson.answers[questionId] = {
- question_id: question.question_id,
- question_type: taskQuestion.type,
- answer: answer
- };
- } else if (taskQuestion.type === "fill-words") {
- let pre_anwser = taskQuestion.options
- let anwser = pre_anwser.phrase.map(item => item.value);
- //console.log(`[DEBUG] ${JSON.stringify(anwser)}`)
- novoJson.answers[questionId] = {
- question_id: question.question_id,
- question_type: taskQuestion.type,
- answer: anwser
- };
- } else if (taskQuestion.type === "text_ai") {
- let answer = taskQuestion.comment.replace(/<\/?p>/g, '');
- novoJson.answers[questionId] = {
- question_id: question.question_id,
- question_type: taskQuestion.type,
- answer: {
- "0": answer
- }
- };
- } else if (taskQuestion.type === "fill-letters") {
- let answer = taskQuestion.options.answer;
- novoJson.answers[questionId] = {
- question_id: question.question_id,
- question_type: taskQuestion.type,
- answer: answer
- };
- } else if (taskQuestion.type === "cloud") {
- let answer = taskQuestion.options.ids;
- novoJson.answers[questionId] = {
- question_id: question.question_id,
- question_type: taskQuestion.type,
- answer: answer
- };
- } else {
- let answer = Object.fromEntries(
- Object.keys(taskQuestion.options).map(optionId => [optionId, taskQuestion.options[optionId].answer])
- );
- novoJson.answers[questionId] = {
- question_id: question.question_id,
- question_type: taskQuestion.type,
- answer: answer
- };
- }
- }
- return novoJson;
- }
- let oldHref = document.location.href;
- const observer = new MutationObserver(() => {
- if (oldHref !== document.location.href) {
- oldHref = document.location.href;
- if (lesson_regex.test(oldHref)) {
- console.log("[DEBUG] LESSON DETECTED");
- let x_auth_key = JSON.parse(sessionStorage.getItem("cmsp.ip.tv:iptvdashboard:state")).auth.auth_token;
- let room_name = JSON.parse(sessionStorage.getItem("cmsp.ip.tv:iptvdashboard:state")).room.room.name;
- let id = oldHref.split("/")[6];
- console.log(`[DEBUG] LESSON_ID: ${id} ROOM_NAME: ${room_name}`);
- let draft_body = {
- status: "draft",
- accessed_on: "room",
- executed_on: room_name,
- answers: {}
- };
- const sendRequest = (method, url, data, callback) => {
- const xhr = new XMLHttpRequest();
- xhr.open(method, url);
- xhr.setRequestHeader("X-Api-Key", x_auth_key);
- xhr.setRequestHeader("Content-Type", "application/json");
- xhr.onload = () => callback(xhr);
- xhr.onerror = () => console.error('Request failed');
- xhr.send(data ? JSON.stringify(data) : null);
- };
- sendRequest("POST", `https://edusp-api.ip.tv/tms/task/${id}/answer`, draft_body, (response) => {
- console.log("[DEBUG] DRAFT_DONE, RESPONSE: ", response.responseText);
- let response_json = JSON.parse(response.responseText);
- let task_id = response_json.id;
- let get_anwsers_url = `https://edusp-api.ip.tv/tms/task/${id}/answer/${task_id}?with_task=true&with_genre=true&with_questions=true&with_assessed_skills=true`;
- console.log("[DEBUG] Getting Answers...");
- sendRequest("GET", get_anwsers_url, null, (response) => {
- console.log(`[DEBUG] Get Answers request received response`);
- console.log(`[DEBUG] GET ANSWERS RESPONSE: ${response.responseText}`);
- let get_anwsers_response = JSON.parse(response.responseText);
- let send_anwsers_body = transformJson(get_anwsers_response);
- console.log(`[DEBUG] Sending Answers... BODY: ${JSON.stringify(send_anwsers_body)}`);
- sendRequest("PUT", `https://edusp-api.ip.tv/tms/task/${id}/answer/${task_id}`, send_anwsers_body, (response) => {
- if (response.status !== 200) {
- alert(`[ERROR] An error occurred while sending the answers. RESPONSE: ${response.responseText}`);
- }
- console.log(`[DEBUG] Answers Sent! RESPONSE: ${response.responseText}`);
- const watermark = document.querySelector('.MuiTypography-root.MuiTypography-body1.css-1exusee');
- if (watermark) {
- watermark.textContent = 'Rafael G. Nogueira';
- watermark.style.fontSize = '70px';
- setTimeout(() => {
- document.querySelector('button.MuiButtonBase-root.MuiButton-root.MuiLoadingButton-root.MuiButton-contained.MuiButton-containedInherit.MuiButton-sizeMedium.MuiButton-containedSizeMedium.MuiButton-colorInherit.css-prsfpd').click();
- }, 500);
- }
- });
- });
- });
- }
- }
- });
- observer.observe(document.body, {
- childList: true,
- subtree: true
- });
- })();