Astro_Info / app.py
arpit13's picture
Update app.py
c6ebf38 verified
raw
history blame
3.48 kB
import gradio as gr
import requests
API_KEY = "d6cf6f2e-301e-5f63-a988-b0a3aefd0896"
def fetch_astrology_data(endpoint, dob, tob, lat, lon, tz):
url = f"https://api.vedicastroapi.com/v3-json/{endpoint}?dob={dob}&tob={tob}&lat={lat}&lon={lon}&tz={tz}&api_key={API_KEY}&lang=en"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
if data.get("status") == 200 and "response" in data:
return data["response"]
else:
return "Invalid response from API."
else:
return f"Error fetching data: {response.status_code}"
def check_dosha(dosha_type, name, dob, tob, lat, lon, tz):
response = fetch_astrology_data(f"dosha/{dosha_type}", dob, tob, lat, lon, tz)
if isinstance(response, str):
return response
factors = response.get("factors", {})
dosha_present = response.get("is_dosha_present", False)
bot_response = response.get("bot_response", "No information available")
score = response.get("score", "N/A")
readable_response = f"""
**{dosha_type.replace('-', ' ').title()} Analysis for {name}:**
**Dosha Presence:** {'Yes' if dosha_present else 'No'}
**Score:** {score}%
**Detailed Analysis:**
- **Moon Influence:** {factors.get('moon', 'Not mentioned')}
- **Saturn Influence:** {factors.get('saturn', 'Not mentioned')}
- **Rahu Influence:** {factors.get('rahu', 'Not mentioned')}
**Astrological Suggestion:** {bot_response}
"""
return readable_response
def check_dasha(dasha_type, name, dob, tob, lat, lon, tz):
response = fetch_astrology_data(f"dashas/{dasha_type}", dob, tob, lat, lon, tz)
if isinstance(response, str):
return response
return f"**{dasha_type.replace('-', ' ').title()} Analysis for {name}:**\n\n" + str(response)
with gr.Blocks() as demo:
gr.Markdown("## Astrology Checker 🪐")
with gr.Row():
name = gr.Textbox(label="Name")
dob = gr.Textbox(label="DOB (DD/MM/YYYY)")
tob = gr.Textbox(label="Time (HH:MM)")
with gr.Row():
lat = gr.Number(label="Latitude")
lon = gr.Number(label="Longitude")
tz = gr.Number(label="Time Zone")
result = gr.Markdown()
with gr.Row():
gr.Button("Mangal Dosh").click(check_dosha, inputs=["mangal-dosh", name, dob, tob, lat, lon, tz], outputs=result)
gr.Button("Kaalsarp Dosh").click(check_dosha, inputs=["kaalsarp-dosh", name, dob, tob, lat, lon, tz], outputs=result)
gr.Button("Manglik Dosh").click(check_dosha, inputs=["manglik-dosh", name, dob, tob, lat, lon, tz], outputs=result)
gr.Button("Pitra Dosh").click(check_dosha, inputs=["pitra-dosh", name, dob, tob, lat, lon, tz], outputs=result)
gr.Button("Papasamaya").click(check_dosha, inputs=["papasamaya", name, dob, tob, lat, lon, tz], outputs=result)
with gr.Row():
gr.Button("Mahadasha").click(check_dasha, inputs=["maha-dasha", name, dob, tob, lat, lon, tz], outputs=result)
gr.Button("Mahadasha Predictions").click(check_dasha, inputs=["maha-dasha-predictions", name, dob, tob, lat, lon, tz], outputs=result)
gr.Button("Antardasha").click(check_dasha, inputs=["antar-dasha", name, dob, tob, lat, lon, tz], outputs=result)
gr.Button("Char Dasha Current").click(check_dasha, inputs=["char-dasha-current", name, dob, tob, lat, lon, tz], outputs=result)
demo.launch()