169 похожих чатов

Здравствуйте. Сделал такой скрипт для Greasemonkey, помогающий решать тесты на

sdo,rzd.ru.
Как можно укоротить, улучшить этот скрипт?
function similarity(a, b){
if(a.length == 0 || b.length == 0) return 0;
let i, j, matrix = [], bigger = Math.max(a.length, b.length);
for(i = 0; i <= b.length; i++){
matrix[i] = [i];
}
for(j = 0; j <= a.length; j++){
matrix[0][j] = j;
}
for(i = 1; i <= b.length; i++){
for(j = 1; j <= a.length; j++){
if(b.charAt(i-1) == a.charAt(j-1)){
matrix[i][j] = matrix[i-1][j-1];
} else {
matrix[i][j] = Math.min(matrix[i-1][j-1] + 1, Math.min(matrix[i][j-1] + 1, matrix[i-1][j] + 1));
}
}
}
return (bigger - matrix[b.length][a.length]) / bigger;
}
var a = [], rwlib = document.createElement('html'), iframe, q, variants;

function getAnswer(){
q = document.URL.includes('courseitem') ? iframe.querySelector('p').textContent : iframe.querySelector('.question-text').textContent;
variants = document.URL.includes('courseitem') ? iframe.querySelectorAll('.choice-view__rich-text-view.published-rich-text') : iframe.querySelectorAll('td[data-quiz-order-number]');
$.ajax({type: "GET",
url: `https://secret-ocean-49799.herokuapp.com/https://rwlib.net/s?q=${q.split(' ').filter(function(word){return word != "​"}).join('%20')}`,
async: false,
success : function(text)
{
rwlib.innerHTML = text;
}
})


for(elem of rwlib.querySelectorAll('.title > a')){
if (similarity(elem.text.trim(), q) >= 0.85){
$.ajax({type: "GET",
url: `https://secret-ocean-49799.herokuapp.com/https://rwlib.net/sdo/${elem.href.split('/').pop()}`,
async: false,
success : function(text)
{
rwlib.innerHTML = text;
}
});
break;
}
}
let count = 0;
rwlib.querySelector('div.a').querySelectorAll('b').forEach(elem => {
a.push(elem.textContent.toLowerCase())
})

variants.forEach(element => {
if(a.includes(element.textContent.toLowerCase())){
element.style.background='#98FB98'
count += 1;
}
})
if(count < 1){
GM_openInTab(`https://rwlib.net/s?q=${q.split(' ').filter(function(word){return word != "​"}).join('%20')}`)
}
}

function test(){
iframe = document.getElementById('Content');
iframe.onload = function(){
iframe = iframe.contentDocument;
iframe.addEventListener("mousedown", function(e){
if(e.which == 2){
getAnswer()
}
})
}
}

function instruction(){
iframe = document.getElementById('Content').contentDocument;
iframe.addEventListener("mousedown", function(e){
if(e.which == 2){
getAnswer()
}
})
}

window.onload = function(){
if(document.URL.includes('courseitem')){
instruction()
} else{
test()
}
}

2 ответов

60 просмотров

Очень читабельно и удобно каждому) А подсветка кода в телеге будто-бы читает код сама P.s. codepen.com | pastebin.com

а я вот понял что это сарказм только когда взглянул на сам код

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта