PageSourceSearch

https://superdjradio.hu/assets/js/schedule.js?v=2026100104

js superdjradio.hu collected 2026-10-08 09:22:24 UTC 3,523 bytes, 85 lines download raw bytes

1const SCHEDULE_URL = 'https://embed.vrapro.hu/json/?radio=6egls0eefa9a5747eab2dab995b81d8d&plugin=broadcasterweek&next=';
2const SCHEDULE_DAYS = ['hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat', 'vasárnap'];
3
4function scheduleEscape(text) {
5    const div = document.createElement('div');
6    div.textContent = text == null ? '' : text;
7    return div.innerHTML;
8}
9
10// Időbélyeg átváltása a rádió időzónájára
11function scheduleDate(timestamp, timezone) {
12    return new Date(Date.parse(new Date(timestamp * 1000).toLocaleString('en-US', { timeZone: timezone })));
13}
14
15function scheduleItem(show, time) {
16    const avatar = show.avatar && show.avatar !== '' ? show.avatar : 'assets/images/logosdr.png';
17    return `
18        <div class="schedule-item">
19            <img class="schedule-item-img" src="${scheduleEscape(avatar)}" alt="${scheduleEscape(show.title)}">
20            <div class="schedule-item-main">
21                <div class="schedule-item-head">
22                    <span class="schedule-item-title">${scheduleEscape(show.title)}</span>
23                    <span class="schedule-item-time">${time}</span>
24                </div>
25                <p class="schedule-item-desc">${scheduleEscape(show.description)}</p>
26                <div class="schedule-item-host">${scheduleEscape(show.user)}</div>
27            </div>
28        </div>`;
29}
30
31// day: 1-7 = hétfő-vasárnap, 0 = mai nap
32function loadSchedule(day) {
33    const container = document.getElementById('schedule');
34    if (!container) return;
35
36    fetch(SCHEDULE_URL + day)
37        .then(response => response.json())
38        .then(data => {
39            const week = data.broadcasterweek;
40            const weekday = scheduleDate(week.next_time, week.timezone).getDay();
41            const active = weekday === 0 ? 6 : weekday - 1;
42
43            const tabs = SCHEDULE_DAYS.map((name, i) =>
44                `<button type="button" class="schedule-tab${i === active ? ' active' : ''}" data-day="${i + 1}">${name}</button>`
45            ).join('');
46
47            let items = '';
48            if (week.status_db == 0) {
49                // Nincs beosztott műsor, az egész napos alapértelmezett jelenik meg
50                const now = scheduleDate(week.now_time, week.timezone);
51                items = scheduleItem(week.tim, `${now.getHours()}:00 - 24:00`);
52            } else {
53                for (let i = 1; i <= week.status_db; i++) {
54                    const show = week.tim['time_' + i];
55                    const start = scheduleDate(show.time, week.timezone).getHours();
56                    const end = show.timeend
57                        ? scheduleDate(show.timeend, week.timezone).getHours()
58                        : start + parseInt(week.status);
59                    items += scheduleItem(show, `${start}:00 - ${end}:00`);
60                }
61            }
62
63            container.innerHTML = `
64                <div class="schedule-tabs">${tabs}</div>
65                <div class="schedule-list">${items}</div>`;
66        })
67        .catch(error => {
68            console.error('Error fetching schedule data:', error);
69            container.innerHTML = '<p>A műsorrend jelenleg nem érhető el.</p>';
70        });
71}
72
73function initializeSchedule() {
74    loadSchedule(0);
75}
76
77// A tartalom AJAX-szal cserélődik, ezért delegált eseménykezelés
78document.addEventListener('click', function (e) {
79    const tab = e.target.closest('.schedule-tab');
80    if (tab) {
81        loadSchedule(tab.dataset.day);
82    }
83});
84
85initializeSchedule();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.