Improve status messaging

This commit is contained in:
Maks Snegov 2024-04-22 23:30:55 -07:00
parent 9f5fa888ef
commit c8e0028cb9

View File

@ -23,6 +23,7 @@ let config = {
autobook: null, autobook: null,
}; };
let isRunning = false; let isRunning = false;
let msg = "";
async function delay(ms) { async function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms)); return new Promise(resolve => setTimeout(resolve, ms));
@ -250,8 +251,9 @@ async function runner() {
if (isLoggedOutPage()) { if (isLoggedOutPage()) {
if (!await goToSignInPage()) { if (!await goToSignInPage()) {
console.log('Failed to go to sign in page'); msg = 'Failed to go to sign in page';
await chrome.storage.local.set({ "__status": "failed to go to sign in page" }); console.log(msg);
await chrome.storage.local.set({ "__status": msg });
isRunning = false; isRunning = false;
return; return;
}; };
@ -267,14 +269,16 @@ async function runner() {
} }
// Sign in // Sign in
console.log('Signing in attempt: ' + config.signinAttempts) msg = 'Signing in attempt: ' + config.signinAttempts;
await chrome.storage.local.set({ "__status": "signing in #" + config.signinAttempts }); console.log(msg)
await chrome.storage.local.set({ "__status": msg });
let signedIn = await enterCredentials(); let signedIn = await enterCredentials();
config.signinAttempts += 1; config.signinAttempts += 1;
await chrome.storage.local.set({ "__signinAttempts": config.signinAttempts }); await chrome.storage.local.set({ "__signinAttempts": config.signinAttempts });
if (!signedIn) { if (!signedIn) {
console.log('Sign in failed'); msg = 'Failed to sign in';
await chrome.storage.local.set({ "__status": "sign in failed" }); console.log(msg);
await chrome.storage.local.set({ "__status": msg });
isRunning = false; isRunning = false;
return; return;
}; };
@ -294,8 +298,9 @@ async function runner() {
console.log(`Appointment ID: ${config.apptId}`); console.log(`Appointment ID: ${config.apptId}`);
await chrome.storage.local.set({ "__apptId": config.apptId }); await chrome.storage.local.set({ "__apptId": config.apptId });
} else { } else {
console.log('No appointments found'); msg = 'No appointments found';
await chrome.storage.local.set({ "__status": "no appointment found" }); console.log(msg);
await chrome.storage.local.set({ "__status": msg });
isRunning = false; isRunning = false;
return; return;
} }
@ -304,8 +309,9 @@ async function runner() {
// get current appointment date // get current appointment date
let apptInfo = document.querySelector("p.consular-appt [href*='" + config.apptId + "']").parentNode.parentNode.parentNode let apptInfo = document.querySelector("p.consular-appt [href*='" + config.apptId + "']").parentNode.parentNode.parentNode
if (!apptInfo.querySelector("h4").innerText.match(/Attend Appointment/)) { if (!apptInfo.querySelector("h4").innerText.match(/Attend Appointment/)) {
console.log('Appointment not available'); msg = 'Appointment not available';
await chrome.storage.local.set({ "__status": "appointment not available" }); console.log(msg);
await chrome.storage.local.set({ "__status": msg });
isRunning = false; isRunning = false;
return; return;
} }
@ -333,8 +339,9 @@ async function runner() {
} }
if (!document.getElementById("consulate_date_time")) { if (!document.getElementById("consulate_date_time")) {
console.log('No available appointments'); msg = 'No available appointments';
await chrome.storage.local.set({ "__status": "no available appointments" }); console.log(msg);
await chrome.storage.local.set({ "__status": msg });
isRunning = false; isRunning = false;
return; return;
}; };
@ -354,8 +361,9 @@ async function runner() {
// for each selected consulate check available dates // for each selected consulate check available dates
let selectedConsulates = Object.keys(config.consulates).filter(c => config.consulates[c].isSelected); let selectedConsulates = Object.keys(config.consulates).filter(c => config.consulates[c].isSelected);
if (selectedConsulates.length == 0) { if (selectedConsulates.length == 0) {
console.log('No selected consulates found'); msg = 'No selected consulates found';
await chrome.storage.local.set({ "__status": "no selected consulates" }); console.log(msg);
await chrome.storage.local.set({ "__status": msg });
isRunning = false; isRunning = false;
return; return;
} }
@ -367,16 +375,18 @@ async function runner() {
await chrome.storage.local.set({ "__countdown": config.countdown }); await chrome.storage.local.set({ "__countdown": config.countdown });
if (!availDates) { if (!availDates) {
console.log('Failed to fetch available dates in ' + consulate); msg = `Failed to fetch available dates in ${consulate}`;
await chrome.storage.local.set({ "__status": "no dates in " + consulate }); console.log(msg);
await chrome.storage.local.set({ "__status": msg });
isRunning = false; isRunning = false;
return; return;
} }
// if empty list, either we're banned or non operational hours or dead consulate // if empty list, either we're banned or non operational hours or dead consulate
if (availDates.length == 0) { if (availDates.length == 0) {
console.log(`No available dates in ${consulate}, probably banned`); msg = `No available dates in ${consulate}, probably banned`;
await chrome.storage.local.set({ "__status": "no dates in " + consulate }); console.log(msg);
await chrome.storage.local.set({ "__status": msg });
config.countdown = SOFT_BAN_COUNTDOWN; config.countdown = SOFT_BAN_COUNTDOWN;
await chrome.storage.local.set({ "__countdown": config.countdown }); await chrome.storage.local.set({ "__countdown": config.countdown });
isRunning = false; isRunning = false;
@ -390,8 +400,9 @@ async function runner() {
// filter dates with our requests // filter dates with our requests
let filteredDates = await filterDates(availDates, config.apptDate, config.deltaAppt, config.deltaNow); let filteredDates = await filterDates(availDates, config.apptDate, config.deltaAppt, config.deltaNow);
if (!filteredDates.length) { if (!filteredDates.length) {
console.log('Nothing interesting found in ' + consulate); msg = `No better dates in ${consulate}, currently available ${availDates[0]}`;
await chrome.storage.local.set({ "__status": `Nothing in ${consulate}, best date ${availDates[0]}`}); console.log(msg);
await chrome.storage.local.set({ "__status": msg});
isRunning = false; isRunning = false;
return; return;
} }
@ -407,14 +418,16 @@ async function runner() {
let availTimes = await getAvailableTimes(config.consulates[consulate].id, chosenDate); let availTimes = await getAvailableTimes(config.consulates[consulate].id, chosenDate);
if (!availTimes) { if (!availTimes) {
console.log(`Failed to fetch available timeslots in ${consulate} at ${chosenDate}`); msg = `Failed to fetch available timeslots in ${consulate} at ${chosenDate}`;
await chrome.storage.local.set({ "__status": `failed to fetch timeslots in ${consulate} at ${chosenDate}`}); console.log(msg);
await chrome.storage.local.set({ "__status": msg});
isRunning = false; isRunning = false;
return; return;
} }
if (availTimes.length == 0) { if (availTimes.length == 0) {
console.log(`No timeslots in ${consulate} at ${chosenDate}`); msg = `No timeslots in ${consulate} at ${chosenDate}`;
await chrome.storage.local.set({ "__status": `no timeslots in ${consulate} at ${chosenDate}`}); console.log(msg);
await chrome.storage.local.set({ "__status": msg});
isRunning = false; isRunning = false;
return; return;
} }