NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name ETIS signs alert // @namespace http://tampermonkey.net/ // @version 0.1 // @copyright True Seeker, 2019 // @description Скрипт для уведомления о новых оценках в ЕТИС'е // @author True Seeker // @grant GM.getValue // @grant GM.setValue // @include https://student.psu.ru/pls/stu_cus_et/stu.signs?p_mode=current // @updateURL https://openuserjs.org/meta/True_Seeker/ETIS_signs_alert.meta.js // @license MIT // ==/UserScript== ( async function() { //document.getElementsByTagName("table")[0].getElementsByTagName("td").item(48).innerText = 50042 var tables, txt, rows,i ,j,savedSign, index; if ( await GM.getValue("first") == undefined || await GM.getValue("first") == false ) { //Если человек заходит впервые alert("Скрипт начнет работу со следующего посещения этой страницы") tables = document.getElementsByTagName("table"); for(i = 0; i < tables.length; i++){ rows = tables[i].getElementsByTagName("td"); } console.log("КОЛЧЕСТВО ВСЕХ ТАБЛИЦ " + tables.length); console.log("ДАННЫЕ ВСЕХ ПОЛЕЙ ТАБЛИЦ "); for(i = 0;i < tables.length; i++){ //Перебор всех таблиц rows = tables[i].getElementsByTagName("td"); for(j = 0;j < (rows.length-4)/9;j++){ //перебор всех строк в текущей таблице if(tables[i].getElementsByTagName("td").item(3 + 9*j) != null){ txt = tables[i].getElementsByTagName("td").item(3 + 9*j).innerText; index = String(i) + ";" + String(j) GM.setValue(index,txt) } else{ index = String(i) + ";" + String(j) GM.setValue(index,null) } } } await GM.setValue("first",true) } else { console.log("Проверка новых оценок") tables = document.getElementsByTagName("table"); for(i = 0;i < tables.length; i++){ //Перебор всех таблиц rows = tables[i].getElementsByTagName("td"); for(j = 0;j < (rows.length-4)/9;j++){ //перебор всех строк в текущей таблице savedSign = await GM.getValue(String(i)+";"+String(j)) if(tables[i].getElementsByTagName("td").item(3 + 9*j).innerText != savedSign){ // проверка совпадения оценки alert("У вас новая оценка"); index = String(i) + ";" + String(j) console.log("ИНДЕКС " + index) console.log("НОВЫЙ ЭЛЕМЕНТ " + tables[i].getElementsByTagName("td").item(3 + 9*j).innerText) GM.setValue(index,String(tables[i].getElementsByTagName("td").item(3 + 9*j).innerText)) } } } } })();