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