
    =	f                         d dl Z d dlZd dlZd dlmZ d dlZd dl d dl d dlm	Z	m
Z
mZmZ ddl ddl ddlmZ ddlmZ  G d d	e      Zy)
    N)BytesIO)*)deviceutilscodesdime   )SOAPFaxSendThread)SOAPFaxDevicec                   l    e Zd ZdddedfdZd Zd Zd Zd Z e	ee      Z
d Zd	 Z e	ee      Zd
 Zy)LEDMSOAPFaxDeviceNFc                 8    t        j                  | |||||       y )N)r   __init__)self
device_uriprinter_namecallbackfax_typedisable_dbuss         #/usr/share/hplip/fax/ledmsoapfax.pyr   zLEDMSOAPFaxDevice.__init__-   s!    
 	tZ'#X'	)    c                      y)NF r   s    r   isAuthRequiredz LEDMSOAPFaxDevice.isAuthRequired7   s    r   c                 \   d|| j                   t        |      |fz  }t        j                  |       | j	                  |j                  d             t               }| j                  d|d      r	 | j                  d|d      r|j                         }t        j                  |j                  d             | j                          t        j                  |      }|t        S 	 t        |j                  d            }|t        k(  S # t         t"        f$ r t$        }Y |t        k(  S w xY w)NzbPUT %s HTTP/1.1
Connection: Keep-alive
User-agent: hplip/2.0
Host: %s
Content-length: %d

%szutf-8i      )timeoutr	   )	http_hostlenloglog_datawriteEWS_LEDMencoder   readEWS_LEDMgetvaluedecodecloseEWS_LEDMhttp_result_patmatchHTTP_OKintgroup
ValueError	TypeError
HTTP_ERROR)r   urlpostdataresponser*   codes          r   putzLEDMSOAPFaxDevice.put;   s    
dnnc$i./ 	T4;;w/09h: h: $$&X__W-.%%h/=.	u{{1~&D w I& 	Dw	s   (D D+*D+c                 h    t         |z  }t        j                  d|z         | j                  d|      S )NzSetPhoneNum:xml Value:%s/DevMgmt/FaxConfigDyn.xml)setPhoneNumXMLr!   debugr6   )r   numxmls      r   setPhoneNumzLEDMSOAPFaxDevice.setPhoneNumX   s0    s#		,c12xx3S99r   c                 &    | j                  dd      S )Nr8   z>faxcfgdyn:faxconfigdyn-faxcfgdyn:systemsettings-dd:phonenumberreadAttributeFromXml_EWSr   s    r   getPhoneNumzLEDMSOAPFaxDevice.getPhoneNum^   !    ,,-H  JJ  K  	Kr   c                     	 t         |z  }| j                  d      S # t        t        f$ r t        j	                  d       Y 8w xY w)NzUnicode Errorr8   )setStationNameXMLUnicodeEncodeErrorUnicodeDecodeErrorr!   errorr6   )r   namer<   s      r   setStationNamez LEDMSOAPFaxDevice.setStationNamed   sH    	'#T)C xx3S99 "#56 	'IIo&	's   	 $AAc                 &    | j                  dd      S )Nr8   z>faxcfgdyn:faxconfigdyn-faxcfgdyn:systemsettings-dd:companynamer?   r   s    r   getStationNamez LEDMSOAPFaxDevice.getStationNamem   rB   r   c                     t        j                         }d|d   |d   |d   |d   |d   |d   fz  }t        |z  }t        j	                  d|z         | j                  d	|      ry
t        j	                  d       y)Nz%4d-%02d-%02dT%02d:%02d:%02dr   r	            r   zsetDateTimeXML Value:%sz/DevMgmt/ProductConfigDyn.xmlTzAFailed to set date and time. Set date and time using front panel.F)time	localtimesetDateTimeXMLr!   r:   r6   )r   tdate_bufr<   s       r   setDateAndTimez LEDMSOAPFaxDevice.setDateAndTimes   s~    NN1QqT1Q41qtQqTSTUVSW4XXx(		+S01883S9IIZ[r   )__name__
__module____qualname__FAX_TYPE_NONEr   r   r6   r=   rA   property	phone_numrI   rK   station_namerU   r   r   r   r   r   *   sX     #'T'#)::K k2I:K NN;L
r   r   )sysosrP   base.sixextr   rebase.g
base.codesbaser   r   r   r   faxledmfaxsoapfaxr
   r   r   r   r   r   <module>rg      s>   2  	   	   + +   & "S Sr   