71 lines
2.2 KiB
JavaScript
71 lines
2.2 KiB
JavaScript
// ==UserScript==
|
|
// @name UCheck Completer
|
|
// @namespace http://tampermonkey.net/
|
|
// @version 0.1
|
|
// @description Automatically complete ucheck.utoronto.ca
|
|
// @author UTSG Computer Science Department
|
|
// @include https://ucheck.utoronto.ca/*
|
|
// @icon https://www.google.com/s2/favicons?domain=utoronto.ca
|
|
// @grant none
|
|
// ==/UserScript==
|
|
|
|
// Load JQuery
|
|
function loadJS(url)
|
|
{
|
|
const head = document.getElementsByTagName('head')[0];
|
|
const script = document.createElement('script');
|
|
script.type = 'text/javascript';
|
|
script.src = url;
|
|
script.onload = () => console.log(`${url} loaded.`)
|
|
head.appendChild(script);
|
|
}
|
|
loadJS('https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js')
|
|
|
|
// Report no symptoms on the report symptoms page
|
|
function report()
|
|
{
|
|
// Repeat
|
|
let task = setInterval(() =>
|
|
{
|
|
// Check if it's done
|
|
let submit = $('span:contains(Submit)')
|
|
if (!submit.parent()[0].classList.contains('Mui-disabled'))
|
|
{
|
|
console.log('Done, clicking submit')
|
|
clearInterval(task)
|
|
submit.click()
|
|
}
|
|
|
|
// Click no buttons
|
|
// Old method: select by class (doesn't work because class names are randomized.
|
|
// Array.from(document.querySelectorAll('.sc-qbELi.eWIawQ')).filter(it => it.querySelector('span').innerHTML === 'No').forEach(it => it.click())
|
|
// New method: select by content and filter by color (white means unselected)
|
|
$('span:contains(No)').parent().filter((i, it) => $(it).css('background-color') === 'rgb(255, 255, 255)').click()
|
|
|
|
// Scroll to bottom
|
|
window.scrollTo(0, document.body.scrollHeight);
|
|
|
|
}, 100)
|
|
}
|
|
|
|
// On the right site
|
|
if (window.location.hostname === 'ucheck.utoronto.ca')
|
|
{
|
|
// On home page
|
|
if (window.location.pathname.replace('/', '') === '')
|
|
{
|
|
// Only run if not already green
|
|
if (!$('p:contains(you do not report symptoms)'))
|
|
{
|
|
// Enter into the report screen
|
|
$('.MuiButton-label').click()
|
|
}
|
|
}
|
|
|
|
// Report screen
|
|
if (window.location.pathname === '/questionnaire')
|
|
{
|
|
report()
|
|
}
|
|
}
|