
    ݅i                     v    d Z ddlZddlZddlZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zedk    r e             dS dS )z.
Convert markdown to WhatsApp-friendly format
    Nc                     t          j        dd| t           j                  } t          j        dd| t           j                  } t          j        dd| t           j                  } | S )z+Convert markdown headers to WhatsApp formatz
^#\s+(.+)$z**\1**flagsz^##\s+(.+)$z^###\s+(.+)$z*\1*resub	MULTILINEtexts    :/home/louicyp/clawd-clean/qmd_skill/convert_to_whatsapp.pyconvert_headersr   
   sW     6-DEEED6.)TFFFD6/7DEEEDK    c                 0   |                      d          }g }d}g }|D ]}d|v r1d|vr-|                    d          sd}|                    |           7|rZd|vs|                                dk    r>|r$|                    t          |                     g }d}|                    |           |r|                    |           |                    |           |r"|                    t          |                     d                    |          S )z'Convert markdown tables to bullet lists
F|---|--T )split
startswithappendstripextendconvert_tablejoin)r   linesresultin_table
table_rowslines         r   convert_tables_to_listsr!      s>   JJtEFHJ    $;;5,,T__U5K5K,Hd#### 
	 3d??djjllb.@.@  mJ77888
HMM$ 	 d####MM$  1mJ//00099Vr   c           	      8   | sg S | d         }d |                     d          D             }g }| dd         D ]}d|v sd|v rd |                     d          D             }t          |          t          |          k    rg }t          t          t          |          t          |                              D ]0}||         r&|                    ||          d	||                     1|r+|                    d
d                    |                      |S )z'Convert a markdown table to bullet listr   c                 ^    g | ]*}|                                 |                                 +S  r   ).0hs     r   
<listcomp>z!convert_table.<locals>.<listcomp>7   s-    AAAQqwwyyAqwwyyAAAr   r      Nr   r   c                 ^    g | ]*}|                                 |                                 +S r$   r%   )r&   cs     r   r(   z!convert_table.<locals>.<listcomp>@   s-    @@@qaggii@@@@r   z:    • z | )r   lenrangeminr   r   )rowsheaderheaders	convertedrowcells
item_partsis           r   r   r   0   sF    	 !WFAA&,,s"3"3AAAGI ABBx B BC<<5C<<@@CIIcNN@@@u::W%%J3s7||SZZ8899 C C8 C%%&A&AuQx&A&ABBB B  !@

:(>(>!@!@AAAr   c                 H   t          j        dd|           } |                     d          }g }|D ]^}t          j        d|          }t	          |          dk    r|D ]}|                    |d| d          }|                    |           _d                    |          S )zOptimize links for WhatsAppz\[([^\]]+)\]\(([^)]+)\)z\2r   z!https?://[^\s<>"]+|www\.[^\s<>"]+r)   <>)r   r   r   findallr-   replacer   r   )r   r   r   r    urlsurls         r   optimize_linksr?   M   s     6,eT::D JJtEF  z>EEt99q== 5 5||CS44d99Vr   c                     t          j        dd| t           j                  } t          j        dd| t           j                  } t          j        dd| t           j                  } | S )zFormat lists for WhatsAppz	^\d+\.\s+r,   r   z^-\s+z^\*\s+r   r
   s    r   format_listsrA   a   sW     6,BLAAAD6(FD===D6)VT>>>DKr   c                    |                      d          }g }t          |          D ]\  }}|                    |           |                                                    d          rs|                                                    d          rL|dz   t          |          k     r6||dz                                            dk    r|                    d           d                    |          S )z+Add emoji separators for better readabilityr   z**r)   r   )r   	enumerater   r   r   endswithr-   r   )r   r   r   r7   r    s        r   add_visual_separatorsrE   k   s    JJtEFU## " "4d::<<""4(( 	"TZZ\\-B-B4-H-H 	"1us5zz!!eAEl&8&8&:&:b&@&@b!!!99Vr   c                     | }t          |          }t          |          }t          |          }t          |          }t	          |          }t          j        dd|          }|                                S )z#Convert markdown to WhatsApp formatz\n\s*\n\s*\nz

)r   r!   rA   r?   rE   r   r   r   )markdown_textr   s     r   convert_to_whatsapprH   y   sm    D 4  D"4((DD$D &&D 6/6400D::<<r   c                  d   t          t          j                  dk     r2t          d           t          d           t          j        d           t          j        d         } t          t          j                  dk    rt          j        d         nd}	 t          | dd          5 }|                                }ddd           n# 1 swxY w Y   n7# t          $ r* t          d	|  d
           t          j        d           Y nw xY wt          |          }|rRt          |dd          5 }|	                    |           ddd           n# 1 swxY w Y   t          d|            nt          |           t          dt          j
                   t          dt          |           dt          j
                   t          dt          |           dt          j
                   t          d|                    t          d                    dz    t          j
                   dS )zMain function   z@Usage: python3 convert_to_whatsapp.py <input_file> [output_file]z        or pipe markdown to stdinr)   Nrzutf-8)encodingzError: File 'z' not foundwu"   ✅ Converted to WhatsApp format: u   
📊 Conversion stats:)filez   Original: z charactersz   Converted: z
   Lines: 
   )r-   sysargvprintexitopenreadFileNotFoundErrorrH   writestderrcountchr)
input_fileoutput_filefrG   whatsapp_texts        r   mainr_      s   
38}}qPQQQ0111!J!$SX!2!2#(1++K*cG444 	%FFHHM	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%   5j555666
 (66M  +sW555 	#GGM"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#@;@@AAAAm 

%CJ7777	
9#m,,
9
9
9
KKKK	
:3}--
:
:
:LLLL	
9}**3r7733a7
9
9
KKKKKKsH   C &C;C CC CC 1DD-EEE__main__)__doc__r   rP   osr   r!   r   r?   rA   rE   rH   r_   __name__r$   r   r   <module>rd      s     
			 



 				    <  :  (       !L !L !LF zDFFFFF r   