bot

 avatar
unknown
plain_text
4 months ago
2.4 kB
4
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