
    Ii                     t    d dl Z d dlmZ d dlmZ ddlmZ ddlmZ ddl	m
Z ddlmZ d d	lmZ dd
lmZ ddZy)    N)Flask)LoginManager   )db)User)init_app)config)Migrate)init_dbc                 B   t         j                  j                  t         j                  j                  t         j                  j	                  t
                    d      }t        t        |      ddlm	m
 j                  d      fd       }j                  j                  t        |           j                  j                  d      sdj                  d<   t        d	       d
j                  v r%t        j                   j                  d
   d       n^t         j                  j                  j"                  d      }t        j                   |d       |j                  d
<   t        d|        t%        j&                         j)                         5  t+               d d d        t-               }|j'                  t$               t/               }|j'                         d|_        |j2                  d        }t5               ddlmmm j=                  d      fd       }j=                  d      fd       }j=                  d      fd       }	j=                  t>              fd       }
S # 1 sw Y   xY w)N	templates)template_folderr   )send_from_directoryabortz/assets/<path:filename>c                    t         j                  j                  t         j                  j                  t         j                  j	                  t
              d            }| j                  dd      }t         j                  j                  ||      }t        d|         t        d|        t        d|        t        dt        j                  |              t         j                  j                  |      rt        d|         ||      S d	D ]`  }t         j                  j                  |||z         }t         j                  j                  |      sFt        d
|         |||z         c S  t        d|         d       y )Nz../ditto-ai/dist/assets\/z[ASSETS DEBUG] Requested: z[ASSETS DEBUG] Normalized: z[ASSETS DEBUG] Full path: z"[ASSETS DEBUG] Directory listing: z[ASSETS DEBUG] FOUND: )z.jsz.cssz.pngz.svgz[ASSETS DEBUG] Fallback FOUND: z[ASSETS DEBUG] NOT FOUND:   )
ospathabspathjoindirname__file__replaceprintlistdirexists)filename
assets_dirnorm_filenameassets_pathextalt_pathr   r   s         +/srv/www/ollama/chat-ollama/src/__init__.pyserve_assetsz create_app.<locals>.serve_assets   sD   WW__RWW\\"''//(2KMf%gh
 ((s3ggll:}=*8*56+M?;<*;-8922::j3I2JKL77>>+&*;-89&z=AA2 	LCww||J0CDHww~~h'7zBC*:}s7JKK		L
 	*;-89c
    SQLALCHEMY_DATABASE_URIzsqlite:///app.dbuR   AVISO: SQLALCHEMY_DATABASE_URI não estava definido. Usando SQLite padrão: app.dbUPLOAD_FOLDERT)exist_okuploadsuO   AVISO: 'UPLOAD_FOLDER' não estava definido na configuração. Usando padrão: z
auth.loginc                 R    t         j                  j                  t        |             S )N)r   querygetint)user_ids    r%   	load_userzcreate_app.<locals>.load_user=   s    zz~~c'l++r'   )render_templatejsonifyrequestr   c                     j                   j                  d      sj                   j                  d      r ddi      dfS  dd      dfS )	N/api//agente/api/erroru   Recurso não encontrador   
error.htmlu   Página não encontradar8   r   
startswithr8   r3   r2   r4   s    r%   not_found_errorz#create_app.<locals>.not_found_errorE   sO    <<""7+w||/F/F~/VG%>?@#EE|3LMsRRr'     c                     t         j                  j                          j                  j	                  d      sj                  j	                  d      r ddi      dfS  dd      dfS )	Nr6   r7   r8   zErro interno do servidorr?   r9   z4Ocorreu um erro interno. Tente novamente mais tarde.r:   )r   sessionrollbackr   r<   r=   s    r%   internal_errorz"create_app.<locals>.internal_errorK   s`    


<<""7+w||/F/F~/VG%?@A3FF|3ijlooor'     c                     j                   j                  d      sj                   j                  d      r ddi      dfS  dd      dfS )	Nr6   r7   r8   zAcesso negadorD   r9   u3   Você não tem permissão para acessar este recursor:   r;   r=   s    r%   forbidden_errorz#create_app.<locals>.forbidden_errorR   sO    <<""7+w||/F/F~/VG_56;;|3hiknnnr'   c                 .   j                   j                  dt        |        d       j                  j	                  d      s9j                  j	                  d      sj
                  j                  d      dk(  r dd	i      d
fS  dd      d
fS )Nu   Erro não tratado: T)exc_infor6   r7   zContent-Typezapplication/jsonr8   zOcorreu um erro inesperador?   r9   z7Ocorreu um erro inesperado. Tente novamente mais tarde.r:   )loggerr8   strr   r<   headersr.   )r8   appr3   r2   r4   s    r%   handle_exceptionz$create_app.<locals>.handle_exceptionX   s    

.s5zl;dK<<""7+w||/F/F~/VZaZiZiZmZmn|Z}  BT  [TG%ABCSHH|3lmorrrr'   ) r   r   r   r   r   r   r   __name__flaskr   r   router	   from_objectr.   r   makedirsinstance_pathr   r   app_contextinit_databaser
   r   
login_viewuser_loaderinit_routes_mainr2   r3   r4   errorhandler	Exception)config_nametemplate_dirr&   default_upload_foldermigratelogin_managerr1   r>   rC   rF   rM   r   rL   r3   r2   r4   r   s              @@@@@@r%   
create_appr`      s&   77<<0I JKXL
,
7C0YY() *& JJ6+./::>>340B

,-bc#**$
CJJ/$? "S->->	 J
)D9&;

?#_`u_vwxKK		 c iGS" NM3+M, , S77cS S
 	cp p 	co o
 	i s !s J] s   %JJ)default)r   rO   r   flask_loginr   
extensionsr   modelsr   routesr   rX   r	   flask_migrater
   config.databaser   rU   r`    r'   r%   <module>ri      s&    	  $   0  ! 5Ur'   