-
Analyzing your requirements and generating your app…
-
-
Loading…
+
+
+ {{ config.title }}
+ MÚSICA 24/7
+
+
+
-
AppWizzy AI is collecting your requirements and applying the first changes.
-
This page will refresh automatically as the plan is implemented.
-
- Runtime: Django {{ django_version }} · Python {{ python_version }}
- — UTC {{ current_time|date:"Y-m-d H:i:s" }}
-
-
-
-
-{% endblock %}
\ No newline at end of file
+
+
+
+
Presiona Play para escuchar
+
+
+
+
+
+
+
+
Admin Panel
+
+
+{% endblock %}
diff --git a/core/views.py b/core/views.py
index c9aed12..51fce99 100644
--- a/core/views.py
+++ b/core/views.py
@@ -1,25 +1,23 @@
import os
-import platform
-
-from django import get_version as django_version
from django.shortcuts import render
-from django.utils import timezone
-
+from .models import RadioConfig
def home(request):
- """Render the landing screen with loader and environment details."""
- host_name = request.get_host().lower()
- agent_brand = "AppWizzy" if host_name == "appwizzy.com" else "Flatlogic"
- now = timezone.now()
+ """Render the landing screen for La Morenita Radio."""
+ config = RadioConfig.objects.first()
+
+ # Provide default data if not configured in admin yet
+ if not config:
+ config = {
+ "title": "La Morenita Radio",
+ "stream_url": "https://streaming.hostpannel.lat:8054/stream",
+ "whatsapp_number": "+52 844 218 8814",
+ "facebook_url": "https://www.facebook.com/profile.php?id=61583511337947",
+ "tiktok_url": "https://www.tiktok.com/@chikipapiradio",
+ }
context = {
- "project_name": "New Style",
- "agent_brand": agent_brand,
- "django_version": django_version(),
- "python_version": platform.python_version(),
- "current_time": now,
- "host_name": host_name,
- "project_description": os.getenv("PROJECT_DESCRIPTION", ""),
- "project_image_url": os.getenv("PROJECT_IMAGE_URL", ""),
+ "config": config,
+ "project_description": os.getenv("PROJECT_DESCRIPTION", "La Morenita Radio - Música 24/7"),
}
return render(request, "core/index.html", context)
diff --git a/static/css/custom.css b/static/css/custom.css
index 925f6ed..b76baee 100644
--- a/static/css/custom.css
+++ b/static/css/custom.css
@@ -1,4 +1,149 @@
-/* Custom styles for the application */
-body {
- font-family: system-ui, -apple-system, sans-serif;
+@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Open+Sans:wght@400;600&display=swap');
+
+:root {
+ --primary-black: #0a0a0a;
+ --primary-red: #ff0000;
+ --primary-yellow: #ffcc00;
+ --text-white: #ffffff;
+ --bg-gradient: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%);
}
+
+body {
+ margin: 0;
+ padding: 0;
+ font-family: 'Open Sans', sans-serif;
+ background: var(--bg-gradient);
+ color: var(--text-white);
+ min-height: 100vh;
+ overflow-x: hidden;
+}
+
+h1, h2, h3, .brand-font {
+ font-family: 'Montserrat', sans-serif;
+ text-transform: uppercase;
+ font-weight: 700;
+}
+
+/* Radio Hub Layout */
+.radio-container {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 2rem;
+ text-align: center;
+ max-width: 600px;
+ margin: 0 auto;
+}
+
+/* Rotating Disc Animation */
+.disc-container {
+ position: relative;
+ width: 250px;
+ height: 250px;
+ margin: 2rem 0;
+}
+
+.disc {
+ width: 100%;
+ height: 100%;
+ border-radius: 50%;
+ background: radial-gradient(circle, #333 10%, #111 20%, #000 70%);
+ border: 5px solid #222;
+ box-shadow: 0 0 30px rgba(0,0,0,0.5);
+ position: relative;
+ animation: rotate 10s linear infinite;
+ animation-play-state: paused;
+}
+
+.disc.playing {
+ animation-play-state: running;
+}
+
+.disc::after {
+ content: '';
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ width: 80px;
+ height: 80px;
+ background: var(--primary-red);
+ border-radius: 50%;
+ border: 4px solid var(--primary-yellow);
+ background-image: url('https://via.placeholder.com/80?text=La+Morenita'); /* Placeholder for Logo */
+ background-size: cover;
+}
+
+@keyframes rotate {
+ from { transform: rotate(0deg); }
+ to { transform: rotate(360deg); }
+}
+
+/* Player Controls */
+.controls {
+ margin: 2rem 0;
+}
+
+.btn-play {
+ background: var(--primary-red);
+ border: none;
+ color: white;
+ width: 80px;
+ height: 80px;
+ border-radius: 50%;
+ font-size: 2rem;
+ cursor: pointer;
+ transition: transform 0.2s, background 0.3s;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ box-shadow: 0 4px 15px rgba(255, 0, 0, 0.3);
+}
+
+.btn-play:hover {
+ transform: scale(1.1);
+ background: #cc0000;
+}
+
+/* Social Icons */
+.social-links {
+ display: flex;
+ gap: 1.5rem;
+ margin-top: 2rem;
+}
+
+.social-icon {
+ width: 50px;
+ height: 50px;
+ border-radius: 50%;
+ background: rgba(255,255,255,0.1);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: var(--primary-yellow);
+ font-size: 1.5rem;
+ text-decoration: none;
+ transition: background 0.3s, color 0.3s, transform 0.2s;
+ border: 1px solid rgba(255, 204, 0, 0.3);
+}
+
+.social-icon:hover {
+ background: var(--primary-yellow);
+ color: var(--primary-black);
+ transform: translateY(-5px);
+}
+
+.whatsapp:hover { background: #25D366; border-color: #25D366; color: white; }
+.facebook:hover { background: #1877F2; border-color: #1877F2; color: white; }
+.tiktok:hover { background: #010101; border-color: #010101; color: white; }
+
+/* Admin Link */
+.admin-link {
+ position: fixed;
+ bottom: 1rem;
+ right: 1rem;
+ font-size: 0.8rem;
+ color: rgba(255,255,255,0.3);
+ text-decoration: none;
+}
\ No newline at end of file
diff --git a/staticfiles/css/custom.css b/staticfiles/css/custom.css
index 108056f..b76baee 100644
--- a/staticfiles/css/custom.css
+++ b/staticfiles/css/custom.css
@@ -1,21 +1,149 @@
+@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Open+Sans:wght@400;600&display=swap');
:root {
- --bg-color-start: #6a11cb;
- --bg-color-end: #2575fc;
- --text-color: #ffffff;
- --card-bg-color: rgba(255, 255, 255, 0.01);
- --card-border-color: rgba(255, 255, 255, 0.1);
+ --primary-black: #0a0a0a;
+ --primary-red: #ff0000;
+ --primary-yellow: #ffcc00;
+ --text-white: #ffffff;
+ --bg-gradient: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%);
}
+
body {
margin: 0;
- font-family: 'Inter', sans-serif;
- background: linear-gradient(45deg, var(--bg-color-start), var(--bg-color-end));
- color: var(--text-color);
- display: flex;
- justify-content: center;
- align-items: center;
+ padding: 0;
+ font-family: 'Open Sans', sans-serif;
+ background: var(--bg-gradient);
+ color: var(--text-white);
min-height: 100vh;
- text-align: center;
- overflow: hidden;
- position: relative;
+ overflow-x: hidden;
}
+
+h1, h2, h3, .brand-font {
+ font-family: 'Montserrat', sans-serif;
+ text-transform: uppercase;
+ font-weight: 700;
+}
+
+/* Radio Hub Layout */
+.radio-container {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 2rem;
+ text-align: center;
+ max-width: 600px;
+ margin: 0 auto;
+}
+
+/* Rotating Disc Animation */
+.disc-container {
+ position: relative;
+ width: 250px;
+ height: 250px;
+ margin: 2rem 0;
+}
+
+.disc {
+ width: 100%;
+ height: 100%;
+ border-radius: 50%;
+ background: radial-gradient(circle, #333 10%, #111 20%, #000 70%);
+ border: 5px solid #222;
+ box-shadow: 0 0 30px rgba(0,0,0,0.5);
+ position: relative;
+ animation: rotate 10s linear infinite;
+ animation-play-state: paused;
+}
+
+.disc.playing {
+ animation-play-state: running;
+}
+
+.disc::after {
+ content: '';
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ width: 80px;
+ height: 80px;
+ background: var(--primary-red);
+ border-radius: 50%;
+ border: 4px solid var(--primary-yellow);
+ background-image: url('https://via.placeholder.com/80?text=La+Morenita'); /* Placeholder for Logo */
+ background-size: cover;
+}
+
+@keyframes rotate {
+ from { transform: rotate(0deg); }
+ to { transform: rotate(360deg); }
+}
+
+/* Player Controls */
+.controls {
+ margin: 2rem 0;
+}
+
+.btn-play {
+ background: var(--primary-red);
+ border: none;
+ color: white;
+ width: 80px;
+ height: 80px;
+ border-radius: 50%;
+ font-size: 2rem;
+ cursor: pointer;
+ transition: transform 0.2s, background 0.3s;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ box-shadow: 0 4px 15px rgba(255, 0, 0, 0.3);
+}
+
+.btn-play:hover {
+ transform: scale(1.1);
+ background: #cc0000;
+}
+
+/* Social Icons */
+.social-links {
+ display: flex;
+ gap: 1.5rem;
+ margin-top: 2rem;
+}
+
+.social-icon {
+ width: 50px;
+ height: 50px;
+ border-radius: 50%;
+ background: rgba(255,255,255,0.1);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: var(--primary-yellow);
+ font-size: 1.5rem;
+ text-decoration: none;
+ transition: background 0.3s, color 0.3s, transform 0.2s;
+ border: 1px solid rgba(255, 204, 0, 0.3);
+}
+
+.social-icon:hover {
+ background: var(--primary-yellow);
+ color: var(--primary-black);
+ transform: translateY(-5px);
+}
+
+.whatsapp:hover { background: #25D366; border-color: #25D366; color: white; }
+.facebook:hover { background: #1877F2; border-color: #1877F2; color: white; }
+.tiktok:hover { background: #010101; border-color: #010101; color: white; }
+
+/* Admin Link */
+.admin-link {
+ position: fixed;
+ bottom: 1rem;
+ right: 1rem;
+ font-size: 0.8rem;
+ color: rgba(255,255,255,0.3);
+ text-decoration: none;
+}
\ No newline at end of file