o
    Hëi¸  ã                   @   sl   d Z ddlmZ ddlmZ ddlmZ ddlZddlZdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ Zdd„ ZdS )uC   
ä¿®æ”¹å›¾ç‰‡åå’Œå›¾ç‰‡hashã€md5,éœ€è¦æŒ‡å®šå›¾ç‰‡æ–‡ä»¶å¤¹å
é    )Úoc_util)Úoc_yaml)Úoc_toolNc                  C   s6   t tjd d dƒag ag atj} t| ƒ t| ƒ d S )Nu   /Fileæ··æ·†æ—¥å¿—z.txtÚa)	Úopenr   Úpath_mixÚfile_mix_logÚold_image_name_listÚnew_image_name_listÚpath_mix_projectÚ"rename_file_and_content_image_nameÚreplace_file_content)Úpath© r   ú@/data/storage/obfuscation/tool/ObjectiveC/oc_function/o_image.pyÚinit	   s   r   c                 C   sj   t j| ddD ]+\}}}|D ]#}|tjvr&tjd }t j ||¡}t|ƒ qt j ||¡}t|ƒ qqdS )u    ä¿®æ”¹å›¾ç‰‡å T©Útopdownz.bundleN)	ÚosÚwalkr   Úlist_image_folderr   Úname_current_projectr   ÚjoinÚget_image_name)r   ÚrootÚdirsÚ_ÚnameÚ
image_pathr   r   r   r      s   



öÿr   c                 C   sè   t j| ddD ]j\}}}dd„ |D ƒ|d d …< |D ]W}t j ||¡}tttƒƒD ]G}t| }t| }t|dƒ}	|	 	¡ }
||
v rFt
|
||ƒ}
W d   ƒ n1 sPw   Y  t|dƒ}	|	 |
¡ W d   ƒ n1 sjw   Y  q(qqd S )NTr   c                 S   s&   g | ]}t j |¡d  tjv r|‘qS )é   )r   r   Úsplitextr   Úlist_support_open_file_type)Ú.0Úfr   r   r   Ú
<listcomp>%   s   & z(replace_file_content.<locals>.<listcomp>ÚrÚw)r   r   r   r   ÚrangeÚlenr	   r
   r   ÚreadÚreplace_word_in_file_contentÚwrite)r   r   r   Úfilesr   Ú	file_pathÚindexÚold_textÚnew_textr#   Úfile_contentr   r   r   r   #   s(   €ýÿ€ùþþr   c                 C   sN   t  d| ¡}| | ¡}|D ]}|d d… | |dd …  }|  ||¡} q| S )Nz	["]%s[".]r   éÿÿÿÿ)ÚreÚcompileÚfindallÚreplace)r1   Úold_wordÚnew_wordÚp1ÚaListr   Úbr   r   r   r*   1   s   
r*   c           
      C   sØ   t j| ddD ]b\}}}|D ]Z}t j |¡}|d tjv rh|d }| d¡r,| dd¡}| d¡r7| dd¡}t|ƒ}t	|ƒdkrBqt j 
||¡}| ||¡}t j 
||¡}	t d| d	¡|f ¡ t  ||	¡ qqd S )
NTr   r   r   z@2xÚ z@3xu    åŽŸå›¾ç‰‡å:%s è¢«ä¿®æ”¹ä¸º:%s
é   )r   r   r   r    r   Úlist_image_typeÚendswithr6   Úrandom_one_new_image_namer(   r   r   r+   ÚljustÚrename)
r   r   r   r,   r   Ú	name_listÚtop_nameÚnew_nameÚold_pathÚnew_pathr   r   r   r   8   s(   

€ñÿr   c                 C   sÊ   | t v rt  | ¡}t| S t d| ¡dkrdS d}d}tjD ]}|  |¡r)|} nqt| ƒt|ƒ t|ƒ }|t 	|d¡ | }t 
|¡dkrKt| ƒS t  | ¡ t |¡ tjj | ¡ tjj |¡ |S )u    éšæœºä¸€ä¸ªå›¾ç‰‡å u   å›¾ç‰‡Fr<   )r	   r.   r
   r   Úis_word_can_mixr   Úlist_keep_wordr?   r(   Úrandom_one_stringÚis_name_legalr@   Úappendr   Úclass_oc_fileÚtotal_words)Úold_namer.   rE   Ú	keep_wordÚwordÚcountr   r   r   r@   J   s*   


þ

r@   )Ú__doc__Ú
ObjectiveCr   r   r   r   r3   r   r   r   r*   r   r@   r   r   r   r   Ú<module>   s    