Spaces:
Sleeping
Sleeping
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() | |