Spaces:
Running
Running
File size: 3,761 Bytes
ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 a12efc5 cee372b ce81e14 cee372b ce81e14 a12efc5 ce81e14 a12efc5 ce81e14 cee372b ce81e14 cee372b ce81e14 cee372b ce81e14 a12efc5 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 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
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)
# Load and encode bg image
with open("bg.png", "rb") as img_file:
b64_bg_img = base64.b64encode(img_file.read()).decode()
# Function to fetch one entry
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.92);
padding: 20px;
border-radius: 18px;
max-width: 800px;
margin: 0 auto 30px auto;
box-shadow: 0 0 20px #ab71f7;
color: #ffffff;
font-family: 'Segoe UI', sans-serif;
animation: fadeIn 1.5s ease forwards;
text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);
}}
pre {{
background: #111827;
color: #e0f2fe;
padding: 12px;
border-radius: 10px;
font-size: 0.95rem;
overflow-x: auto;
box-shadow: 0 0 10px rgba(255,255,255,0.08);
}}
@keyframes fadeIn {{
from {{ opacity: 0; transform: translateY(20px); }}
to {{ opacity: 1; transform: translateY(0); }}
}}
@media screen and (max-width: 600px) {{
.content {{
padding: 16px;
font-size: 0.95rem;
}}
h2 {{
font-size: 1.5rem;
}}
pre {{
font-size: 0.85rem;
}}
}}
</style>
"""
# CSS with responsive background
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;
}}
"""
# Gradio app
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()
|