You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Magister-Auto-Login/src/login.js

66 lines
1.5 KiB

const d = document.getElementById.bind(document);
const q = document.querySelector.bind(document);
document.querySelector('img[alt="Magister"]').remove(); // verwijderen van animatie linksboven
// user object moet gemaakt worden vanuit chrome.storage.sync
var snooze = (ms) => new Promise((res) => setTimeout(res, ms));
function login() {
chrome.storage.sync.get(['school', 'number', 'password'], async function (result) {
if (d('scholenkiezer_value')) {
await waitForSel('#scholenkiezer_value');
if (d('scholenkiezer_value') && result.school) {
d('scholenkiezer_value').value = result.school;
d('scholenkiezer_value').dispatchEvent(new Event('input'));
}
await waitForSel('.selected');
if (q('.selected')) {
q('.selected').click();
}
}
await waitForSel('#username');
if (d('username') && result.number) {
d('username').value = result.number;
d('username').dispatchEvent(new Event('input'));
}
await waitForSel('#username_submit');
if (d('username_submit')) {
d('username_submit').click();
}
await waitForSel('#rswp_password');
if (d('rswp_password') && result.password) {
d('rswp_password').value = result.password;
d('rswp_password').dispatchEvent(new Event('input'));
}
await waitForSel('[id*=_submit]');
if (d('rswp_submit')) {
d('rswp_submit').click();
}
});
}
function waitForSel(s) {
return new Promise((res) => {
setInterval(() => {
if (q(s)) {
res();
}
}, 10);
});
}
chrome.storage.sync.get(['enabled'], function (result) {
if (result.enabled) {
login();
}
});