Ë
    qûàg½  ã                   óx   — d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ g d¢Zd„ Z G d	„ d
e	«      Zy)é    N)Úsettings)Úget_user_model)ÚGroup)ÚBaseCommandÚCommandError)Úsignalcommand)ÚaddressÚemailsÚgoogleÚoutlookÚlinkedinÚvcardc                  óØ   — | j                  d«      }| j                  d«      }dj                  d„ ||fD «       «      }|r|S | j                  d«      }|r|S | j                  d«      }|r|S y)zReturn full name or username.Ú
first_nameÚ	last_nameú c              3   ó&   K  — | ]	  }|sŒ|–— Œ y ­w©N© )Ú.0Úns     úq/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/django_extensions/management/commands/export_emails.pyú	<genexpr>zfull_name.<locals>.<genexpr>   s   è ø€ Ò<˜!º!”AÑ<ùs   ‚ŠÚnameÚusernameÚ )ÚgetÚjoin)Úkwargsr   r   r   r   s        r   Ú	full_namer       sn   € à—‘˜LÓ)€JØ—
‘
˜;Ó'€Ià�8‰8Ñ< 
¨IÐ6Ô<Ó<€DÙØˆà�:‰:�fÓ€DÙØˆà�z‰z˜*Ó%€HÙØˆàó    c                   óv   ‡ — e Zd ZdZdZdZdZdZˆ fd„Zˆ fd„Z	d„ Z
ed	„ «       Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚCommandz=Export user email address list in one of a number of formats.z[output file]zfilename to save toTzutf-8c                 óB   •— t        ‰| �  |i |¤Ž t        «       | _        y r   )ÚsuperÚ__init__r   Ú	UserModel)ÚselfÚargsr   Ú	__class__s      €r   r&   zCommand.__init__3   s   ø€ Ü‰Ñ˜$Ð) &Ò)Ü'Ó)ˆ�r!   c                 ó¼   •— t         ‰| �  |«       |j                  ddddd d¬«      f |j                  dddd	t        d
   ddj	                  t        «      z  ¬«       y )Nz--groupz-gÚstoreÚgroupz8Limit to users which are part of the supplied group name)ÚactionÚdestÚdefaultÚhelpz--formatz-fÚformatr   z output format. May be one of %s.z, )r%   Úadd_argumentsÚadd_argumentÚFORMATSr   )r(   Úparserr*   s     €r   r3   zCommand.add_arguments7   sk   ø€ Ü‰Ñ˜fÔ%Ø×ÑØ�t G°'À4ØKð 	ó 	
ñ 	ð 	×ÑØ˜ W°8ÄWÈQÁZØ3°d·i±iÄÓ6HÑHð 	õ 	
r!   c                 ó8   —  t        t        dt        «      di |¤ŽS )NÚEXPORT_EMAILS_FULL_NAME_FUNCr   )Úgetattrr   r    )r(   r   s     r   r    zCommand.full_nameB   s   € ØKŒw”xÐ!?ÄÓKÑUÈfÑUÐUr!   c                 ó†  — t        |«      dkD  rt        d«      ‚|d   }|r„t        j                  j	                  |¬«      j                  «       dk(  sSdj                  d„ t        j                  j                  d«      D «       «      }|rd|z   d	z   }t        d
|z   dz   |z   «      ‚t        «       }t        t        dg d¢«      }t        t        dg d¢«      } |j                  j                  «       j                  |Ž }|r |j	                  |¬«      j                  «       } |j                  |Ž } t        | |d   «      |«       y )Né   zextra arguments suppliedr-   )r   z', 'c              3   ó&   K  — | ]	  }|d    –— Œ y­w)r   Nr   )r   Úgs     r   r   z!Command.handle.<locals>.<genexpr>K   s   è ø€ ÒP¨a  &¥	ÑPùs   ‚r   ú'z'.zUnknown group 'z'. Valid group names are: ÚEXPORT_EMAILS_ORDER_BY)r   r   r   ÚemailÚEXPORT_EMAILS_FIELDS)Úgroups__namer2   )Úlenr   r   ÚobjectsÚfilterÚcountr   Úvaluesr   r9   r   ÚallÚorder_byÚdistinct)	r(   r)   Úoptionsr-   Únamesr'   rI   ÚfieldsÚqss	            r   ÚhandlezCommand.handleE   s$  € äˆt‹9�qŠ=ÜÐ9Ó:Ð:Ø˜Ñ ˆÙœŸ™×-Ñ-°5Ð-Ó9×?Ñ?ÓAÀQÒFØ—K‘KÑP´5·=±=×3GÑ3GÈÓ3OÔPÓPˆEÙØ˜e™ dÑ*�ÜÐ0°5Ñ8Ð;WÑWÐZ_Ñ_Ó`Ð`ä"Ó$ˆ	Üœ8Ð%=Ò?oÓpˆÜœÐ#9Ò;kÓlˆà-ˆY×Ñ×"Ñ"Ó$×-Ñ-¨xÐ8ˆÙØ—‘¨�Ó.×7Ñ7Ó9ˆBØˆR�Y‰Y˜ÐˆØ(Œ��g˜hÑ'Ó(¨Õ,r!   c                 ó¢   ‡ — ‰ j                   j                  dj                  ˆ fd„|D «       «      «       ‰ j                   j                  d«       y)zc
        Single entry per line in the format of:
            "full name" <my@address.com>;
        ú
c              3   óp   •K  — | ]-  }d  ‰j                   di |¤Ž›d|j                  dd«      ›d�–— Œ/ y­w)ú"z" <r@   r   z>;Nr   )r    r   )r   Úentr(   s     €r   r   z"Command.address.<locals>.<genexpr>_   s2   øè ø€ Ò#oÑeh°N°D·N±NÑ4IÀSÓ4IÈ3Ï7É7ÐSZÐ\^ÕK_Ô$`Ñ#oùs   ƒ36N©ÚstdoutÚwriter   ©r(   rN   s   ` r   r	   zCommand.addressZ   s9   ø€ ð
 	�‰×Ñ˜$Ÿ)™)Ó#oÐlnÔ#oÓoÔpØ�‰×Ñ˜$Õr!   c                 óœ   — | j                   j                  dj                  d„ |D «       «      «       | j                   j                  d«       y)z\
        Single entry with email only in the format of:
            my@address.com,
        z,
c              3   óJ   K  — | ]  }|j                  d «      sŒ|d    –— Œ y­w)r@   N)r   )r   rT   s     r   r   z!Command.emails.<locals>.<genexpr>g   s   è ø€ Ò$T°cÀ3Ç7Á7È7ÕCS S¨¥\Ñ$Tùs   ‚#™
#rQ   NrU   rX   s     r   r
   zCommand.emailsb   s7   € ð
 	�‰×Ñ˜%Ÿ*™*Ñ$T¸RÔ$TÓTÔUØ�‰×Ñ˜$Õr!   c                 óä   — t        j                  t        j                  «      }|j	                  ddg«       |D ]5  }|j	                   | j
                  di |¤Ž|j                  dd«      g«       Œ7 y)z3CSV format suitable for importing into google GMailÚNameÚEmailr@   r   Nr   )ÚcsvÚwriterÚsysrV   Úwriterowr    r   ©r(   rN   ÚcsvfrT   s       r   r   zCommand.googlej   s`   € ä�z‰zœ#Ÿ*™*Ó%ˆØ�‰�v˜wÐ'Ô(Øò 	IˆCØ�M‰M˜>˜4Ÿ>™>Ñ0¨CÑ0°#·'±'¸'À2Ó2FÐGÕHñ	Ir!   c           	      ó  — t        j                  t        j                  «      }|j	                  g d¢«       |D ]F  }|j	                  |j                  dd«      |j                  dd«      |j                  dd«      g«       ŒH y)zˆ
        CSV format suitable for importing into linkedin Groups.
        perfect for pre-approving members of a linkedin group.
        )z
First Namez	Last Namer]   r   r   r   r@   N)r^   r_   r`   rV   ra   r   rb   s       r   r   zCommand.linkedinq   sm   € ô
 �z‰zœ#Ÿ*™*Ó%ˆØ�‰Ò:Ô;Øò 	gˆCØ�M‰M˜3Ÿ7™7 <°Ó4°c·g±g¸kÈ2Ó6NÐPS×PWÑPWÐX_ÐacÓPdÐeÕfñ	gr!   c                 ó  — t        j                  t        j                  «      }g d¢}|j	                  |«       dgt        |«      dz
  z  }|D ]8  }|j	                   | j                  di |¤Ž|j                  dd«      g|z   «       Œ: y)z.CSV format suitable for importing into outlook)r\   zE-mail AddressÚNoteszE-mail 2 AddresszE-mail 3 AddresszMobile PhoneÚPagerÚCompanyz	Job Titlez
Home PhonezHome Phone 2zHome FaxzHome AddresszBusiness PhonezBusiness Phone 2zBusiness FaxzBusiness AddresszOther Phonez	Other FaxzOther Addressr   é   r@   Nr   )r^   r_   r`   rV   ra   rC   r    r   )r(   rN   rc   ÚcolumnsÚemptyrT   s         r   r   zCommand.outlook{   s   € ä�z‰zœ#Ÿ*™*Ó%ˆòdˆð 	�‰�gÔØ�œ˜G› qÑ(Ñ)ˆØò 	QˆCØ�M‰M˜>˜4Ÿ>™>Ñ0¨CÑ0°#·'±'¸'À2Ó2FÐGÈ%ÑOÕPñ	Qr!   c                 ó  — 	 ddl }t
        j                  }|D �]#  }j                  «       } | j                  di |¤Ž|j                  d«      _        |j                  d«      rH|j                  d«      r7|j                  j                  |d   |d   «      |j                  d«      _        n?|j                  j                   | j                  di |¤Ž«      |j                  d«      _        |j                  d	«      r"|j                  d	«      }|d	   |_        d
|_        |j!                  |j#                  «       «       �Œ& y# t        $ r= t        | j                  j	                  d«      «       t        j                  d«       Y �Œw xY w)zVCARD format.r   Nz6Please install vobject to use the vcard export format.r;   Úfnr   r   r   r@   ÚINTERNETr   )ÚvobjectÚImportErrorÚprintÚstyleÚERRORr`   ÚexitrV   ÚvCardr    ÚaddÚvaluer   r   r\   Ú
type_paramrW   Ú	serialize)r(   rN   ro   ÚoutrT   ÚcardÚ	emailparts          r   r   zCommand.vcard‡   s2  € ð	Ûô
 �j‰jˆØó 	(ˆCØ—=‘=“?ˆDØ#1 4§>¡>Ñ#8°CÑ#8ˆD�H‰H�T‹NÔ Ø�w‰w�{Ô#¨¯©°Ô(=Ø&-§m¡m×&8Ñ&8¸¸[Ñ9IÈ3È|ÑK\Ó&]�—‘˜“Õ#ð '.§m¡m×&8Ñ&8¸¸¿¹Ñ9NÈ#Ñ9NÓ&O�—‘˜“Ô#Ø�w‰w�wÔØ ŸH™H WÓ-�	Ø"% g¡,�	”Ø'1�	Ô$à�I‰I�d—n‘nÓ&Ö'ñ	(øô ò 	Ü�$—*‘*×"Ñ"Ð#[Ó\Ô]Ü�H‰H�Q�Kð	ús   ‚E  Å AFÆF)Ú__name__Ú
__module__Ú__qualname__r1   r)   ÚlabelÚcan_import_settingsÚencodingr&   r3   r    r   rO   r	   r
   r   r   r   r   Ú__classcell__)r*   s   @r   r#   r#   +   sb   ø„ ØJ€DØ€DØ!€EàÐØ€Hô*ô	
òVð ñ-ó ð-ò( ò òIògò
Qö(r!   r#   )r`   r^   Údjango.confr   Údjango.contrib.authr   Údjango.contrib.auth.modelsr   Údjango.core.management.baser   r   Ú"django_extensions.management.utilsr   r5   r    r#   r   r!   r   ú<module>r‰      s4   ðã 
Û 
å  Ý .Ý ,ß Aå <ò€òô(r(ˆkõ r(r!   