File size: 3,632 Bytes
d61af77
 
 
c6ebf38
 
8916b04
c6ebf38
 
d61af77
 
 
 
c6ebf38
 
d61af77
44dc108
d61af77
c6ebf38
 
8916b04
c6ebf38
 
 
 
 
 
 
 
 
 
 
8916b04
c6ebf38
 
 
 
 
 
 
 
 
 
 
 
 
8916b04
c6ebf38
 
 
 
 
8916b04
d61af77
8916b04
 
 
44dc108
 
8916b04
 
 
d61af77
44dc108
0e872b0
 
 
d61af77
c6ebf38
d61af77
4d2567b
8916b04
4d2567b
8916b04
c6ebf38
4d2567b
 
 
 
 
c6ebf38
8916b04
c6ebf38
4d2567b
 
 
 
c6ebf38
8916b04
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
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 "Invalid response from API."
    else:
        return f"Error fetching data: {response.status_code}"

# 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 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

# 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 response
    
    return f"### {dasha_type.replace('-', ' ').title()} Analysis for {name}\n\n" + str(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 (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="Time Zone", 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()