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