ó
    X½Íj‡  ã            	       óN  • S SK r S SKJrJrJrJr  S SKJr  S SKJ	r	  S SK
JrJr  \	" 5       r\" 5       r\" 5       r\ R                   R#                  \ R                   R%                  \ R                   R%                  \ R                   R'                  \5      5      5      S5      rSS jrg)	é    N)ÚFlaskÚjsonifyÚrender_templateÚrequest)ÚMigrate)Ú
SQLAlchemy)Ú	CSRFErrorÚCSRFProtectÚ
migrationsc                 óª  • [        [        5      nU c  SSKJn  Un UR                  R                  U 5        SSKJnJn  U" UR                  5        U" UR                  5        UR                  S   R                  S5      (       a]  [        R                  R                  UR                  R                  S5      =(       d    S5      nU(       a  [        R                  " USS	9  [        R                  U5        [         R                  U[        ["        SS
9  [$        R                  U5        SSKJn  SSKJn  SSKJn  SSKJn	  SSKJn
  SSKJn  UR?                  U5        UR?                  U5        UR?                  U	5        UR?                  U
5        UR?                  U5        [$        RA                  U5        URC                  [D        5      S 5       nU$ )Nr   )ÚConfig)Úcheck_database_configÚcheck_secrets_configÚSQLALCHEMY_DATABASE_URIz
sqlite:///ÚDATABASE_PATHÚ T)Úexist_ok)Ú	directoryÚrender_as_batch)Úmodels)Úauth_bp)Ú
account_bp)Úpost_bp)Úinsights_bp)Úapi_bpc                 ó„   • Sn[         R                  R                  S5      S:X  a  [        SUS.5      S4$ [	        SUS9S4$ )	NzASecurity token missing or expired. Reload the page and try again.zX-Requested-WithÚXMLHttpRequestF)ÚsuccessÚerrori�  zcsrf_error.html)Úmessage)r   ÚheadersÚgetr   r   )r   r    s     Ú>F:\Solutions\Thinkera\Publishers\TikTokManager\app\__init__.pyÚhandle_csrf_errorÚ%create_app.<locals>.handle_csrf_error3   sH   € àUˆÜ�?‰?×ÑÐ1Ó2Ð6FÓFÜ u°wÑ?Ó@À#ÐEÐEÜÐ0¸'ÑBÀCÐGÐGó    )#r   Ú__name__Ú
app.configr   ÚconfigÚfrom_objectr   r   Ú
startswithÚosÚpathÚdirnamer"   ÚmakedirsÚdbÚinit_appÚmigrateÚMIGRATIONS_DIRÚcsrfÚappr   Úapp.routes.auth_routesr   Úapp.routes.account_routesr   Úapp.routes.post_routesr   Úapp.routes.insights_routesr   Úapp.routes.api_routesr   Úregister_blueprintÚexemptÚerrorhandlerr	   )Úconfig_classr5   r   r   r   Údb_dirr   r   r   r   r   r   r$   s                r#   Ú
create_appr@      sO  € Ü
”‹/€CàÑÝ%Øˆà‡J�J×Ñ˜<Ô(çFÙ˜#Ÿ*™*Ô%Ù˜Ÿ™Ô$à
‡z�zÐ+Ñ,×7Ñ7¸×EÑEÜ—‘—‘ §¡§¡°Ó!@×!FÀBÓGˆÞÜ�KŠK˜¨Ò.ä‡K�K�ÔÜ×Ñ�Sœ"¬ÈÐÑMÜ‡M�M�#ÔåÝ.Ý4Ý.Ý6Ý,à×Ñ˜7Ô#Ø×Ñ˜:Ô&Ø×Ñ˜7Ô#Ø×Ñ˜;Ô'Ø×Ñ˜6Ô"Ü‡K�K�Ôà×Ñ”iÓ ñHó !ðHð €Jr&   )N)r,   Úflaskr   r   r   r   Úflask_migrater   Úflask_sqlalchemyr   Úflask_wtf.csrfr	   r
   r0   r2   r4   r-   Újoinr.   ÚabspathÚ__file__r3   r@   © r&   r#   Ú<module>rI      sm   ðÛ 	ç :Ó :Ý !Ý 'ß 1áƒ\€Ù
‹)€Ùƒ}€à—‘—‘˜bŸg™gŸo™o¨b¯g©g¯o©o¸b¿g¹g¿o¹oÈhÓ>WÓ.XÓYÐ[gÓh€õ+r&   