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 ответов

29 просмотров

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

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

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
12
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
вопрос по москвину - не понимаю вот такого вопроса похоже Сколько разных всегда завершающихся функций с типом a -> a -> b -> a -> a можно реализовать? Две функции одинаково...
Fedor
11
Кстати, раз про скачивание файлов разговор зашел) Сделал бота для себя (транскрибирующего и суммаризирующего встречи) но не ожидал что за 2 месяца 10к пользователей набежит😅...
Andrey Obolenskiy
8
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Утра доброго. Просветите пожалуйста. Хочу сделать rest сервер на делфи. Посмотрел 3 фреймворка: dmvc, Mars, mormot. Ни в одном из них не упоминается ассинхронная обработка вхо...
Сергей Бычков
10
возможно для форматирования TimeStampZ нужен другой механизм, не?
Роман Лях (rgreat)
13
Карта сайта