ó
    0¾ÍjÖ  ã                   ó  • S SK r S SKJrJrJrJrJrJr  S SKJ	r	  S SK
JrJrJr  S SKJrJr  S SKJr  S SKJrJrJr  \" S\5      r\ R2                  " \5      r\R7                  S	5      \S
 5       5       r\R7                  S5      \S 5       5       r\R7                  S5      \S 5       5       r\R7                  SS/S9\S 5       5       r\R7                  SS/S9\S 5       5       r \R7                  SS/S9\S 5       5       r!g)é    N)Ú	BlueprintÚflashÚredirectÚrender_templateÚsessionÚurl_for)Údb)Úensure_fresh_tokenÚget_active_accountÚlogin_required)ÚAccountÚScheduledPost)ÚServiceError)ÚTikTokAPIErrorÚget_user_infoÚlist_videosÚaccountz
/dashboardc            	      ó   • [        5       n / nSn [        U 5      n[        U5      nU(       a\  S H8  nUR                  U5      c  M  [	        XUS;   a  XE   O[        XE   5      5        M:     [        R                  R                  5         [        USS9S   n["        R$                  R'                  U R(                  ["        R*                  S9R-                  5       n[.        R$                  R1                  [.        R2                  5      R5                  5       n[7        SU UUUS9$ ! [        [        4 a   n[        UR                  S5         S nAN·S nAf[         a#    [        R!                  SS	S
9  [        SS5         Næf = f)Nr   )Údisplay_nameÚ
avatar_urlÚfollower_countÚfollowing_countÚlikes_countÚvideo_count)r   r   é   )Ú	max_countÚvideosÚwarningzdashboard.refresh failedT©Úexc_infozCould not refresh account data.)Ú
account_idÚstatuszdashboard.html)r   ÚaccountsÚrecent_videosÚpending_count)r   r
   r   ÚgetÚsetattrÚintr	   r   Úcommitr   r   r   r   ÚmessageÚ	ExceptionÚlogÚerrorr   ÚqueryÚ	filter_byÚidÚSTATUS_PENDINGÚcountr   Úorder_byr   Úallr   )r   r$   r%   ÚtokenÚuserÚfieldÚeÚall_accountss           ÚKF:\Solutions\Thinkera\Publishers\TikTokManager\app\routes\account_routes.pyÚ	dashboardr;      sJ  € ô !Ó"€GØ€MØ€Mð<Ü" 7Ó+ˆÜ˜UÓ#ˆÞÛz�Ø—8‘8˜E“?Ó.Ü˜G¸5ÐDbÓ;b¨DªKÔhkÐlpÑlwÓhxÖyñ {ô �J‰J×ÑÔÜ# E°QÑ7¸ÑAˆô "×'Ñ'×1Ñ1¸W¿Z¹ZÔP]×PlÑPlÐ1Ðm×sÑsÓu€MÜ—=‘=×)Ñ)¬'×*>Ñ*>Ó?×CÑCÓE€LÜØØØØ#Ø#ñð øô œLÐ)ó $Üˆa�i‰i˜×#Ñ#ûÜó <Ü�	‰	Ð,°tˆ	Ñ<ÜÐ/°Ö;ð<ús$   �2D" ÁAD" Ä"E=Ä2EÅ-E=Å<E=z	/accountsc                  ó¸   • [         R                  R                  [         R                  5      R	                  5       n [
        R                  " S5      n[        SXS9$ )NÚactive_account_idzaccounts.html)r#   Ú	active_id)r   r.   r3   r   r4   r   r&   r   )r9   r>   s     r:   r#   r#   0   sC   € ô —=‘=×)Ñ)¬'×*>Ñ*>Ó?×CÑCÓE€LÜ—’Ð/Ó0€IÜ˜?°\ÑWÐWó    z/accounts/addc                  ó*   • [        [        S5      5      $ )Nzauth.auth_start)r   r   © r?   r:   Úadd_accountrB   8   s   € ô ”GÐ-Ó.Ó/Ð/r?   z&/accounts/<int:account_db_id>/activateÚPOST)Úmethodsc                 óÀ   • [         R                  R                  U 5      nUR                  [        S'   [        SUR                   3S5        [        [        S5      5      $ )Nr=   zSwitched to account: Úsuccessúaccount.dashboard)	r   r.   Ú
get_or_404r0   r   r   r   r   r   )Úaccount_db_idr   s     r:   Úactivate_accountrJ   >   sQ   € ô �m‰m×&Ñ& }Ó5€GØ#*§:¡:„GÐÑ Ü	Ð! '×"6Ñ"6Ð!7Ð
8¸)ÔDÜ”GÐ/Ó0Ó1Ð1r?   z%/accounts/<int:account_db_id>/refreshc           	      óÀ  • [         R                  R                  U 5      n [        U5      n[	        U5      nU(       a¤  UR                  S5      =(       d    UR                  Ul        UR                  S5      =(       d    UR                  Ul        S H.  nUR                  U5      c  M  [        X[        X4   5      5        M0     [        R                  R                  5         [        SS5        [)        [+        S5      5      $ ! [        [        4 a   n[        UR                   S5         S nAN?S nAf["         a#    [$        R'                  SSS	9  [        S
S5         Nnf = f)Nr   r   )r   r   r   r   zAccount data refreshed.rF   r-   zaccounts.refresh failedTr   zCould not refresh the account.zaccount.accounts)r   r.   rH   r
   r   r&   r   r   r'   r(   r	   r   r)   r   r   r   r*   r+   r,   r-   r   r   )rI   r   r5   r6   r7   r8   s         r:   Úrefresh_accountrL   G   s  € ô �m‰m×&Ñ& }Ó5€Gð9Ü" 7Ó+ˆÜ˜UÓ#ˆÞØ#'§8¡8¨NÓ#;×#S¸w×?SÑ?SˆGÔ Ø!%§¡¨,Ó!7×!M¸7×;MÑ;MˆGÔÛ\�Ø—8‘8˜E“?Ó.Ü˜G¬C°±Ó,<Ö=ñ ]ô �J‰J×ÑÔÜÐ'¨Ô3ô ”GÐ.Ó/Ó0Ð0øô œLÐ)ó "Üˆa�i‰i˜×!Ñ!ûÜó 9Ü�	‰	Ð+°dˆ	Ñ;ÜÐ.°Ö8ð9ús%   ¡BD Â)AD ÄEÄD-Ä--EÅEz$/accounts/<int:account_db_id>/deletec                 ó$  • [         R                  R                  U 5      nUR                  n[        R
                  R                  U5        [        R
                  R                  5         [
        R                  " S5      U :X  a  [
        R                  " SS 5        [        SU 3S5        [         R                  R                  [         R                  5      R                  5       nU(       a  UR                  [
        S'   [        [        S5      5      $ )Nr=   zDisconnected account: ÚinforG   )r   r.   rH   r   r	   r   Údeleter)   r&   Úpopr   r3   Úfirstr0   r   r   )rI   r   ÚnameÚ	remainings       r:   Údelete_accountrT   ^   s¾   € ô �m‰m×&Ñ& }Ó5€GØ×Ñ€DÜ‡J�J×Ñ�gÔÜ‡J�J×ÑÔÜ‡{‚{Ð&Ó'¨=Ó8Ü�ŠÐ'¨Ô.Ü	Ð" 4 &Ð
)¨6Ô2Ü—‘×&Ñ&¤w×';Ñ';Ó<×BÑBÓD€IÞØ'0§|¡|ŒÐ#Ñ$Ü”GÐ/Ó0Ó1Ð1r?   )"ÚloggingÚflaskr   r   r   r   r   r   Úappr	   Úapp.authr
   r   r   Ú
app.modelsr   r   Úapp.services.errorsr   Úapp.tiktok_apir   r   r   Ú__name__Ú
account_bpÚ	getLoggerr,   Úrouter;   r#   rB   rJ   rL   rT   rA   r?   r:   Ú<module>r`      sF  ðÛ ç O× Oå ß KÑ Kß -Ý ,ß EÑ Eá�y (Ó+€
Ø×Ò˜Ó!€ð ×Ñ�,ÓØñó ó  ðð> ×Ñ�+ÓØñXó ó ðXð ×Ñ�/Ó"Øñ0ó ó #ð0ð ×ÑÐ:ÀVÀHÐÐMØñ2ó ó Nð2ð ×ÑÐ9ÀFÀ8ÐÐLØñ1ó ó Mð1ð* ×ÑÐ8À6À(ÐÐKØñ2ó ó Lñ2r?   