o
    Å€Öi�  ã                   @   sD   d dl mZmZmZ d dlZd dlZdd„ Zd
dd„Zd
dd	„ZdS )é    )ÚImageÚ	ImageDrawÚ	ImageFontNc                 C   s¦   |   d¡}g }|D ]G}| ¡ s| d¡ q	|  ¡ }g }|D ](}	| |	¡ d |¡}
|j|
|ddd�}||krE| ¡  | d |¡¡ |	g}q|rP| d |¡¡ q	|S )z8Helper function to wrap text natively using Raqm engine.Ú
Ú Ú ÚrtlÚfa©ÚfontÚ	directionÚlanguage)ÚsplitÚstripÚappendÚjoinÚ
textlengthÚpop)Útextr   Ú	max_widthÚ
draw_dummyÚ
paragraphsÚ	all_linesÚ	paragraphÚwordsÚcurrent_lineÚwordÚ	test_lineÚ
text_width© r   ú/root/tbot/text_to_image.pyÚ	wrap_text   s*   



€€r!   úVazirmatn-Bold.ttfc              
      s”  d\}}d}d}d}d‰ zt  |d¡}W n ty#   tdƒ g  Y S w t dd	¡}t |¡}	||d
  }
t| ||
|	ƒ‰‡ ‡fdd„t	dt
ˆƒˆ ƒD ƒ}t
|ƒdkrX|dd… }g }d}|D ]_}tjd||f|d�}t |¡}t
|ƒ| }|| d
 }|D ]&}| ¡ rŸ|j||ddd�}|| | }|j||f|||ddd� ||7 }q}dt ¡ jdd… › d�}|j|dd� | |¡ q^tdt
|ƒ› d�ƒ |S )z/Generates 1080x1080 Square images for the Feed.)é8  r#   éP   )é   r%   r%   ©éõ   r'   r'   é	   é7   uF   â�Œ Font not found! Please ensure Vazirmatn-Bold.ttf is in the folder.ÚRGB©é   r,   é   c                    s   g | ]
}ˆ||ˆ  … ‘qS r   r   )Ú.0Úi©ÚMAX_LINES_PER_SLIDEr   r   r    Ú
<listcomp>5   s    z%create_text_album.<locals>.<listcomp>r   é
   Né_   ©Úcolorr   r	   r
   ©r   Úfillr   r   Útext_slide_é   ú.jpg©Úqualityu      ðŸ–¼ï¸� Generated z Feed images.)r   ÚtruetypeÚIOErrorÚprintr   Únewr   ÚDrawr!   ÚrangeÚlenr   r   r   ÚuuidÚuuid4ÚhexÚsaver   )r   Ú	font_pathÚIMG_WÚIMG_HÚMARGINÚBG_COLORÚ
TEXT_COLORr   Ú	dummy_imgr   Úmax_text_widthÚslides_dataÚgenerated_filesÚline_heightÚslide_linesÚimgÚdrawÚtotal_text_heightÚy_textÚliner   Úx_textÚfilenamer   r0   r    Úcreate_text_album"   sH   þ
 

r\   c              	   C   s`  d\}}d}d}d}d}zt  |d¡}W n
 ty   Y dS w t dd	¡}	t |	¡}
||d
  }t| |||
ƒ}d}||d
  | }|d|… }t|ƒ|krR| 	d¡ tjd||f|d�}t |¡}t|ƒ| }|| d
 }|D ]&}| 
¡ r‘|j||ddd�}|| | }|j||f|||ddd� ||7 }qodt ¡ jdd… › d�}|j|dd� tdƒ |S )z8Generates a native 1080x1920 Vertical image for Stories.)r#   i€  éd   i^  )é   r^   r^   r&   r)   Nr*   r+   r-   r4   z...r5   r   r	   r
   r7   Únative_story_r:   r;   r<   u*      ðŸ“¸ Generated Native 9:16 Story Image.)r   r>   r?   r   rA   r   rB   r!   rD   r   r   r   r   rE   rF   rG   rH   r@   )r   rI   rJ   rK   ÚMARGIN_XÚMARGIN_YrM   rN   r   rO   r   rP   r   rS   Úmax_story_linesÚstory_linesrU   rV   rW   rX   rY   r   rZ   Ústory_filenamer   r   r    Úcreate_native_storyV   sB   ÿ



re   )r"   )	ÚPILr   r   r   rE   Úosr!   r\   re   r   r   r   r    Ú<module>   s    
4