|
56 | 56 | from astro.sports import analyze_sports_horary |
57 | 57 | from astro.esoteric import compute_esoteric_chart |
58 | 58 | from astro.enochian import compute_enochian_chart |
| 59 | +from astro.goetia import compute_goetia_chart |
59 | 60 | from astro.harmonic import compute_multi_harmonic |
60 | 61 | from astro.primary_directions import compute_primary_directions |
61 | 62 | from astro.electional.calculator import ( |
@@ -1291,7 +1292,31 @@ async def enochian_chart(params: BirthParams) -> ChartResponse: |
1291 | 1292 | raise HTTPException(status_code=500, detail=str(exc)) from exc |
1292 | 1293 |
|
1293 | 1294 |
|
1294 | | -class ElectionalParams(BirthParams): |
| 1295 | +@app.post("/api/goetia", response_model=ChartResponse, tags=["Systems"]) |
| 1296 | +async def goetia_chart(params: BirthParams) -> ChartResponse: |
| 1297 | + """Compute a Goetia / Solomonic Astrology chart. |
| 1298 | +
|
| 1299 | + Maps the natal chart to the 72-spirit system of the Ars Goetia (Lesser Key of Solomon): |
| 1300 | + - Personalized demon recommendations based on natal planetary positions, houses, and elements |
| 1301 | + - Electional timing windows for the next 30 days (best times to call each spirit) |
| 1302 | + - Demon sigil SVG visualizations and Goetia Natal Overview circular chart |
| 1303 | + - Bilingual (EN/ZH) ritual steps, invocations, banishing instructions, and safety notes |
| 1304 | + - Complete 72-demon database with rank, planet, element, zodiac sign, and powers |
| 1305 | +
|
| 1306 | + Ref: S.L. MacGregor Mathers & Aleister Crowley, *The Goetia* (1904); |
| 1307 | + Joseph H. Peterson, *The Lesser Key of Solomon* (Ibis Press, 2001); |
| 1308 | + Stephen Skinner & David Rankine, *The Goetia of Dr Rudd* (Golden Hoard, 2007). |
| 1309 | + """ |
| 1310 | + try: |
| 1311 | + kw = _base_kwargs(params) |
| 1312 | + chart = compute_goetia_chart(**kw) |
| 1313 | + return ChartResponse(system="goetia", data=_chart_to_dict(chart)) |
| 1314 | + except Exception as exc: |
| 1315 | + logger.exception("Goetia chart computation failed") |
| 1316 | + raise HTTPException(status_code=500, detail=str(exc)) from exc |
| 1317 | + |
| 1318 | + |
| 1319 | + |
1295 | 1320 | """Parameters for Electional Astrology / Vedic Muhurta.""" |
1296 | 1321 |
|
1297 | 1322 | tradition: str = Field( |
|
0 commit comments