Projdi ze siti !

try to take over the world!

目前为 2020-03-04 提交的版本。查看 最新版本

// ==UserScript==
// @name         Projdi ze siti !
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://programovaciweb.tk
// @grant        none
// ==/UserScript==

(function() {

const showbar = document.createElement("p");
showbar.style.position = "absolute"
showbar.style.bottom = "10px";
showbar.style.right = "10px"
showbar.style.zIndex = "100000000"
showbar.style.color="black"
    showbar.style.background="white"

showbar.innerText= "ahoj"
    document.body.appendChild(showbar);

showbar.style.display="none";



let barshow = false;
document.body.onkeypress = function(event){
var x = event.key;

    console.log(x);
    if(x == "f"){
    barshow = !barshow;
    showbar.style.display = barshow ? "block" : "none";
    }}








    let showanswers = "";
    // @match        https://assessment.netacad.net/virtuoso/delivery/pub-doc/2.0/assessment/*
    fetch('https://api.jsonbin.io/b/5e5fef8e763fa966d40f0ed3').then(v => v.json()).then(answers => {
        console.log(answers)
    document.onclick = function({target}){
            console.log(target.innerText)
        const questions = answers.map(v => v.title);
        //showanswers = answers.filter(({title,ans}) => title === target.innerText).sort()[0]
        let qindex = findBestMatch(target.innerText,questions).bestMatchIndex
        showanswers = answers[qindex].ans;
        showbar.innerText = showanswers
        console.log(showanswers)
    }
})

    // Your code here...
})();



function compareTwoStrings(first, second) {
	first = first.replace(/\s+/g, '')
	second = second.replace(/\s+/g, '')

	if (!first.length && !second.length) return 1;                   // if both are empty strings
	if (!first.length || !second.length) return 0;                   // if only one is empty string
	if (first === second) return 1;       							 // identical
	if (first.length === 1 && second.length === 1) return 0;         // both are 1-letter strings
	if (first.length < 2 || second.length < 2) return 0;			 // if either is a 1-letter string

	let firstBigrams = new Map();
	for (let i = 0; i < first.length - 1; i++) {
		const bigram = first.substring(i, i + 2);
		const count = firstBigrams.has(bigram)
			? firstBigrams.get(bigram) + 1
			: 1;

		firstBigrams.set(bigram, count);
	};

	let intersectionSize = 0;
	for (let i = 0; i < second.length - 1; i++) {
		const bigram = second.substring(i, i + 2);
		const count = firstBigrams.has(bigram)
			? firstBigrams.get(bigram)
			: 0;

		if (count > 0) {
			firstBigrams.set(bigram, count - 1);
			intersectionSize++;
		}
	}

	return (2.0 * intersectionSize) / (first.length + second.length - 2);
}

function findBestMatch(mainString, targetStrings) {
	if (!areArgsValid(mainString, targetStrings)) throw new Error('Bad arguments: First argument should be a string, second should be an array of strings');

	const ratings = [];
	let bestMatchIndex = 0;

	for (let i = 0; i < targetStrings.length; i++) {
		const currentTargetString = targetStrings[i];
		const currentRating = compareTwoStrings(mainString, currentTargetString)
		ratings.push({target: currentTargetString, rating: currentRating})
		if (currentRating > ratings[bestMatchIndex].rating) {
			bestMatchIndex = i
		}
	}


	const bestMatch = ratings[bestMatchIndex]

	return { ratings, bestMatch, bestMatchIndex };
}

function areArgsValid(mainString, targetStrings) {
	if (typeof mainString !== 'string') return false;
	if (!Array.isArray(targetStrings)) return false;
	if (!targetStrings.length) return false;
	if (targetStrings.find(s => typeof s !== 'string')) return false;
	return true;
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址