bot
unknown
plain_text
a year ago
2.4 kB
7
Indexable
async function checkExamDates(page) {
try {
console.log('Sprawdzanie dostępnych terminów...');
const availableDates = await page.evaluate(() => {
const dates = [];
const rows = document.querySelectorAll('.theory-row');
rows.forEach(row => {
const time = row.querySelector('.exam-time span') ? row.querySelector('.exam-time span').textContent.trim() : '';
const places = parseInt(row.querySelector('.exam-places') ? row.querySelector('.exam-places').textContent.trim() : 0);
const additionalInfo = row.querySelector('.additional-info') ? row.querySelector('.additional-info').textContent.trim() : '';
const button = row.querySelector('button[id^="practiceExamsButton"]');
if (places > 0 && button) {
dates.push({
time,
places,
additionalInfo,
buttonId: button.id
});
}
});
return dates;
});
console.log("Dostępne terminy:", availableDates);
const now = new Date();
const validDates = availableDates.filter(date => {
const examDate = new Date(`${now.getFullYear()}-${now.getMonth() + 1}-${now.getDate()}T${date.time}:00`);
const diffDays = (examDate - now) / (1000 * 60 * 60 * 24);
return diffDays <= config.maxWaitDays && diffDays >= 0;
});
if (validDates.length > 0) {
console.log('Dostępne terminy:', validDates);
await sendDiscordNotification(`Znaleziono dostępne terminy egzaminu: ${validDates.map(date => date.time).join(', ')}`);
for (const date of validDates) {
console.log(`Klikam przycisk dla terminu: ${date.time} - ${date.places} miejsc`);
await page.click(`#${date.buttonId}`);
await page.waitForTimeout(1000);
}
} else {
console.log('Brak dostępnych terminów w ciągu najbliższych 50 dni.');
}
} catch (error) {
console.error('Błąd podczas sprawdzania terminów:', error.message);
}
}
Editor is loading...
Leave a Comment