3
NZ                 @   s   d dl Z d dlZd dlZd dlmZ d dlZd dlT d dlT d dlm	Z	m
Z
mZmZ ddlT ddlT ddlmZ ddlmZ G dd	 d	eZdS )
    N)BytesIO)*)deviceutilscodesdime   )SOAPFaxSendThread)SOAPFaxDevicec               @   sd   e Zd ZdddedfddZdd Zdd Zd	d
 ZeeeZ	dd Z
dd Zeee
Zdd ZdS )LEDMSOAPFaxDeviceNFc             C   s   t j| ||||| d S )N)r
   __init__)selfZ
device_uriZprinter_namecallbackZfax_typeZdisable_dbus r   #/usr/share/hplip/fax/ledmsoapfax.pyr   -   s    zLEDMSOAPFaxDevice.__init__c             C   s   d|| j t||f }tj| | j|jd t }x| jd|ddrJq8W |j }tj|j	d | j
  tj|}|d krtS yt|jd}W n ttfk
r   t}Y nX |tkS )NzbPUT %s HTTP/1.1
Connection: Keep-alive
User-agent: hplip/2.0
Host: %s
Content-length: %d

%szutf-8i      )Ztimeoutr   )Z	http_hostlenlogZlog_dataZwriteEWS_LEDMencoder   ZreadEWS_LEDMgetvaluedecodeZcloseEWS_LEDMZhttp_result_patmatchZHTTP_OKintgroup
ValueError	TypeErrorZ
HTTP_ERROR)r   ZurlZpostdataZresponser   coder   r   r   put8   s"    

 
zLEDMSOAPFaxDevice.putc             C   s"   t | }tjd|  | jd|S )NzSetPhoneNum:xml Value:%sz/DevMgmt/FaxConfigDyn.xml)ZsetPhoneNumXMLr   debugr   )r   Znumxmlr   r   r   setPhoneNumU   s    zLEDMSOAPFaxDevice.setPhoneNumc             C   s   | j ddS )Nz/DevMgmt/FaxConfigDyn.xmlz>faxcfgdyn:faxconfigdyn-faxcfgdyn:systemsettings-dd:phonenumber)readAttributeFromXml_EWS)r   r   r   r   getPhoneNum[   s    zLEDMSOAPFaxDevice.getPhoneNumc             C   s<   yt | }W n" ttfk
r.   tjd Y nX | jd|S )NzUnicode Errorz/DevMgmt/FaxConfigDyn.xml)ZsetStationNameXMLUnicodeEncodeErrorUnicodeDecodeErrorr   errorr   )r   namer    r   r   r   setStationNamea   s
    z LEDMSOAPFaxDevice.setStationNamec             C   s   | j ddS )Nz/DevMgmt/FaxConfigDyn.xmlz>faxcfgdyn:faxconfigdyn-faxcfgdyn:systemsettings-dd:companyname)r"   )r   r   r   r   getStationNamej   s    z LEDMSOAPFaxDevice.getStationNamec             C   sl   t j }d|d |d |d |d |d |d f }t| }tjd|  | jd	|rZd
S tjd dS d S )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)timeZ	localtimeZsetDateTimeXMLr   r   r   )r   tZdate_bufr    r   r   r   setDateAndTimep   s    ,
z LEDMSOAPFaxDevice.setDateAndTime)__name__
__module____qualname__ZFAX_TYPE_NONEr   r   r!   r#   propertyZ	phone_numr(   r)   Zstation_namer/   r   r   r   r   r   *   s   
	
r   )sysosr-   Zbase.sixextr   reZbase.gZ
base.codesbaser   r   r   r   ZfaxZledmfaxZsoapfaxr	   r
   r   r   r   r   r   <module>   s   