Spaces:
Sleeping
Sleeping
File size: 5,204 Bytes
d61af77 c6ebf38 8916b04 c6ebf38 d61af77 c6ebf38 d61af77 79f91c5 d61af77 79f91c5 c6ebf38 fa17637 c6ebf38 79f91c5 c6ebf38 0efe4b7 47e0838 0efe4b7 47e0838 0efe4b7 47e0838 0efe4b7 47e0838 0efe4b7 47e0838 0efe4b7 fa17637 79f91c5 d61af77 8916b04 44dc108 8916b04 47e0838 d61af77 44dc108 fa17637 47e0838 d61af77 c6ebf38 d61af77 79f91c5 4d2567b 8916b04 c6ebf38 79f91c5 c6ebf38 8916b04 c6ebf38 4d2567b c6ebf38 8916b04 fa17637 c6ebf38 |
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 |
import gradio as gr
import requests
API_KEY = "d6cf6f2e-301e-5f63-a988-b0a3aefd0896"
# Function to fetch astrology data
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 f"Invalid response from API: {data.get('message', 'No message provided')}"
else:
return f"Error fetching data: {response.status_code} - {response.text}"
# Function to check Dosha
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 gr.Markdown(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 gr.Markdown(readable_response)
# Function to check Dasha
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 gr.Markdown(response)
# Extracting Mahadasha and its order details
mahadasha = response.get("mahadasha", [])
mahadasha_order = response.get("mahadasha_order", [])
dasha_start_date = response.get("dasha_start_date", "N/A")
dasha_remaining_at_birth = response.get("dasha_remaining_at_birth", "N/A")
# Format the dasha data to make it more readable
readable_response = f"""
### {dasha_type.replace('-', ' ').title()} Analysis for {name}
**Dasha Start Date:** {dasha_start_date}
**Remaining Dasha at Birth:** {dasha_remaining_at_birth}
## Mahadasha Sequence:
Here is the order of your Mahadasha periods:
"""
if len(mahadasha) == 0 or len(mahadasha_order) == 0:
readable_response += "**No Mahadasha data available.**"
else:
table = "| **Period** | **Planet** |\n|--------------|---------------|\n"
for i in range(len(mahadasha)):
if i < len(mahadasha_order):
period = mahadasha_order[i]
planet = mahadasha[i]
table += f"| {period} | {planet} |\n"
readable_response += table
if not mahadasha or not mahadasha_order:
readable_response += "\n## Astrological Insights: Data not available for the current period."
else:
readable_response += """
## Astrological Insights:
Based on your Mahadasha periods, you can predict the influences of each planet during your life.
"""
return gr.Markdown(readable_response)
# Gradio UI with improvements
with gr.Blocks(theme=gr.themes.Soft()) as demo:
gr.Markdown("# 🪐 Astrology Checker - Find Your Dosha & Dasha 🪐")
with gr.Row():
name = gr.Textbox(label="Name", placeholder="Enter your name")
dob = gr.Textbox(label="DOB (DD/MM/YYYY)", placeholder="21/04/2021")
tob = gr.Textbox(label="Time of Birth (HH:MM)", placeholder="11:40")
with gr.Row():
lat = gr.Number(label="Latitude", value=11)
lon = gr.Number(label="Longitude", value=77)
tz = gr.Number(label="Timezone (e.g., 5.5 for India)", value=5.5)
result = gr.Markdown()
def create_button(label, dosha_type, fn):
return gr.Button(label, variant="primary").click(fn, inputs=[gr.State(dosha_type), name, dob, tob, lat, lon, tz], outputs=result)
gr.Markdown("## 🌟 Dosha Analysis")
with gr.Row():
create_button("Mangal Dosh", "mangal-dosh", check_dosha)
create_button("Kaalsarp Dosh", "kaalsarp-dosh", check_dosha)
create_button("Manglik Dosh", "manglik-dosh", check_dosha)
create_button("Pitra Dosh", "pitra-dosh", check_dosha)
create_button("Papasamaya", "papasamaya", check_dosha)
gr.Markdown("## 🔮 Dasha Analysis")
with gr.Row():
create_button("Mahadasha", "maha-dasha", check_dasha)
create_button("Mahadasha Predictions", "maha-dasha-predictions", check_dasha)
create_button("Antardasha", "antar-dasha", check_dasha)
create_button("Char Dasha Current", "char-dasha-current", check_dasha)
gr.Markdown("### 🔍 Enter your details above and click the relevant button to analyze your astrology report!")
demo.launch()
|