3
b`n                 @   sP   d dl mZ ddlmZ ddlmZ ddlmZmZm	Z	m
Z
 G dd deZd	S )
    )unicode_literals   )PostProcessor   )compat_os_name)hyphenate_datewrite_xattrXAttrMetadataErrorXAttrUnavailableErrorc               @   s   e Zd Zdd ZdS )XAttrMetadataPPc             C   sV  | j jd |d }ypddddddd	}d
}xP|j D ]D\}}|j|}|r6|dkr\t|}|jd}t||| |d7 }q6W g |fS  tk
r }	 z| j jt	|	 g |fS d}	~	X n t
k
rP }	 z||	jdk r| j jd|rdndd j   nF|	jdkr| j jd n,d}
tdkr*|
d7 }
n|
d7 }
| j j|
 g |fS d}	~	X nX dS )zI Set extended attributes on downloaded file (if xattr support is found). z,[metadata] Writing metadata to file's xattrsfilepathwebpage_urltitleupload_datedescriptionuploaderformat)zuser.xdg.referrer.urlzuser.dublincore.titlezuser.dublincore.datezuser.dublincore.descriptionzuser.dublincore.contributorzuser.dublincore.formatr   zutf-8r   NNO_SPACEzTThere's no disk space left, disk quota exceeded or filesystem xattr limit exceeded. zSome  z$extended attributes are not written.VALUE_TOO_LONGz;Unable to write extended attributes due to too long values.z5This filesystem doesn't support extended attributes. ntzYou need to use NTFS.z0(You may have to enable them in your /etc/fstab))_downloader	to_screenitemsgetr   encoder   r
   report_errorstrr	   reasonreport_warning
capitalizer   )selfinfofilenameZxattr_mappingZnum_writtenZ	xattrnameZinfonamevalueZ
byte_valueemsg r'   LC:\Users\Broad\Desktop\All-Down\binaries\youtube_dl\postprocessor\xattrpp.pyrun   sH    



zXAttrMetadataPP.runN)__name__
__module____qualname__r)   r'   r'   r'   r(   r      s   r   N)
__future__r   commonr   compatr   utilsr   r   r	   r
   r   r'   r'   r'   r(   <module>   s   