
    eB1i                     @   d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	Z
	 d dlmZ dZ G d d	ej                         Zd
 Zd Zedk(  rDd dlZ eej,                  d         Zej1                         D ]  Z eed   dded   d        yy# e$ r	 d dlmZ Y tw xY w)    )print_functionN)make_parser)handler)InputSource)StringIOz2urn:oasis:names:tc:opendocument:xmlns:manifest:1.0c                   H    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
dd
Zd Zy	)ODFManifestHandlerzV The ODFManifestHandler parses a manifest file and produces a list of
        content c                 \    i | _         t        df| j                  | j                  fi| _        y )Nz
file-entry)manifest
MANIFESTNSs_file_entry	donothingelements)selfs    B/var/www/html/venv/lib/python3.12/site-packages/odf/odfmanifest.py__init__zODFManifestHandler.__init__-   s-    
 
\"T%6%6$G
    c                      |||       y N )r   tagmethodattrss       r   handle_starttagz"ODFManifestHandler.handle_starttag6   s    s5r   c                      ||       y r   r   )r   r   r   s      r   handle_endtagz ODFManifestHandler.handle_endtag9   s	    sr   c                     | j                   j                  |d      d   }|r| j                  |||       y | j                  ||       y )NNNr   )r   getr   unknown_starttag)r   r   qnamer   r   s        r   startElementNSz!ODFManifestHandler.startElementNS<   sB    ""35a8  fe4!!#e,r   c                     | j                   j                  |d      d   }|r| j                  ||       y | j                  |       y )Nr      )r   r   r   unknown_endtag)r   r   r!   r   s       r   endElementNSzODFManifestHandler.endElementNSC   s>    ""35a8sF+$r   c                      y r   r   r   r   r   s      r   r    z#ODFManifestHandler.unknown_starttagJ       r   c                      y r   r   )r   r   s     r   r%   z!ODFManifestHandler.unknown_endtagM   r)   r   Nc                      y r   r   r(   s      r   r   zODFManifestHandler.donothingP   r)   r   c                     |j                  t        dfd      }|j                  t        df      }||d| j                  |<   y )N
media-typezapplication/octet-stream	full-path)r-   r.   )r   r   r   )r   r   r   mps        r   r   zODFManifestHandler.s_file_entryS   s>    IIz<01KLIIz;/0*+<ar   r   )__name__
__module____qualname____doc__r   r   r   r"   r&   r    r%   r   r   r   r   r   r	   r	   )   s4    
-%=r   r	   c                    t               }t               }|j                  t        j                  d       |j                  |       |j                  t        j                                t               }t        | t              s| j                  d      } |j                  t        |              |j                  |       |j                  S )Nr$   zutf-8)r	   r   
setFeaturer   feature_namespacessetContentHandlersetErrorHandlerErrorHandlerr   
isinstancestrdecodesetByteStreamr   parser   )manifestxml	odhandlerparserinpsrcs       r   manifestlistrD   _   s    "$I]F
g00!4
Y'
7//12]Fk3'&&w/
+./
LLr   c                     t        j                  |       }|j                  d      }|j                          t	        |      S )NzMETA-INF/manifest.xml)zipfileZipFilereadcloserD   )odtfilezr   s      r   odfmanifestrL   n   s3     Avv-.HGGI!!r   __main__r$   r-   40 r.   )
__future__r   rF   defusedxml.saxr   xml.saxr   xml.sax.xmlreaderr   xml.sax.saxutilsxml	cStringIOr   ImportErrorior   ContentHandlerr	   rD   rL   r1   sysargvresultvaluesfileprintr   r   r   <module>r`      s   * &  &  ) " @
-=// -=l" z!%F H\ 2D4EFGH m  s   B BB