o
    f<                     @   sl  U d dl m Z  d dlZd dlZd dlZd dlZd dlZd dlT d dlmZ d dl	Z	ej
ddddZ
eed	< ej
e
sFej
ddd
ddZ
ej
jZeed< ddededee fddZee
dadZeddaeddZeddaeddZdYddZdYddZdYdd Zd!dg dd!fd"d#ZdYd$d%ZdZd(d)ZdZd*d+Z d,d- Z!d[d.d/Z"d[d0d1Z#d2ed3ed4edefd5d6Z$d7ed8edefd9d:Z%de&fd;d<Z'd=d> Z(de&fd?d@Z)defdAdBZ*defdCdDZ+g d!fdEedFedGede,e&e-f fdHdIZ.defdJdKZ/dEede,e&e-f fdLdMZ0d\dNedOedPedQe1dRe1de,e&e-f fdSdTZ2dUdV Z3e4dWkr4e5e3dX dS dS )]    )globN)*)Response/varwwwffxivpathhtdocsw01dc079zff14.akurosiakamo.depathdelimitterr   _typefiletypereturnc                 C   s   | dkrt tjtdddddd| S | dkr*t tjtdddd	dd| S | d
kr>t tjtddddd| S | dkrRt tjtddd	dd| S g S )N	trans-exdextrasjson	translateexd-alllatestz*.	trans-rawzraw-exd-allfull-exdfull-raw)r   osr	   join)r   r    r   /var/www/ffxiv/api/ffxiv.py	loadFiles   s   ""  r   )
customPathr   r   r   r   r   Fc              
   C   j   zt }| r
tdd}dd |D }W n ty( } z
|dfW  Y d }~S d }~ww |g kr1g dfS t|S )Nr   r   c                 S   s   g | ]}t j|qS r   )r   r	   basename.0fr   r   r   
<listcomp>2   s    z&translate_overview.<locals>.<listcomp>  translate_exd_filesr   	Exceptionsortedreloadfileser   r   r   translate_overview,      
r.   c              
   C   r   )Nr   r   c                 S       g | ]}t j|d dqS 	_all.json r   r	   r    replacer!   r   r   r   r$   @        z(translate_categories.<locals>.<listcomp>r%   r&   r*   r   r   r   translate_categories:   r/   r7   c              
   C   s   zG|rt ddai }tD ]9}t|   d | v rEtj|dd }t|dddd}t	
|W  d      W S 1 s@w   Y  qW n ty] } z
|d	fW  Y d }~S d }~ww |i krfi d	fS |d
fS )Nr   r   r2   r   rutf-8ignoreencodingerrorsr%      )r   r'   r   lowerr   r	   r    splitopenr   loadr(   )namer+   resultfilefilenamer#   r-   r   r   r   translate_categoryH   s&   
&rG   r3   c              
   C   s  zt | d} t | d} |rtd|  dtj}n| ddddddd	d
} t| tj}|r9tdda|g krEtdtj}ntt|}dd	| d}t|tj}i }tD ]d}|
t|rtj|dd }	t|dddd}
t|
}W d    n1 sw   Y  | D ].\}}|
t|s|
d| dr||	d sg ||	< |dkst||}||	 | qq_W n ty } zt  |dfW  Y d }~S d }~ww |i kri dfS |dfS )N"'z[a]z\[a\]z[t]z\[t\]z[A]z\[A\]z[T]z\[T\]r   r   z.*(|)r2   r   r8   r9   r:   r;   r3   r%   r>   )removeLeadingAndTrailingElementrecompile
IGNORECASEr5   r   r'   evalstrr   searchr   r	   r    r@   rA   r   rB   itemsgetremoveLanguagesFromValueappendr(   	traceback	print_exc)textr+   file_filterexactremoveLanguagesregexp
fileregexprD   rE   rF   r#   dataxkeyvaluer-   r   r   r   translate_search^   sL   

$
 
rc   c              
   C   sT   z| rt  aW n ty } z
|dfW  Y d }~S d }~ww ti kr&i dfS tdfS )Nr%   r>   )get_any_Logdatadatar(   )r+   r-   r   r   r   
getLogData   s   rf   Neuer OrdnerNetwork_*.logc              
   C   ^   t jtdd}t j|d}td|d|d| d|g t  tt j|| |}t| dS )	Nr   FFlogszcreate_logdata.pypython3-mp-sp-frzLogdata was reloadedr>   r   r	   r   
subprocesscallloadDatar   printsubPath	fileRegexnewpath
executabler,   r   r   r   updateLogData      rz   c              
   C   ri   )	Nr   rj   zsplit_log_files_by_encounter.pyrk   rl   rm   rn   ro   rp   ru   r   r   r   	splitLogs   r{   r|   c                 C   sT   t | }g }|  D ]\}}|D ]}d| |v r|| qq|D ]}| |= q"| S )N_)rQ   rT   rW   )rb   r]   removerkeyrvaluelangr-   r   r   r   rV      s   

rV   c                 C   s   |rt  ag }| r>d| v rd| v rt| } t| tkr)| D ]
}tt| | qn#|  } t| d} t| d} tt| | nt D ]	\}}|	| qB|g krTg dfS t
|S )N[]rH   rI   r%   )rs   re   rQ   typelistaddElementIfFoundr?   rM   rT   rW   r)   )doesContainr+   xdContainra   rb   r   r   r   getAllInstances   s&   

r   c                 C   sD   |rt  a|  } t D ]\}}| | kr| |i  S qi dfS )Nr%   )rs   re   r?   rT   )rC   r+   ra   rb   r   r   r   getInstance   s   r   arrayrS   rD   c                 C   s8   t |t j}|  D ]\}}||r|| q|S N)rN   rO   rP   rT   rS   rW   )r   rS   rD   r^   ra   rb   r   r   r   r      s   

r   rZ   elementc                 C   s0   |  |r| dd  } | |r| d d } | S )N   )
startswithendswith)rZ   r   r   r   r   rM      s
   

rM   c                 C   sN   g }|   D ]\}}|d dkr|| q|D ]}z| |= W q   Y q| S )Ndisabledtrue)rT   rW   )versions
removeListra   rb   r   r   r   removeDisabledVersions   s   

r   c                 C   sD   i }|   D ]\}}|drt|dkr|d d }|||< q|S )N0   r   )rT   r   len)re   r_datakvr   r   r   !remove_trailing_zero_for_versions  s   
r   c                  C   sT   t tjtddd} t| }W d    n1 sw   Y  t|}t|}|S )Nr   r   version.json)rA   r   r	   r   r   rB   r   r   )r#   re   r   r   r   getVersions  s   r   c                  C   l   t tjtddd} t| }W d    n1 sw   Y  t|}t| d \}}t	||i}|S )Nr   r   r   r   
rA   r   r	   r   r   rB   r   r   rT   r   r#   re   r   r   r   r   r   getLatestVersions     r   c                  C   r   )Nr   r   r   r   r   r   r   r   getLastVersions!  r   r   rC   fieldfilter
filtertermc              
      sn  |  ds	| d } zttjtdddd| }t|}W d    n1 s'w   Y   g ksS|dkrSi }| D ]\}} fdd| D }|||< q:|d	fW S |dksi }| D ]5\}}d
}	| D ]\}
}| t	| v rwd}	qg|	r g ks fdd| D }|||< q]|||< q]|d	fW S |d	fW S  t
y } zt| i dfW  Y d }~S d }~ww )N.jsonr   r   r   r   r3   c                       i | ]\}}| v r||qS r   r   r"   key2value2r   r   r   
<dictcomp>6      z!getLatestJSON.<locals>.<dictcomp>r>   FTc                    r   r   r   r   r   r   r   r   E  r   r%   )r   rA   r   r	   r   r   rB   rT   r?   rR   r(   rt   )rC   r   r   r#   re   newdatara   rb   	new_valuefound_value_in_rowr   r   r-   r   r   r   getLatestJSON*  sB   





r   c               
   C   s\   zt } dd | D } W n ty! } z
|dfW  Y d }~S d }~ww | g kr*g dfS t| S )Nc                 S   r0   r1   r4   r!   r   r   r   r$   U  r6   z&getLatestJSONnames.<locals>.<listcomp>r%   )full_exd_filesr(   r)   )r,   r-   r   r   r   getLatestJSONnamesQ  s   r   c                 C   s  | }|  ds| d } zz$ttjtdddd| }t|}W d    n1 s*w   Y  W n5   |} |  ds?| d } t|  ttjtdddd| }t|}W d    n1 s`w   Y  Y d }| D ]S\}}|	dddks||| }|	d	ddks|| }|	d
ddks|| }|	dddks|| }|	dddks|| }|	dddks|| }|r|  W S qlt
t| W S    i df Y S )Nr   r   r   r   r   z.de.jsonNamer3   SingularPluralDescription	PlacenameTerritoryTyper%   )r   rA   r   r	   r   r   rB   rt   rT   rU   nextitervalues)rC   name_xr#   re   
retunvaluera   rb   r   r   r   getLatestJSONfields]  sL   


r   map_idr   zpixelr+   c                 C   s(   t | ||||}|i kr|dfS i dfS )Nr>   r%   )getCoordorPixelFromMap)r   r   r   r   r+   rD   r   r   r   api_getCoordorPixelFromMap  s   r   c                 C   s   t | \}}t||fS r   )getFFLOGSapiPlayerDatar   dumps)playerrD   coder   r   r   "wrapper_for_getFFLOGSapiPlayerData  s   r   __main__z?[["Akurosia Kamo","Shiva","EU"],["Kamo Akurosia","Shiva","EU"]])F)rg   rh   )r3   F)FF)6r   r   r   rN   rq   sys	ffxiv_akurequests.modelsr   rX   r	   r   rR   __annotations__existssepr   r   r   rd   re   mapsr'   translate_rawexd_filesr   full_rawexd_filesr.   r7   rG   rc   rf   rz   r|   rV   r   r   r   rM   dictr   r   r   r   r   tupleintr   r   r   boolr   r   __name__rt   r   r   r   r   <module>   sZ   








/




		(	',&
0