Spaces:
Running
Running
File size: 3,441 Bytes
ce81e14 cee372b ce81e14 cee372b ce81e14 cee372b ce81e14 cee372b ce81e14 cee372b ce81e14 cee372b ce81e14 cee372b ce81e14 cee372b ce81e14 cee372b ce81e14 cee372b ce81e14 cee372b ce81e14 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
import json
import random
import gradio as gr
import base64
# ✅ Load JSON data
with open("gita_techies_18_chapters.json", "r", encoding="utf-8") as f:
gita_for_techies = json.load(f)
# ✅ Encode bg.png as base64
with open("bg.png", "rb") as img_file:
b64_bg_img = base64.b64encode(img_file.read()).decode()
# ✅ Wisdom generator
def get_gita_tech():
entry = random.choice(gita_for_techies)
return f"""
<div class="content">
<h2>📘 Chapter {entry["chapter_number"]}</h2>
<p><b>🌼 Spiritual Meaning (EN):</b><br>{entry["spiritual_meaning_en"]}</p>
<p><b>🪔 ఆధ్యాత్మిక అర్థం (TE):</b><br>{entry["spiritual_meaning_te"]}</p>
<p><b>💻 Tech Meaning (EN):</b><br>{entry["tech_meaning_en"]}</p>
<p><b>🌾 టెక్ అర్థం (TE):</b><br>{entry["tech_meaning_te"]}</p>
<p><b>🧠 Lesson for Techies:</b><br>{entry["lesson_for_techies"]}</p>
<p><b>⚙️ Tech Stack Analogy:</b><br>{entry["tech_stack_analogy"]}</p>
<p><b>🧘 Daily Reminder (EN):</b><br><i>{entry["daily_reminder_en"]}</i></p>
<p><b>🧘 రోజువారీ స్మరణ (TE):</b><br><i>{entry["daily_reminder_te"]}</i></p>
<p><b>🧾 Code Snippet:</b></p>
<pre><code>{entry["code_snippet"]}</code></pre>
<hr style="margin-top: 30px;">
<p style="text-align:center;font-size:0.9rem;">🪷 Made with 💜 by <b>Sreelekha Putta</b></p>
</div>
<style>
.content {{
background: rgba(20, 15, 35, 0.9);
padding: 25px;
border-radius: 16px;
max-width: 800px;
margin: 0 auto 30px auto;
box-shadow: 0 0 25px #ab71f7;
color: #f8e8ff;
font-family: 'Segoe UI', sans-serif;
animation: fadeIn 1.5s ease forwards;
}}
pre {{
background: #1f2937;
color: #a5f3fc;
padding: 12px;
border-radius: 8px;
font-size: 0.95rem;
overflow-x: auto;
}}
h2 {{
color: #d0a8ff;
}}
@keyframes fadeIn {{
from {{ opacity: 0; transform: translateY(20px); }}
to {{ opacity: 1; transform: translateY(0); }}
}}
</style>
"""
# ✅ CSS with background image
css = f"""
body {{
margin: 0;
padding: 20px;
min-height: 100vh;
background-image: url("data:image/png;base64,{b64_bg_img}");
background-size: cover;
background-position: center;
background-repeat: no-repeat;
background-attachment: fixed;
font-family: 'Segoe UI', sans-serif;
}}
body::before {{
content: "";
position: fixed;
inset: 0;
background: rgba(0,0,30,0.7);
z-index: -1;
}}
h1 {{
text-align: center;
color: #e7c1ff;
font-size: 2.5rem;
font-weight: 700;
margin-bottom: 20px;
text-shadow: 0 0 15px #c084fc;
}}
button {{
background-color: #a855f7;
border-radius: 12px;
color: white;
font-weight: 600;
font-size: 1.3rem;
padding: 0.8rem 2.4rem;
border: none;
cursor: pointer;
margin-bottom: 30px;
box-shadow: 0 0 18px #a78bfa88;
}}
button:hover {{
background-color: #d8b4fe;
color: black;
box-shadow: 0 0 25px #f0d0ff;
}}
"""
# ✅ Build UI
with gr.Blocks(css=css) as app:
gr.Markdown("<h1>💻 Bhagavad Gita for Techies 💻</h1>")
output = gr.HTML()
btn = gr.Button("🔁 Get Wisdom Tip")
btn.click(fn=get_gita_tech, outputs=output)
app.launch()
|