Ë
    IB™jëT  ã                   óŠ  — d dl mZmZmZ d dlmZ d dlZd dlmZ d dl	m
Z
 d dlmZ  eddg¬	«      Zd
ddddddddddddœZdddddddddd d!d"d#œZd$ed%ed&efd'„Zd(„ ZdBd)„Zd*„ Zd+„ Zd,„ Zd-„ Zd.„ Zd/„ Zd0„ Zd1„ Zd2„ ZdCd3„Zd4„ Zd5„ Z d6„ Z!d7„ Z"d8„ Z#dCd9„Z$d:„ Z%d;„ Z&d<„ Z'd=„ Z(d>efd?„Z)ejU                  d@«       ee
«      fdA„«       Z+y)Dé    )Ú	APIRouterÚDependsÚHTTPException)ÚdatetimeN)Úget_db_connection)Úget_current_user)Úcalculate_planetsz/userzUser Horoscope)ÚprefixÚtagsu   â™ˆu   â™‰u   â™Šu   â™‹u   â™Œu   â™�u   â™Žu   â™�u   â™�u   â™‘u   â™’u   â™“)ÚAriesÚTaurusÚGeminiÚCancerÚLeoÚVirgoÚLibraÚScorpioÚSagittariusÚ	CapricornÚAquariusÚPiscesÚJanuaryÚFebruaryÚMarchÚAprilÚMayÚJuneÚJulyÚAugustÚ	SeptemberÚOctoberÚNovemberÚDecember©é   é   é   é   é   é   é   é   é	   é
   é   é   ÚhourÚminuteÚampmc                 ó°   — t        | «      }t        |«      }|r|j                  «       j                  «       nd}|dk(  r|dk(  rd}|dk(  r
|dk7  r|dz  }||fS )NÚPMÚAMr0   r   )ÚintÚupperÚstrip)r1   r2   r3   ÚhÚmÚ
ampm_uppers         ú?/var/www/html/Astrologybackend/backend/user_horoscope_router.pyÚconvert_to_24_hourr>   +   s_   € ÜˆD‹	€AÜˆF‹€AÙ)-�—‘“×#Ñ#Ô%°4€Jà�TÒ˜a 2šgØˆà�TÒ˜a 2šgØ	ˆR‰ˆàˆaˆ4€Kó    c                 óü   — | �| dk(  ryt        | t        t        f«      rt        | «      S t        | «      j	                  «       }ddddddœ}||v r||   S 	 t        |«      S # t
        $ r t        d| › d�«       Y yw xY w)NÚ g      @g        )zAsia/KolkatazAsia/CalcuttaÚISTÚUTCzEtc/UTCzInvalid timezone value 'z', using default 5.5)Ú
isinstancer7   ÚfloatÚstrr9   Ú	ExceptionÚprint)Útimezone_valueÚtimezone_textÚtimezone_maps      r=   Únormalize_timezonerL   9   s¡   € ØÐ °2Ò!5Øä�.¤3¬ ,Ô/Ü�^Ó$Ð$ä˜Ó'×-Ñ-Ó/€Mð ØØØØñ€Lð ˜Ñ$Ø˜MÑ*Ð*ðÜ�]Ó#Ð#øÜò ÜÐ(¨Ð(8Ð8LÐMÔNÙðús   Á
A  Á A;Á:A;c                 ó<   — 	 t        | «      S # t        $ r |cY S w xY w©N)r7   rG   )ÚvalueÚdefaults     r=   Úsafe_intrQ   T   s%   € ðÜ�5‹zÐøÜò ØŠðús   ‚
 �šc                 ó   — t        | «      dz  S )Néh  )rE   )rO   s    r=   Únormalize_degreerT   [   s   € Ü�‹<˜#ÑÐr?   c                 ó†   — t        | «      } t        |«      }t        |«      }||k  r|| cxk  xr |k  S c S | |k\  xs | |k  S rN   )rT   )Ú
planet_lonÚ
start_cuspÚend_cusps      r=   Úlongitude_in_houserY   _   sS   € Ü! *Ó-€JÜ! *Ó-€JÜ Ó)€Hà�XÒØ˜ZÖ2¨(Ñ2Ð2Ñ2Ð2à˜Ñ#Ò< z°HÑ'<Ð<r?   c                 óŽ   — |rt        |«      dk  ry t        d«      D ]&  }||   }||dz   dz     }t        | ||«      sŒ!|dz   c S  y )Nr0   r%   )ÚlenÚrangerY   )rV   ÚcuspsÚirW   rX   s        r=   Úget_house_from_cuspsr_   j   sZ   € Ù”C˜“J ’OØä�2‹Yò ˆØ˜1‘Xˆ
Ø˜!˜a™% 2™Ñ&ˆä˜j¨*°hÕ?Ø�q‘5ŠLðð r?   c                 ó(  — t        |«      t        |«      dz  z   }|t        |«      z
  }	t        j                  t        | «      t        |«      t        |«      |	«      }
t        j                  |
t        |«      t        |«      d«      \  }}t        |«      S )Ng      N@ó   P)rE   ÚsweÚjuldayr7   ÚhousesÚlist)ÚyearÚmonthÚdayr1   r2   ÚlatÚlonÚtimezoneÚ
local_hourÚut_hourÚjd_utr]   Úascmcs                r=   Úget_natal_house_cuspsrp   x   s�   € Ü�t“¤ f£°Ñ 4Ñ5€JØœ5 ›?Ñ*€Gä�J‰JÜˆD‹	ÜˆE‹
ÜˆC‹Øó	€Eô —:‘:ØÜˆc‹
Üˆc‹
Øó	�L€Eˆ5ô �‹;Ðr?   c                 ó\   — t        | d«      }dddddddd	d
ddddœ}|j                  |d«      S )Nr%   z,identity, confidence, and personal directionz%money, values, and personal resourcesz)communication, learning, and short travelz$home, family, and emotional securityz(creativity, romance, and self-expressionzdaily routine, work, and healthz+relationships, partnership, and cooperationz5emotional depth, transformation, and shared resourcesz*wisdom, travel, faith, and higher learningzcareer, goals, and public imagez$friends, community, and future plansz+rest, spirituality, healing, and reflectionr$   z"life direction and personal growth)rQ   Úget)ÚhouseÚ	house_numÚmeaningss      r=   Úget_house_meaningrv   �   sO   € Ü˜ Ó"€Ið :Ø2Ø6Ø1Ø5Ø,Ø8ØBØ7Ø-Ø2Ø9ñ€Hð �<‰<˜	Ð#GÓHÐHr?   c                 ób   — | dk  s| dk\  ry| dk  ry| dk  ry| dk  ry	| d
k  ry| dk  ry| dk  ryy)Ng     €&@g     Ìu@zNew Moong     °S@zWaxing Crescent Moong     PY@zFirst Quarter Moong     e@zWaxing Gibbous Moong     èg@z	Full Moong     ,p@zWaning Gibbous Moong     ”q@zLast Quarter MoonzWaning Crescent Moon© )Úangles    r=   Úmoon_phase_namerz   ¢   sQ   € Øˆu‚}˜ šØØˆu‚}Ø%Øˆv‚~Ø#Øˆv‚~Ø$Øˆv‚~ØØˆv‚~Ø$Øˆv‚~Ø"Ø!r?   c                 ó0   — t        |«      }d| › d|› d|› d�S )NzThe z in z brings attention to a  . Your emotions may feel more connected to this area of life today. This is a good time to notice what your inner world is asking for and adjust your actions with patience. The Moon's current phase encourages emotional awareness, steady progress, and thoughtful decisions.)rv   )Ú
phase_nameÚ	moon_signÚ
moon_houseÚ
house_texts       r=   Úmoon_phase_textr€   ´   s4   € Ü" :Ó.€Jð ˆzˆl˜$˜y˜kÐ)>¸z¸lð Knð 	oðr?   c                 ó°   — | j                  |i «      }|j                  d«      }|€|j                  d«      S t        ||«      }|xs |j                  d«      S )NÚ	longituders   )rr   r_   )Útransit_planetsÚplanet_nameÚnatal_cuspsÚplanetr‚   rs   s         r=   Úplanet_houser‡   ¿   sW   € Ø× Ñ  ¨bÓ1€FØ—
‘
˜;Ó'€IàÐØ�z‰z˜'Ó"Ð"ä  ¨KÓ8€EØÒ'�F—J‘J˜wÓ'Ð'r?   c                 óR   — t        dt        dt        t        | «      «      «      «      S )Né   é_   )ÚmaxÚminr7   Úround©Úscores    r=   Úclamp_scorer�   Ê   s   € Üˆr”3�rœ3œu U›|Ó,Ó-Ó.Ð.r?   c                 ó<   — |xs g }t        | d«      } | |v ry| |v ryy)Nr   r-   r)   ©rQ   )rs   Úgood_housesÚmedium_housess      r=   Úscore_by_house_focusr•   Î   s1   € Ø!Ò' R€MÜ�U˜AÓ€Eà�ÑØà�ÑØàr?   c                 ó,  — | j                  di «      }t        |d|«      }t        |d|«      }t        |d|«      }d}|t        |g d¢ddg«      z  }|t        |g d¢d	dg«      z  }|t        |g d¢d
dg«      z  }t        |d«      dv r|dz  }t	        |«      S )NÚplanetsÚvenusÚmarsÚmooné7   )r)   r+   r,   r%   r/   r'   r(   r   )r)   r+   r)   ©rr   r‡   r•   rQ   r�   )Útransitr…   rƒ   Úvenus_houseÚ
mars_houser~   r�   s          r=   Úcalculate_love_scorer    Û   s°   € Ø—k‘k )¨RÓ0€Oä˜°¸ÓE€KÜ˜o¨v°{ÓC€JÜ˜o¨v°{ÓC€Jà€Eð 
Ô! +ªy¸1¸b¸'ÓBÑB€EØ	Ô! *ªi¸!¸R¸ÓAÑA€EØ	Ô! *ªi¸!¸R¸ÓAÑA€Eô �˜QÓ 6Ñ)Ø�‰
ˆä�uÓÐr?   c                 ó°  — | j                  di «      }t        |d|«      }t        |d|«      }t        |d|«      }t        |d|«      }t        |d|«      }d}|t        |g d¢d	d
g«      z  }|t        |g d¢d	dg«      z  }|t        |g d¢dd	g«      z  }|t        |g d¢dd
g«      z  }|t        |g d¢ddg«      z  }t        |d«      dv r|dz  }t	        |«      S )Nr—   ÚsunÚmercuryr™   ÚjupiterÚsaturné4   )r&   r*   r.   r'   r/   r-   r%   r,   r   r)   rœ   )	r�   r…   rƒ   Ú	sun_houseÚmercury_houserŸ   Újupiter_houseÚsaturn_houser�   s	            r=   Úcalculate_career_scorer«   ð   sü   € Ø—k‘k )¨RÓ0€Oä˜_¨e°[ÓA€IÜ  °)¸[ÓI€MÜ˜o¨v°{ÓC€JÜ  °)¸[ÓI€MÜ °¸;ÓG€Là€Eð 
Ô! )ªZ¸!¸R¸ÓAÑA€EØ	Ô! -²¸aÀ¸VÓDÑD€EØ	Ô! *ªj¸1¸a¸&ÓAÑA€EØ	Ô! -²¸aÀ¸WÓEÑE€EØ	Ô! ,²
¸QÀ¸FÓCÑC€Eô �˜qÓ! ZÑ/Ø�‰
ˆä�uÓÐr?   c                 óL  — | j                  di «      }t        |d|«      }t        |d|«      }t        |d|«      }d}|t        |g d¢dg«      z  }|t        |dd	gd
g«      z  }|t        |d	dgdg«      z  }t        |d«      dv r|d	z  }t        |d«      dv r|d
z  }t	        |«      S )Nr—   rš   r™   r¥   é:   )r%   r*   r0   r(   r%   r*   r'   r0   r   )r*   r0   rœ   )r�   r…   rƒ   r~   rŸ   rª   r�   s          r=   Úcalculate_health_scorer®   	  sÌ   € Ø—k‘k )¨RÓ0€Oä˜o¨v°{ÓC€JÜ˜o¨v°{ÓC€JÜ °¸;ÓG€Là€Eð 
Ô! *ªj¸1¸#Ó>Ñ>€EØ	Ô! *¨q°!¨f°q°cÓ:Ñ:€EØ	Ô! ,°°B°¸!¸Ó=Ñ=€Eô �
˜AÓ 'Ñ)Ø�‰
ˆô �˜aÓ  GÑ+Ø�‰
ˆä�uÓÐr?   c                 ó*   — t        | |z   |z   dz  «      S )Nr'   )r�   )Ú
love_scoreÚcareer_scoreÚhealth_scores      r=   Úcalculate_general_scorer³   "  s   € Ü˜
 \Ñ1°LÑ@ÀAÑEÓFÐFr?   c                 ó4   — t        | d«      } | dk  ry| dk  ryy)Nr   r›   ÚlowéK   ÚmediumÚgoodr’   rŽ   s    r=   Úscore_levelr¹   &  s%   € Ü�U˜AÓ€Eàˆr‚zØàˆr‚zØàr?   c                 óâ  — |j                  di «      }|j                  di «      }|j                  di «      }|j                  di «      }|j                  di «      }|j                  di «      }	|j                  di «      }
|j                  di «      }t        |d|«      }t        |d|«      }t        |d|«      }t        |d|«      }t        |d|«      }|j                  dd«      }|j                  dd«      }|j                  dd«      }|	j                  dd«      }|
j                  dd«      }|j                  dd«      }d	|› d
|› d| › dt        |«      › d|› d
|› d|› d|› d|› d|› d|› d|› d|› d�S )Nr—   r¢   rš   r£   r˜   r™   ÚsignrA   zWith the Sun transiting your z
 house in ú, ú, your focus turns toward z. The Moon moving through your z_ highlights your emotional needs and helps you understand what requires care today. Mercury in ú activates your zK house, supporting clearer thinking, planning, and communication. Venus in z brings harmony to your zJ house, helping you connect with comfort, affection, and balance. Mars in z energizes your zg house, encouraging you to take practical action where effort is needed. Because your natal Moon is in zÖ, emotional stability comes from staying grounded and responding thoughtfully instead of rushing. Overall, this is a day to move with awareness, protect your energy, and take steady steps toward peace and progress.©rr   r‡   rv   )ÚnameÚnatalr�   r…   rƒ   Únatal_planetsr¢   rš   r£   r˜   r™   Ú
natal_moonr§   r~   r¨   rž   rŸ   Úsun_signr}   Úmercury_signÚ
venus_signÚ	mars_signÚnatal_moon_signs                          r=   Úbuild_general_horoscoperÉ   2  s¼  € Ø—k‘k )¨RÓ0€OØ—I‘I˜i¨Ó,€Mà
×
Ñ
˜e RÓ
(€CØ×Ñ˜v rÓ*€DØ×!Ñ! )¨RÓ0€GØ×Ñ ¨Ó,€EØ×Ñ˜v rÓ*€Dà×"Ñ" 6¨2Ó.€Jä˜_¨e°[ÓA€IÜ˜o¨v°{ÓC€JÜ  °)¸[ÓI€MÜ˜°¸ÓE€KÜ˜o¨v°{ÓC€Jà�w‰w�v˜rÓ"€HØ—‘˜ Ó$€IØ—;‘;˜v rÓ*€LØ—‘˜6 2Ó&€JØ—‘˜ Ó$€IØ —n‘n V¨RÓ0€Oð (¨	 {°*¸X¸JÀbÈÈÐNhÜ˜YÓ'Ð
(Ð(GÈ
À|ÐS]Ð^gÐ]hð ià"�^Ð#3°M°?ð C'Ø'1 lÐ2JÈ;È-ð X9Ø9B¸ÐCSÐT^ÐS_ð `^Ø^mÐ]nð oð		ðr?   c                 ó   — d| › d|› d|› d�S )Nz#Embrace balance and clarity today, z; your z Moon energy and zG Sun focus can guide you toward calm decisions and meaningful progress.rx   )rÀ   r}   rÄ   s      r=   Úbuild_mantrarË   Y  s*   € à
-¨d¨V°7¸9¸+ÐEVÐW_ÐV`ð aGð 	Hðr?   c                 ó|  — |j                  di «      }|j                  di «      }|j                  di «      }|j                  di «      }|j                  dd«      }|j                  dd«      }|j                  dd«      }	t        |d|«      }
t        |d|«      }t        |d|«      }d|› d|
› d	| › d
|› d|› d|	› d|› d�S )Nr—   r˜   r™   rš   r»   rA   zTransiting Venus is in ú moving through your ú house, z^. This highlights affection, attraction, and the way you connect emotionally in love. Mars in r¾   zS house, adding desire, confidence, and action to relationship matters. The Moon in zä house shows where your emotional needs are strongest today. If you are in a relationship, this is a good day to communicate with patience and warmth. If you are single, focus on genuine connection instead of rushing attraction.©rr   r‡   )rÀ   r�   r…   rƒ   r˜   r™   rš   rÆ   rÇ   r}   rž   rŸ   r~   s                r=   Úbuild_love_horoscoperÐ   `  sï   € Ø—k‘k )¨RÓ0€Oà×Ñ ¨Ó,€EØ×Ñ˜v rÓ*€DØ×Ñ˜v rÓ*€Dà—‘˜6 2Ó&€JØ—‘˜ Ó$€IØ—‘˜ Ó$€Iä˜°¸ÓE€KÜ˜o¨v°{ÓC€JÜ˜o¨v°{ÓC€Jð " * Ð-BÀ;À-ÈxÐX\ÐW]ð ^à�+Ð-¨j¨\ð :Ø �kÐ!6°z°lð CXð	Yðr?   c                 ó  — |j                  di «      }|j                  di «      }|j                  di «      }|j                  di «      }|j                  di «      }|j                  dd«      }|j                  dd«      }	|j                  dd«      }
|j                  dd«      }t        |d|«      }t        |d|«      }t        |d|«      }t        |d|«      }d|› d	|› d
| › dt        |«      › d|	› d|› d|
› d|› d|› d|› d�S )Nr—   r¢   r£   r™   r¤   r»   rA   zWith the Sun in z transiting your rÎ   r½   z. Mercury in rÍ   zV house supports planning, learning, messages, and professional communication. Mars in r¾   zG house, giving you drive to complete tasks and take action. Jupiter in z­ house shows where growth and opportunity can open with patience. Career-wise, today favors steady effort, clear communication, and practical decisions over impulsive moves.r¿   )rÀ   r�   r…   rƒ   r¢   r£   r™   r¤   rÄ   rÅ   rÇ   Újupiter_signr§   r¨   rŸ   r©   s                   r=   Úbuild_career_horoscoperÓ   y  s?  € Ø—k‘k )¨RÓ0€Oà
×
Ñ
˜e RÓ
(€CØ×!Ñ! )¨RÓ0€GØ×Ñ˜v rÓ*€DØ×!Ñ! )¨RÓ0€Gà�w‰w�v˜rÓ"€HØ—;‘;˜v rÓ*€LØ—‘˜ Ó$€IØ—;‘;˜v rÓ*€Lä˜_¨e°[ÓA€IÜ  °)¸[ÓI€MÜ˜o¨v°{ÓC€JÜ  °)¸[ÓI€Mð ˜8˜*Ð$5°i°[ÀÈÈÐNhÜ˜YÓ'Ð
(¨°l°^ÐCXÐYfÐXgð hZØZcÐYdÐdtØˆ,Ð]Ð^jÐ]kð lØˆð vð		wðr?   c                 ó|  — |j                  di «      }|j                  di «      }|j                  di «      }|j                  di «      }|j                  dd«      }|j                  dd«      }|j                  dd«      }	t        |d|«      }
t        |d|«      }t        |d|«      }d|› d|
› d	| › d
|› d|› d|	› d|› d�S )Nr—   rš   r™   r¥   r»   rA   zThe Moon in rÍ   z7 house affects your emotional rhythm and daily energy, z
. Mars in z activating your zd house can increase motivation, but it may also create restlessness if you push too hard. Saturn in a   house asks for discipline, balance, and better boundaries around your body and routine. Health-wise, today supports simple habits: steady meals, hydration, light movement, and enough rest. Avoid overthinking or forcing progress; consistency will help you feel better.rÏ   )rÀ   r�   r…   rƒ   rš   r™   r¥   r}   rÇ   Úsaturn_signr~   rŸ   rª   s                r=   Úbuild_health_horoscoperÖ   •  sð   € Ø—k‘k )¨RÓ0€Oà×Ñ˜v rÓ*€DØ×Ñ˜v rÓ*€DØ× Ñ  ¨2Ó.€Fà—‘˜ Ó$€IØ—‘˜ Ó$€IØ—*‘*˜V RÓ(€Kä˜o¨v°{ÓC€JÜ˜o¨v°{ÓC€JÜ °¸;ÓG€Lð �y�kÐ!6°z°lÐByÐz~Ðyð @Ø�+Ð.¨z¨lð ;+Ø+6¨-Ð7LÈ\ÈNð [zð	{ðr?   Úuser_idc                 ó  — t        «       }|j                  d¬«      }	 |j                  d| f«       |j                  «       |j	                  «        |j	                  «        S # |j	                  «        |j	                  «        w xY w)NT)Ú
dictionarya¢  
            SELECT
                ubd.id,
                ubd.user_id,
                ubd.name,
                ubd.birth_year,
                ubd.birth_month,
                ubd.birth_day,
                ubd.birth_hour,
                ubd.birth_minute,
                ubd.birth_ampm,
                ubd.unknown_birth_time,
                ubd.birth_place,
                ubd.birth_lat,
                ubd.birth_lon,
                ubd.timezone,
                u.email
            FROM user_birth_details ubd
            LEFT JOIN users u ON u.id = ubd.user_id
            WHERE ubd.user_id = %s
            ORDER BY ubd.id DESC
            LIMIT 1
            )r   ÚcursorÚexecuteÚfetchoneÚclose)r×   ÚconnrÚ   s      r=   Úget_birth_details_for_userrß   ­  sm   € ÜÓ€DØ�[‰[ Dˆ[Ó)€Fð Ø�‰ðð. ˆJô1	
ð6 �‰Ó ð 	�‰ŒØ�
‰
�øð 	�‰ŒØ�
‰
�ús   ž"A! Á!"Bz/daily-horoscopec                 óT
  — t        | d   «      }|st        dd¬«      ‚|j                  d«      �|j                  d«      €t        dd¬«      ‚	 |j                  d	«      xs d
}|j                  d«      xs d}|j                  d«      xs d}|j                  d«      xs d}|j                  d«      rd}d}d}t        |||«      \  }}t	        |d   «      }t	        |d   «      }	t        |j                  d«      «      }
t        t        |d   «      t        |d   «      t        |d   «      ||d||	|
¬«	      }t        t        |d   «      t        |d   «      t        |d   «      ||||	|
¬«      }t        j                  «       }t        |j                  |j                  |j                  ddd||	|
¬«	      }|j                  di «      }|j                  di «      }|j                  di «      }|j                  di «      }|j                  di «      }|j                  d«      }|j                  d«      }|j                  d«      }|j                  di «      }|j                  di «      }|j                  dd«      }|j                  dd«      }||z
  dz  }t        |«      }t        j                  |j                  |j                  «      › d|j                  › d |j                  › �}|d   › d!t!        |d   «      j#                  d"«      › d!t!        |d   «      j#                  d"«      › �}|› d#t!        |«      j#                  d"«      › d|› �}t%        ||«      } | s|j                  d$«      } |j                  d%d&«      }!|j                  dd&«      }"t'        ||«      }#t)        ||«      }$t+        ||«      }%t-        |#|$|%«      }&t/        ||xs d&|xs d&«      }'t1        ||||«      }(t3        ||"| «      })t5        |||«      }*t7        |||«      }+t9        |||«      },i d'd(“d	|“d)|“d*|“d+|“d,|j                  d-«      xs d&“d.d/“d|t:        j                  |d0«      |r|› d1�nd2d3œ“d|t:        j                  |d4«      |r|› d5�nd6d3œ“d7|t:        j                  |d8«      |r|› d9�nd:d3œ“d;||"| |!|)d<œ“d=|'“d>|&“d?t=        |&«      “d@|(“dA|#“dBt=        |#«      “|*|$t=        |$«      |+|%t=        |%«      |,dCœ¥S # t        $ r ‚ t>        $ r*}-tA        dD|-«       t        dEdFt!        |-«      › �¬«      ‚d }-~-ww xY w)GNÚidi”  zBirth details not found.)Ústatus_codeÚdetailÚ	birth_latÚ	birth_loni�  zZBirth latitude and longitude are missing. Please update your birth location from settings.rÀ   ÚUserÚ
birth_hourr0   Úbirth_minuter   Ú
birth_ampmr5   Úunknown_birth_timerk   Ú
birth_yearÚbirth_monthÚ	birth_day)	rf   rg   rh   r1   r2   ÚsecondÚlatituder‚   Útz)rf   rg   rh   r1   r2   ri   rj   rk   r—   r¢   rš   Ú	ascendantr»   r‚   rS   ú r¼   ú-r&   ú:rs   ÚdegreerA   ÚsuccessTÚ
today_dateÚ	birthdateÚ
birth_timeÚlocationÚbirth_placeÚhouse_systemÚPlacidusu   â˜‰z SunÚSun)r»   ÚsymbolÚlabelu   â˜½z MoonÚMoonÚrisingu   â†‘z RisingÚRisingÚ
moon_phase)rÀ   r»   rs   rõ   ÚtextÚmantraÚgeneral_scoreÚgeneral_score_levelÚgeneral_horoscoper°   Úlove_score_level)Úlove_horoscoper±   Úcareer_score_levelÚcareer_horoscoper²   Úhealth_score_levelÚhealth_horoscopez!Daily horoscope generation error:iô  z#Daily horoscope generation failed: )!rß   r   rr   r>   rE   rL   r	   r7   rp   r   Únowrf   rg   rh   rz   ÚMONTH_NAMESrF   Úzfillr_   r    r«   r®   r³   rË   rÉ   r€   rÐ   rÓ   rÖ   ÚZODIAC_SYMBOLSr¹   rG   rH   ).Úcurrent_userÚdetailsÚ	user_namerç   rè   ré   Ú	calc_hourÚcalc_minuteri   rj   rk   rÁ   r…   Útodayr�   rÂ   rƒ   Ú	natal_sunrÃ   rñ   rÄ   r}   Úrising_signÚtransit_sunÚtransit_moonÚsun_lonÚmoon_lonÚphase_angler|   r÷   Úbirthdate_textÚbirth_time_textr~   Úmoon_degreeÚmoon_sign_todayr°   r±   r²   r  r  ÚgeneralÚ	moon_textr  r  r  Úes.                                                 r=   Úget_daily_horoscoper(  Ô  s  € ä(¨°dÑ);Ó<€GáÜ¨Ð4NÔOÐOà‡{�{�;ÓÐ'¨7¯;©;°{Ó+CÐ+KÜØØoô
ð 	
ð
b
Ø—K‘K Ó'Ò1¨6ˆ	à—[‘[ Ó.Ò4°"ˆ
Ø—{‘{ >Ó2Ò7°aˆØ—[‘[ Ó.Ò6°$ˆ
à�;‰;Ð+Ô,ØˆJØˆLØˆJä!3ØØØó"
Ñˆ	�;ô �G˜KÑ(Ó)ˆÜ�G˜KÑ(Ó)ˆÜ% g§k¡k°*Ó&=Ó>ˆä!Ü�W˜\Ñ*Ó+Ü�g˜mÑ,Ó-Ü�G˜KÑ(Ó)ØØØØØØô

ˆô ,Ü�W˜\Ñ*Ó+Ü�g˜mÑ,Ó-Ü�G˜KÑ(Ó)ØØØØØô	
ˆô —‘“ˆä#Ø—‘Ø—+‘+Ø—	‘	ØØØØØØô

ˆð Ÿ	™	 )¨RÓ0ˆØ!Ÿ+™+ i°Ó4ˆà!×%Ñ% e¨RÓ0ˆ	Ø"×&Ñ& v¨rÓ2ˆ
Ø—I‘I˜k¨2Ó.ˆ	à—=‘= Ó(ˆØ—N‘N 6Ó*ˆ	Ø—m‘m FÓ+ˆà%×)Ñ)¨%°Ó4ˆØ&×*Ñ*¨6°2Ó6ˆà—/‘/ +¨qÓ1ˆØ×#Ñ# K°Ó3ˆØ 'Ñ)¨SÑ0ˆÜ$ [Ó1ˆ
ä#Ÿ™¨¯©°U·[±[ÓAÐBÀ!ÀEÇIÁIÀ;ÈbÐQV×Q[ÑQ[ÐP\Ð]ˆ
ð �|Ñ$Ð% QÜ�7˜=Ñ)Ó*×0Ñ0°Ó3Ð4°AÜ�7˜;Ñ'Ó(×.Ñ.¨qÓ1Ð2ð4ð 	ð (˜L¨¬#¨lÓ*;×*AÑ*AÀ!Ó*DÐ)EÀQÀzÀlÐSˆä)¨(°KÓ@ˆ
áØ%×)Ñ)¨'Ó2ˆJà"×&Ñ& x°Ó4ˆØ&×*Ñ*¨6°2Ó6ˆä)¨'°;Ó?ˆ
Ü-¨g°{ÓCˆÜ-¨g°{ÓCˆÜ/°
¸LÈ,ÓWˆä˜i¨ª°b¸(º.ÀbÓIˆÜ)¨)°U¸GÀ[ÓQˆÜ# J°ÀÓLˆ	ä-¨i¸À+ÓNˆÜ1°)¸WÀkÓRÐÜ1°)¸WÀkÓRÐð+
Ø�tð+
à�Ið+
ð ˜*ð+
ð ˜ð	+
ð
 ˜/ð+
ð ˜Ÿ™ MÓ2Ò8°bð+
ð ˜Jð+
ð Ø Ü(×,Ñ,¨X°uÓ=Ù.6˜H˜: TÑ*¸Eñð+
ð Ø!Ü(×,Ñ,¨Y¸Ó>Ù09˜I˜; eÑ,¸vñð+
ð$ Ø#Ü(×,Ñ,¨[¸%Ó@Ù4?˜K˜=¨Ñ0ÀXñð%+
ð. Ø"Ø'Ø#Ø%Ø!ñð/+
ð< �fð=+
ð> ˜]ð?+
ð@ "¤;¨}Ó#=ðA+
ðB   ðC+
ðD ˜*ðE+
ðF ¤¨JÓ 7ðG+
ðH -Ø(Ü"-¨lÓ";Ø 0Ø(Ü"-¨lÓ";Ø 0òU+
ð +	
øôZ ò Øäò 
ÜÐ1°1Ô5ÜØØ8¼¸Q»¸ÐAô
ð 	
ûð
ús   ÁRS+ Ó+T'Ó=%T"Ô"T')r%   rN   ),Úfastapir   r   r   r   Úswissephrb   Údbr   Úauth_routesr   Ú	astrologyr	   Úrouterr  r  r7   rF   r>   rL   rQ   rT   rY   r_   rp   rv   rz   r€   r‡   r�   r•   r    r«   r®   r³   r¹   rÉ   rË   rÐ   rÓ   rÖ   rß   rr   r(  rx   r?   r=   ú<module>r/     sE  ðß 5Ñ 5Ý Û å  Ý (Ý 'á	˜'Ð)9Ð(:Ô	;€ð ØØØØØØØØØØØñ€ð  ØØØØØØØØØØØñ€ð ˜Sð ¨#ð °Só òó6òò=òòò*Iò*"ò$ò(ò/ó
òò*ò2ò2Gò	ó$òNòò2ò8ð0$¨ó $ðN ‡�ÐÓÙ%,Ð-=Ó%>ò n
ó  ñn
r?   