Auto commit: 2026-02-15T02:06:55.964Z
This commit is contained in:
parent
0006691f0c
commit
d0437c1d84
@ -1,27 +0,0 @@
|
|||||||
<?php
|
|
||||||
require_once __DIR__ . '/includes/pexels.php';
|
|
||||||
|
|
||||||
$programs = [
|
|
||||||
'techno_sunrise' => 'techno club sunrise',
|
|
||||||
'vocal_house' => 'vocal house music dj',
|
|
||||||
'lili_guest' => 'professional dj booth',
|
|
||||||
'deep_night' => 'night city lights chill'
|
|
||||||
];
|
|
||||||
|
|
||||||
foreach ($programs as $id => $query) {
|
|
||||||
echo "Fetching image for $id ($query)...\n";
|
|
||||||
$url = 'https://api.pexels.com/v1/search?query=' . urlencode($query) . '&orientation=landscape&per_page=1&page=1';
|
|
||||||
$data = pexels_get($url);
|
|
||||||
if ($data && !empty($data['photos'])) {
|
|
||||||
$photo = $data['photos'][0];
|
|
||||||
$src = $photo['src']['large2x'] ?? $photo['src']['large'];
|
|
||||||
$dest = __DIR__ . '/assets/images/programs/' . $id . '.jpg';
|
|
||||||
if (download_to($src, $dest)) {
|
|
||||||
echo "Saved to $dest\n";
|
|
||||||
} else {
|
|
||||||
echo "Failed to download $src\n";
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
echo "No photos found for $query\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
28
index.php
28
index.php
@ -15,25 +15,31 @@ $schedule = [
|
|||||||
[
|
[
|
||||||
'time' => '14:00',
|
'time' => '14:00',
|
||||||
'name' => 'Techno Sunrise',
|
'name' => 'Techno Sunrise',
|
||||||
'desc' => 'Comienza el día con los ritmos más puros y energéticos del techno underground.'
|
'desc' => 'Comienza el día con los ritmos más puros y energéticos del techno underground.',
|
||||||
|
'image' => 'assets/images/programs/techno_sunrise.jpg'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'time' => '16:30',
|
'time' => '16:30',
|
||||||
'name' => 'Vocal House Sessions',
|
'name' => 'Vocal House Sessions',
|
||||||
'desc' => 'Una selección exquisita de house melódico con las voces más cautivadoras.'
|
'desc' => 'Una selección exquisita de house melódico con las voces más cautivadoras.',
|
||||||
|
'image' => 'assets/images/programs/vocal_house.jpg'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'time' => '19:00',
|
'time' => '19:00',
|
||||||
'name' => 'Lili Special Guest',
|
'name' => 'Lili Special Guest',
|
||||||
'desc' => 'Cada semana, un invitado especial nos trae su visión única de la pista de baile.'
|
'desc' => 'Cada semana, un invitado especial nos trae su visión única de la pista de baile.',
|
||||||
|
'image' => 'assets/images/programs/lili_guest.jpg'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'time' => '21:00',
|
'time' => '21:00',
|
||||||
'name' => 'Deep Night Vibes',
|
'name' => 'Deep Night Vibes',
|
||||||
'desc' => 'Sonidos profundos y envolventes para acompañar la calma de la noche.'
|
'desc' => 'Sonidos profundos y envolventes para acompañar la calma de la noche.',
|
||||||
|
'image' => 'assets/images/programs/deep_night.jpg'
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
$defaultStudioImage = 'assets/pasted-20260215-020116-2dc16355.jpg';
|
||||||
|
|
||||||
function get_live_index($schedule) {
|
function get_live_index($schedule) {
|
||||||
$current = date('H:i');
|
$current = date('H:i');
|
||||||
$count = count($schedule);
|
$count = count($schedule);
|
||||||
@ -711,7 +717,7 @@ $liveIndex = get_live_index($schedule);
|
|||||||
<div class="studio-tag">
|
<div class="studio-tag">
|
||||||
<span class="live-dot"></span> <span id="studio-program-name"><?= ($liveIndex !== -1) ? htmlspecialchars($schedule[$liveIndex]['name']) : 'Directo desde el estudio' ?></span>
|
<span class="live-dot"></span> <span id="studio-program-name"><?= ($liveIndex !== -1) ? htmlspecialchars($schedule[$liveIndex]['name']) : 'Directo desde el estudio' ?></span>
|
||||||
</div>
|
</div>
|
||||||
<img src="assets/pasted-20260215-020116-2dc16355.jpg?v=<?php echo time(); ?>" alt="Studio Live" class="studio-photo">
|
<img id="studio-photo" src="<?= ($liveIndex !== -1 && !empty($schedule[$liveIndex]['image'])) ? $schedule[$liveIndex]['image'] : $defaultStudioImage ?>?v=<?php echo time(); ?>" alt="Studio Live" class="studio-photo">
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@ -926,6 +932,8 @@ $liveIndex = get_live_index($schedule);
|
|||||||
|
|
||||||
const items = document.querySelectorAll('.program-item');
|
const items = document.querySelectorAll('.program-item');
|
||||||
const studioProgramName = document.getElementById('studio-program-name');
|
const studioProgramName = document.getElementById('studio-program-name');
|
||||||
|
const studioPhoto = document.getElementById('studio-photo');
|
||||||
|
const defaultStudioImage = 'assets/pasted-20260215-020116-2dc16355.jpg';
|
||||||
|
|
||||||
items.forEach((item, index) => {
|
items.forEach((item, index) => {
|
||||||
if (index === liveIndex) {
|
if (index === liveIndex) {
|
||||||
@ -937,8 +945,18 @@ $liveIndex = get_live_index($schedule);
|
|||||||
|
|
||||||
if (studioProgramName && liveIndex !== -1) {
|
if (studioProgramName && liveIndex !== -1) {
|
||||||
studioProgramName.textContent = schedule[liveIndex].name;
|
studioProgramName.textContent = schedule[liveIndex].name;
|
||||||
|
if (studioPhoto && schedule[liveIndex].image) {
|
||||||
|
// Update image if it's different to avoid flickering
|
||||||
|
const newSrc = schedule[liveIndex].image + '?v=' + new Date().getTime();
|
||||||
|
if (!studioPhoto.src.includes(schedule[liveIndex].image)) {
|
||||||
|
studioPhoto.src = newSrc;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (studioProgramName) {
|
} else if (studioProgramName) {
|
||||||
studioProgramName.textContent = 'Directo desde el estudio';
|
studioProgramName.textContent = 'Directo desde el estudio';
|
||||||
|
if (studioPhoto) {
|
||||||
|
studioPhoto.src = defaultStudioImage + '?v=' + new Date().getTime();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user