Add current consulate to popup

This commit is contained in:
Maks Snegov 2024-04-23 01:42:15 -07:00
parent 9b820859c7
commit 363e842b56

View File

@ -16,6 +16,7 @@ let config = {
countdown: null, countdown: null,
apptId: null, apptId: null,
apptDate: null, apptDate: null,
apptConsulate: null,
signinAttempts: null, signinAttempts: null,
consulates: null, consulates: null,
deltaAppt: null, deltaAppt: null,
@ -168,6 +169,7 @@ async function runner() {
config.signinAttempts = result['__signinAttempts'] || 0; config.signinAttempts = result['__signinAttempts'] || 0;
config.apptId = result['__apptId'] || null; config.apptId = result['__apptId'] || null;
config.apptDate = result['__apptDate'] || null; config.apptDate = result['__apptDate'] || null;
config.apptConsulate = result['__apptConsulate'] || null;
config.consulates = result['__consulates'] || null; config.consulates = result['__consulates'] || null;
config.deltaAppt = result['__deltaAppt'] || 1; config.deltaAppt = result['__deltaAppt'] || 1;
config.deltaNow = result['__deltaNow'] || 1; config.deltaNow = result['__deltaNow'] || 1;
@ -308,24 +310,29 @@ 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 apptInfoCard = document.querySelector("p.consular-appt [href*='" + config.apptId + "']").parentNode.parentNode.parentNode
if (!apptInfo.querySelector("h4").innerText.match(/Attend Appointment/)) { if (!apptInfoCard.querySelector("h4").innerText.match(/Attend Appointment/)) {
msg = 'Appointment not available'; msg = 'Appointment not available';
console.log(msg); console.log(msg);
await chrome.storage.local.set({ "__status": msg }); await chrome.storage.local.set({ "__status": msg });
isRunning = false; isRunning = false;
return; return;
} }
let apptDate = new Date(apptInfo.querySelector("p.consular-appt").innerText.match(/\d{1,2} \w+, \d{4}/)[0]); let apptInfo = apptInfoCard.querySelector("p.consular-appt").innerText;
let apptConsulate = (apptInfo.match(/at (\w+)/) || [])[1];
let apptDate = new Date(apptInfo.match(/\d{1,2} \w+, \d{4}/)[0]);
apptDate = apptDate.toISOString().slice(0, 10); apptDate = apptDate.toISOString().slice(0, 10);
if (apptDate && apptDate != config.apptDate) { if (apptDate && apptConsulate
console.log(`New appointment date: ${apptDate}, old: ${config.apptDate}`); && (apptDate != config.apptDate || apptConsulate != config.apptConsulate)) {
console.log(`New appointment date: ${apptDate} at ${apptConsulate}, old: ${config.apptDate} at ${config.apptConsulate}`);
config.apptDate = apptDate; config.apptDate = apptDate;
config.apptConsulate = apptConsulate;
await chrome.storage.local.set({ "__apptDate": apptDate }); await chrome.storage.local.set({ "__apptDate": apptDate });
await chrome.storage.local.set({ "__apptConsulate": apptConsulate });
} }
// go to appointment page // go to appointment page
let apptLink = apptInfo.querySelector("p.consular-appt [href]").getAttribute("href").replace("/addresses/consulate", "/appointment"); let apptLink = apptInfoCard.querySelector("p.consular-appt [href]").getAttribute("href").replace("/addresses/consulate", "/appointment");
window.location.href = apptLink; window.location.href = apptLink;
await delay(PAGE_WAIT_TIME); await delay(PAGE_WAIT_TIME);
} }
@ -481,6 +488,8 @@ async function runner() {
await delay(PAGE_WAIT_TIME); await delay(PAGE_WAIT_TIME);
config.apptDate = null; config.apptDate = null;
await chrome.storage.local.set({"__apptDate": config.apptDate}); await chrome.storage.local.set({"__apptDate": config.apptDate});
config.apptConsulate = null;
await chrome.storage.local.set({"__apptConsulate": config.apptConsulate});
console.log('Rescheduled successfully'); console.log('Rescheduled successfully');
window.location = window.location.pathname.replace(/schedule.*/g, ""); window.location = window.location.pathname.replace(/schedule.*/g, "");
await delay(PAGE_WAIT_TIME); await delay(PAGE_WAIT_TIME);