// ==UserScript==
// @name LinkedIn Assessment Assistant
// @namespace LinkedIn Assessment Assistant
// @version 2.03
// @description A light weight script to convert LinkedIn assessment questions into a clickable hyperlink to help you pass.
// @author JustSomeGuy
// @include *linkedin.com/in/*
// @include *linkedin.com/skill-assessments/*
// @include *linkedin.com/in/*/detail/assessments/*
// @license MIT
// @grant none
// @downloadURL https://update.greasyfork.icu/scripts/412457/LinkedIn%20Assessment%20Assistant.user.js
// @updateURL https://update.greasyfork.icu/scripts/412457/LinkedIn%20Assessment%20Assistant.meta.js
// ==/UserScript==aaaa
// allow mouse events
(function reStyle(){
var style = ``;
document.head.insertAdjacentHTML("beforeend", style);
})();
// loop convertQuestionToHyperLink()
setInterval(function(){ convertQuestionToHyperLink(); }, 500);
function convertQuestionToHyperLink() {
// get elements
var questionElement = document.querySelectorAll(".sa-assessment-quiz__title-question")[0];
var questionTextElement = document.querySelectorAll(".sa-assessment-quiz__multi-line")[0];
var question = document.querySelectorAll(".sa-assessment-quiz__multi-line span")[0];
var question2 = document.querySelectorAll(".sa-code-block")[0];
var title = document.getElementsByClassName("mt1")[0];
// check if question exists
if (typeof(question) != 'undefined' && question !== null) {
// get question
question = question.innerHTML;
// if it exists, get second part of question
if (typeof(question2) != 'undefined' && question2 !== null) {
question2 = question2.innerHTML;
} else {
question2 = "";
}
//get name of assessment
title = title.innerHTML;
// remove "assessment" from string
title = title.replace("Assessment", "");
// remove leading/trailing spaces
title = title.trim();
var i;
// remove formatting - loop in case of multiple occurrences
for (i = 0; i < 10; i++) {
question = question.replace('','');
question = question.replace('','');
}
// set url question
var urlquestion = htmlDecode(removeFluff(question + question2));
// set search URL
var url = "https://google.com/search?q="+title+' '+urlquestion.split(' ').join('+');
// direct changes to the question breaks the process
// create container for hyperlinked question
var newquestionElement = document.createElement("span");
// create hyperlink
var a = document.createElement("a");
// attach question to new container
var newquestionText = document.createTextNode(question);
// check to see if questionSpan id exists
var questionSpan = document.getElementById("questionSpan");
// set href
a.href = url;
// set target
a.target = '_blank';
// hide existing question container
questionTextElement.style.display = 'none';
// attach new container with clickable hyperlink
newquestionElement.appendChild(a).appendChild(newquestionText);
// set id of new container
newquestionElement.id = "questionSpan";
// remove questionSpan element if it exists
if (typeof(questionSpan) != 'undefined' && questionSpan !== null) {
questionSpan.remove();
}
// add questionSpan element before answers element
questionElement.insertBefore(newquestionElement, questionElement.childNodes[0]);
}
}
function htmlDecode(input) {
var e = document.createElement('div');
e.innerHTML = input;
return e.childNodes[0].nodeValue;
}
function removeFluff(input) {
input = input.replace('In which', 'what');
input = input.replace('Which of the following do you use to', 'solution: How to correctly');
input = input.replace('Which is an example', 'what is');
return input;
}