Генератор Індивідуальних Розкладів КАІ

Згенеруй кращий розклад, який зручніше читати за допомоги цього веб-сайту! Також можна завантажити файл гугл-календаря, який за півгодини до заняття казатиме куди йти.

Security First

Увага: Вся обробка даних здійснюється локально у вашому браузері. Ваші дані ніколи не покидають ваш комп'ютер. Не вірите? Подивіться вихідний код на GitHub! Буду вдячний за зірочку!

1

Вибери свою групу

(це підтягне "спільний" розклад)

Айді групи треба взяти з сайту КАІ, посилання типу https://portal.nau.edu.ua/schedule/group?id=334
Відповідно, на цьому сайті пишемо 334.
2

Витягни дані з індивідуального розкладу

Перейди на сторінку університету з розкладом
Відкрий DevTools (F12) у браузері (це така консолька для розробників) та встав цей код туди:
Якщо ти користуєшся DevTools вперше, то напиши allow pasting перед вставкою.

// Schedule scraper for DevTools console
function scrapeSchedule() {
    const result = [];
    
    // Select all week sections
    const weekSections = document.querySelectorAll('.week-section');
    
    // Process each week section
    weekSections.forEach(weekSection => {
        const weekTitle = weekSection.querySelector('.week-title').textContent.trim();
        
        // Select all schedule cards (days) in this week
        const scheduleCards = weekSection.querySelectorAll('.schedule-card');
        
        // Process each day card
        scheduleCards.forEach(card => {
            const day = card.querySelector('.day').textContent.trim();
            
            // Select all subjects in this day
            const subjects = card.querySelectorAll('.subject');
            
            // Process each subject
            subjects.forEach(subject => {
                const name = subject.querySelector('.subject-name').textContent.trim();
                
                const timeInfo = subject.querySelector('.time');
                const timeText = timeInfo.textContent.trim();
                // Extract time using regex (HH:MM-HH:MM format)
                const timeMatch = timeText.match(/(\d{2}:\d{2})-(\d{2}:\d{2})/);
                
                const typeElement = subject.querySelector('.type');
                const type = typeElement ? typeElement.textContent.trim() : 'Unknown';
                
                if (timeMatch) {
                    result.push({
                        discipline: name,
                        startTime: timeMatch[1],
                        endTime: timeMatch[2],
                        type: type,
                        day: day,
                        week: weekTitle
                    });
                }
            });
        });
    });
    
    return result;
}

// Execute and copy to clipboard
const scrapedData = scrapeSchedule();
const jsonData = JSON.stringify(scrapedData, null, 2);
copy(jsonData);
console.log('Schedule data copied to clipboard!');
console.log(jsonData);
                            

Цей код просто перетворює нутрощі сайту КАІ у формат читаємий комп'ютером (JSON). Таким чином цей сайт об'єднає твій індивідуальний розклад зі спільним для групи. WTF??? На жаль, це найпростіший спосіб витягнути інфу з Digital University...

Якщо ти з телефону, то можеш залишити поле пустим і сайт зробить розклад без вибіркових дисциплін.

3

Встав JSON, який щойно згенерувався сюди: