
    Pj                       d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZ ddlmZmZmZ ddlmZ ddlm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"m#Z#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9m:Z: ddl;m<Z<m=Z= dZ>erddl?Z?ddlm@Z@ ddlAmBZB ddlCmDZD ddlEmFZGmHZImJZK ddlLmZMm:ZNmOZP ddlQmZR ddlSm&ZTmUZU dd lVmWZW dd!lXmYZY dd"lZm[Z[ dd#l\m]Z^m_Z` dd$lambZb dd%lcmdZd dd&lemfZf eeBe@j                  e,ebe&ee(e0e2e4ee6e$e.efeddf   ZhdZd(Zid[d)Zjd\d*Zkd]d+Zl	 	 	 	 	 	 d^d,Zmd_d-Znd`d.Zodad/Zpdbd0Zqdcd1Zrddd2Zsded3Zt	 	 	 	 	 	 dfd4Zudgd5Zvdgd6Zwdgd7Zxdhd8Zydid9Zzdjd:Z{dkd;Z|	 	 	 	 	 	 dld<Z} ed=ej                  >      Zdmd?Z ed@ej                  >      ZdndAZ	 	 	 	 	 	 dodBZ G dC dD      Zed'egef   Z G dE dF      Z G dG dH      Z G dI dJe      Z G dK dLe      Z G dM dNe      Z G dO dPe      Z G dQ dRe      Z G dS dTe      Z G dU dVe      Z G dW dXe      Z G dY d'e      ZHy)pa:  
The MIT License (MIT)

Copyright (c) 2015-present Rapptz

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
    )annotations)TYPE_CHECKINGAnyCallableClassVarMapping	GeneratorListOptionalTupleTypeTypeVarUnion   )enumsflagsutils)AssetColour)Invite)Hashable)Object)PermissionOverwritePermissions)AutoModTriggerAutoModRuleActionAutoModRule)Role)EmojiPartialEmoji)Member)ScheduledEvent)StageInstance)GuildSticker)Thread)PartialIntegration)ForumChannelStageChannelForumTag)OnboardingPromptOnboardingPromptOption)AuditLogDiffAuditLogChangesAuditLogEntryN)abc)Guild)ConnectionState)AuditLogChanger0   _AuditLogChange_TriggerMetadata)r   r+   DefaultReaction)r   RoleColours)	Snowflake)ApplicationCommandPermissions)AutoModerationAction)PromptPromptOption)User
AppCommandWebhookr0   c                ,    t        j                  |      S N)r   
parse_timeentrydatas     E/root/.hermes/venv/lib/python3.12/site-packages/discord/audit_logs.py_transform_timestamprI   g   s    D!!    c                    t        |      S rC   r   rE   s     rH   _transform_colorrL   k   s    $<rJ   c                    t        |      S rC   )intrE   s     rH   _transform_snowflakerO   o   s    t9rJ   c                l    |y | j                   j                  t        |            xs t        |      S Nid)guildget_channelrN   r   rE   s     rH   _transform_channelrV   s   s,    |;;""3t9-@4@rJ   c                    |D cg c]4  }| j                   j                  t        |            xs t        |      6 c}S c c}w rQ   )rT   get_channel_or_threadrN   r   rE   s     rH   _transform_channels_or_threadsrY   y   s:     Y]]PTEKK--c$i8KFdOK]]]s   9Ac                <    |y | j                  t        |            S rC   )_get_memberrN   rE   s     rH   _transform_member_idr\      s    |SY''rJ   c                P    |y | j                   j                  t        |            S rC   )_state
_get_guildrN   rE   s     rH   _transform_guild_idr`      s#    |<<""3t9--rJ   c                    |D cg c]9  }| j                   j                  t        |            xs t        |t              ; c}S c c}w Ntype)rT   get_rolerN   r   r   )rF   rG   role_ids      rH   _transform_rolesrg      s9    \`aQXEKK  W.L&t2LLaaas   >Ac                T   | j                   }t        |t              rdt        |j                  t              rJt        t        |      D cg c]0  }|j                  j                  |      xs t        |t              2 c}S |D cg c]  }t        |t               c}S c c}w c c}w NrS   rd   )
target
isinstancer'   parentr)   maprN   get_tagr   r+   )rF   rG   threadtag_ids       rH   _transform_applied_forum_tagsrr      s|    \\F&&!j&M`cdgim`noV\%%f-Q61QQoo;?@Ff8,@@ p@s   	5B B%c                   t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j
                  t         j                  j                  t         j                  j                  f}t         j                  j                  t         j                  j                  t         j                  j                  f}| j                  |v rt        j                  j                  |      S | j                  |v rt        j                  j                  |      S |S rC   )r   AuditLogActionchannel_createchannel_updatechannel_deletethread_createthread_updatethread_deleteinvite_createinvite_updateinvite_deleteactionr   ChannelFlags_from_valueInviteFlags)rF   rG   channel_audit_log_typesinvite_audit_log_typess       rH   _transform_overloaded_flagsr      s    
 	++++++****** 	****** ||..!!--d33	/	/  ,,T22KrJ   c                j    |D cg c]#  }t        j                  | j                  |      % c}S c c}w )N)staterG   )r+   	from_datar^   )rF   rG   ds      rH   _transform_forum_tagsr      s'    DHIqHU\\:IIIs   (0c                    |y |j                  d      xs d}t        j                  |d      xs d }t        j                  | j
                  ||      S )N
emoji_name emoji_id)r   namerS   )getr   _get_as_snowflaker"   
with_stater^   )rF   rG   r   r   s       rH   _transform_default_reactionr      sM    |,'-2J&&tZ8@DH""J8TTrJ   c                   g }|D ]  }t        t        |d               }t        t        |d               }t        j                  ||      }|d   }t        |d         }d }	|dk(  r| j                  j                  |      }	n|dk(  r| j                  |      }	|	t        ||dk(  rt        nt              }	|j                  |	|f        |S )Nallowdenyrd   rS   01rj   )r   rN   r   	from_pairrT   re   r[   r   r   r#   append)
rF   rG   
overwriteselemr   r   owow_typeow_idrk   s
             rH   _transform_overwritesr      s     J (CW./3tF|,- **5$7v,DJc>[[))%0F^&&u-F>u7c>4vNF62,'!($ rJ   c                   |y | j                   t        j                  j                  u r5t	        j
                  | j                  | j                  j                  |      S t	        j                  | j                  | j                  |d      S )Nrolepath)r~   r   rt   guild_updater   _from_guild_iconr^   rT   rS   
_from_icon
_target_idrE   s     rH   _transform_iconr      sd    |||u++888%%ellEKKNNDIIe.>.>6RRrJ   c                ^    |y t        j                  | j                  | j                  |      S rC   )r   _from_avatarr^   r   rE   s     rH   _transform_avatarr      s)    |ellE,<,<dCCrJ   c                ^    |y t        j                  | j                  | j                  |      S rC   )r   !_from_scheduled_event_cover_imager^   r   rE   s     rH   _transform_cover_imager      s*    |225<<AQAQSWXXrJ   c                     d fd}|S )Nc                x    |y t        j                  | j                  | j                  j                  |      S )Nr   )r   _from_guild_imager^   rT   rS   )rF   rG   r   s     rH   
_transformz+_guild_hash_transformer.<locals>._transform   s/    <&&u||U[[^^TPTUUrJ   rF   r0   rG   Optional[str]returnzOptional[Asset] )r   r   s   ` rH   _guild_hash_transformerr      s    V
 rJ   c                R    |D cg c]  }t        j                  |       c}S c c}w rC   )r   r   )rF   rG   r~   s      rH   _transform_automod_actionsr      s"    >BCF''/CCCs   $c                    t        |      S )N)r   r!   rE   s     rH   _transform_default_emojir      s    T""rJ   c                    |D cg c].  }t        j                  || j                  | j                        0 c}S c c}w N)rG   r   rT   )r,   	from_dictr^   rT   )rF   rG   prompts      rH   _transform_onboarding_promptsr      s/    imn_e&&F%,,ekkZnnn   3;c                    |D cg c].  }t        j                  || j                  | j                        0 c}S c c}w r   )r-   r   r^   rT   )rF   rG   options      rH   $_transform_onboarding_prompt_optionsr      s6     pttek",,&TYT_T_`tttr   E)boundc                     d fd}|S )Nc                0    t        j                  |      S rC   )r   try_enum)rF   rG   enums     rH   r   z%_enum_transformer.<locals>._transform	  s    ~~dD))rJ   )rF   r0   rG   rN   r   r   r   )r   r   s   ` rH   _enum_transformerr         * rJ   Fc                     d fd}|S )Nc                8    j                  t        |            S rC   )r   rN   )rF   rG   clss     rH   r   z%_flag_transformer.<locals>._transform  s    s4y))rJ   )rF   r0   rG   Union[int, str]r   r   r   )r   r   s   ` rH   _flag_transformerr     r   rJ   c                N   | j                   j                  j                  d      r$t        j                  t        j
                  |      S | j                   j                  j                  d      r|S | j                   j                  j                  d      r$t        j                  t        j                  |      S | j                   j                  j                  d      r$t        j                  t        j                  |      S t        j                  t        j                  |      S )Nsticker_integration_webhook_onboarding_prompt_)	r~   r   
startswithr   r   StickerTypeWebhookTypeOnboardingPromptTypeChannelTyperE   s     rH   _transform_typer     s     ||##J/~~e//66				%	%n	5				%	%j	1~~e//66				%	%&:	;~~e88$??~~e//66rJ   c                  :    e Zd ZddZddZd	dZer	d
dZddZyy)r.   c                ,    t        | j                        S rC   )len__dict__selfs    rH   __len__zAuditLogDiff.__len__)  s    4==!!rJ   c              #  T   K   | j                   j                         E d {    y 7 wrC   )r   itemsr   s    rH   __iter__zAuditLogDiff.__iter__,  s     ==&&(((s   (&(c                n    dj                  d | j                  j                         D              }d| dS )N c              3  &   K   | ]	  }d |z    yw)z%s=%rNr   ).0items     rH   	<genexpr>z(AuditLogDiff.__repr__.<locals>.<genexpr>0  s     KT'D.Ks   z<AuditLogDiff >)joinr   r   )r   valuess     rH   __repr__zAuditLogDiff.__repr__/  s2    KT]]5H5H5JKKxq))rJ   c                     y rC   r   )r   r   s     rH   __getattr__zAuditLogDiff.__getattr__5      rJ   c                     y rC   r   )r   keyvalues      rH   __setattr__zAuditLogDiff.__setattr__7  r   rJ   N)r   rN   )r   z&Generator[Tuple[str, Any], None, None]r   str)r   r   r   r   )r   r   r   r   r   r   )	__name__
__module____qualname__r   r   r   r   r   r   r   rJ   rH   r.   r.   (  s!    ")* 4?	 rJ   r.   c                     e Zd ZU i dd eej
                        fdd eej                        fdd ee      fdd ee      fdd ee      fdde	fdd	e
fd
defddefddefddefddefdd eej                        fddefddefddefddefi dd ed      fd d! ed"      fd#d$ ed%      fd&d'efd(d)efd*d+d,d-d.d/efd0d1d2d3 eej(                        fd4d eej*                        fd5d eej,                        fd6d eej.                        fd7defd8d9efd:d eej4                        fd;d eej6                        fi d<d eej8                        fd=d eej:                        fd>d eej<                        fd?d@efdAd eej@                        fdBd eejB                        fdCde"fdDde#fdEde$fdFde%fdGde&fdHde'fdIde(fdJdKe)fdLdMefdNde*fdOde+fdPe#fd eejX                        fdQZ-dRe.dS<   d\dTZ/d]dUZ0d^dVZ1	 	 	 	 	 	 d_dWZ2	 	 	 	 	 	 d`dXZ3	 	 	 	 	 	 	 	 	 	 dadYZ4dbdZZ5dcd[Z6y)dr/   verification_levelNexplicit_content_filterr   r   permissionsrS   colorcolourowner_idowner
inviter_idinviter
channel_idchannelafk_channel_idafk_channelsystem_channel_idsystem_channelsystem_channel_flagswidget_channel_idwidget_channelrules_channel_idrules_channelpublic_updates_channel_idpublic_updates_channelpermission_overwritesr   splash_hashsplashsplashesbanner_hashbannerbannersdiscovery_splash_hashdiscovery_splashzdiscovery-splashes	icon_hashiconavatar_hashavatarrate_limit_per_user)slowmode_delayN"default_thread_rate_limit_per_user)default_thread_slowmode_delayNguild_idrT   tags)emojiNdefault_message_notificationsdefault_notificationsvideo_quality_modeprivacy_levelformat_typerd   communication_disabled_untiltimed_out_untilexpire_behavior	mfa_levelstatusentity_typepreferred_locale
image_hashcover_imagetrigger_type
event_typeactionsexempt_channelsexempt_rolesapplied_tagsavailable_tagsr   default_reaction_emojir   r(  user_iduseroptionspromptsdefault_channels)default_channel_idsmodezCClassVar[Mapping[str, Tuple[Optional[str], Optional[Transformer]]]]TRANSFORMERSc           	        t               | _        t               | _        |j                  t        j
                  j                  u rg | j                  _        g | j                  _        |D ]Z  }| j                  | j                  ||j                  d             | j                  | j                  ||j                  d             \ y |D ]  }|d   }|dk(  r,| j                  | j                  | j                  ||d          :|dk(  r,| j                  | j                  | j                  ||d          k|dk(  r| j                  |||       |j                  t        j
                  j                  u r|j                  d      rz|j                  d      \  }}}|dk(  r-| j                  | j                  | j                  |||d          n1|dk(  r,| j                  | j                  | j                  |||d          5|d	k(  rX| j!                  | j                  |j                  d             | j!                  | j                  |j                  d             	 | j"                  |   \  }}	|r|}	 	 |d   }
|	r
 |	||
      }
	 t)        | j                  ||
       	 |d   }|	r
 |	||      }	 t)        | j                  ||        t+        | j                  d
      rJ| j                  j,                  | j                  _        | j                  j,                  | j                  _        t+        | j                  d      rK| j                  j0                  | j                  _        | j                  j0                  | j                  _        y y # t$        t&        f$ r d }	Y +w xY w# t&        $ r d }
Y +w xY w# t&        $ r d }Y w xY w)N	old_value	new_valuer   z$addz$removetrigger_metadata$_colorsr  r0  )r.   beforeafterr~   r   rt   app_command_permission_updateapp_command_permissions_handle_app_command_permissionsr   _handle_role_handle_trigger_metadataautomod_rule_updater   	partition_handle_trigger_attr_update_handle_coloursrF  
ValueErrorKeyErrorsetattrhasattrr  r  r0  expire_behaviour)r   rF   rG   r   attrr~   rL  trigger_attrr   transformerrN  rO  s               rH   __init__zAuditLogChanges.__init__x  s\   $0N#/>
 <<5//MMM24DKK/13DJJ. 44KKHH[) 44JJHH[)  <	-D;D v~!!$++tzz5${BST"!!$**dkk5${BST ))--eT4@!5!5!I!IIdoo^aNb*...*='<V#44T[[$**eUacghsctuy(44TZZeUacghsctu x$$T[[$((;2GH$$TZZ+1FG#'#4#4T#: [ D8k* (7FDKKv.6[) 'u5EDJJe,y<	-~ 4::x(#zz00DJJ $ 2 2DKK4::01*.***D*DDJJ'+/;;+F+FDKK( 2A ) #"#    s6   N
4N"N4
NN"N10N14OOc                <    d| j                   d| j                  dS )Nz<AuditLogChanges before=z after=r   )rN  rO  r   s    rH   r   zAuditLogChanges.__repr__  s    )$++

~QOOrJ   c                   t        |d      st        |dg        g }|j                  }|D ]O  }t        |d         }|j	                  |      }	|	t        |t              }	|d   |	_        |j                  |	       Q t        |d|       y )NrolesrS   rj   r   )	r\  r[  rT   rN   re   r   r   r   r   )
r   firstsecondrF   r   rG   gerf   r   s
             rH   rS  zAuditLogChanges._handle_role  s    ug&E7B';; 	A!D'lG::g&D|t4fI	KK	 	&rJ   c                    |y ddl m} |j                  }|j                  }|j                  j                   ||||             y )Nr   )AppCommandPermissions)rG   rT   r   )discord.app_commandsrj  r^   rT   rQ  r   )r   diffrF   rG   rj  r   rT   s          rH   rR  z/AuditLogChanges._handle_app_command_permissions  sC     < 	?$$++,AtSX`e,fgrJ   c           	     >   d }d }t        | j                  dt        | j                  dd             }|Et        |j                  t
              r7|j                  j                  j                  j                  }n|j                  }|/t        j                  d |      }|!|j                  d|j                  d            }||j                  d      xs i j                         |j                  d      xs i j                         z  }|s%t        j                  j                  j                  }nd|v r%t        j                  j                   j                  }n\d|v sd|v r%t        j                  j"                  j                  }n/d|v sd	|v r%t        j                  j$                  j                  }nd
}t'        j(                  ||j                  d            | j                  _        t'        j(                  ||j                  d            | j                  _        y )Nr7  c                    | d   dk(  S )Nr   r7  r   )r   s    rH   <lambda>z:AuditLogChanges._handle_trigger_metadata.<locals>.<lambda>  s    DK>,I rJ   rH  rI  presetskeyword_filterregex_patternsmention_total_limitmention_raid_protection_enabled)getattrrN  rO  rl   rk   r   triggerrd   r   r   findr   keysr   AutoModRuleTriggerTypespamkeyword_presetkeywordmention_spamr   r   )r   rF   rG   	full_datatrigger_valuer7  _elemcombineds           rH   rT  z(AuditLogChanges._handle_trigger_metadata  s    (,?C t{{NGDJJP^`d<ef%,,4 !& 4 4 9 9 ? ? )..M JJI9UE  %		+uyy7M N$ HH[17R==?488KCXC^\^BdBdBff$)$@$@$E$E$K$KM(*$)$@$@$O$O$U$UM%15E5Q$)$@$@$H$H$N$NM*h6:[_g:g$)$@$@$M$M$S$SM %'M,66}dhh{F[\+55mTXXkEZ[

rJ   c                    | j                  ||       | j                  ||      }	 t        ||      j                  |       y # t        t        f$ r Y y w xY wrC   )_create_triggerrv  extendAttributeError	TypeError)r   re  rf  rF   r^  rG   rw  s          rH   rW  z+AuditLogChanges._handle_trigger_attr_update)  sW     	UE*&&vu5	GT"))$/	* 		s   A AAc                    |t        |d         }|d   }|d   }nd }d }d }|x|_        |_        |t        |      nd x|_        |_        |t        |      nd x|_        |_        y )Nprimary_colorsecondary_colortertiary_color)r   r  r  r  secondary_colourr  tertiary_colour)r   rl  coloursr  r  r  s         rH   rX  zAuditLogChanges._handle_colours4  s    GO45F&'89%&67OF#"O#))
T[ScSov>N7Ouyyt4P_PkVO5Lquud2rJ   c                   t        |d      spt        |j                  t              r!|j                  j                  j
                  }n$t        j                  t        j                  d      }t        |      |_        |j                  S )Nrw  ru  rc   )
r\  rl   rk   r   rw  rd   r   r   rz  r   )r   rl  rF   r7  s       rH   r  zAuditLogChanges._create_triggerC  s]    tY'%,,4$||3388  %~~e.J.JBO)|<DL||rJ   )rF   r0   rG   List[AuditLogChangePayload]r   )
re  r.   rf  r.   rF   r0   r   zList[RolePayload]r   None)rl  r.   rF   r0   rG   z'Optional[ApplicationCommandPermissions])rF   r0   rG   $AuditLogChangeTriggerMetadataPayloadr  r  )
re  r.   rf  r.   rF   r0   r^  r   rG   z	List[str])rl  r.   r  zOptional[RoleColours])rl  r.   rF   r0   r   r   )7r   r   r   r   r   VerificationLevelContentFilterr   r   rO   rL   r\   rV   r   SystemChannelFlagsr   r   r   r   r`   NotificationLevelVideoQualityModePrivacyLevelStickerFormatTyper   rI   ExpireBehaviourMFALevelEventStatus
EntityTypeLocaler   rz  AutoModRuleEventTyper   rY   rg   rr   r   r   r   r   r   r   OnboardingModerF  __annotations__ra  r   rS  rR  rT  rW  rX  r  r   rJ   rH   r/   r/   =  sj   6Y$8I%JaJa8b1c6Y!$8I%J]J]8^1_6Y 	$8I+8V1W6Y 	$8I+8V1W	6Y
 	$8I+8V1W6Y 	$8L1M6Y 	(<L1M6Y 	';O1P6Y 	)=Q1R6Y 	)=O1P6Y 	-AS1T6Y 	2BDV1W6Y 	$8I%JbJb8c1d6Y 	2BDV1W6Y 	/CU1V6Y  	$2JL^1_!6Y" 	 ,@U1V#6Y$ 	(<ST^<_1`%6Y& 	(<ST]<^1_'6Y( 	 2DF]^rFs1t)6Y* 	&/1J+6Y, 	(<M1N-6Y. 	1I/6Y0 	-1X16Y2 	';N1O36Y4 	56Y6 	(2IK\]b]t]tKu1v76Y8 	$8I%J`J`8a1b96Y: 	$8I%J\J\8]1^;6Y< 	$8I%JaJa8b1c=6Y> 	$1H?6Y@ 	'2CEY1ZA6YB 	$8I%J_J_8`1aC6YD 	$8I%..8Y1ZE6YF 	$8I%J[J[8\1]G6YH 	$8I%JZJZ8[1\I6YJ 	$8I%,,8W1XK6YL 	-AW1XM6YN 	$8I%JfJf8g1hO6YP 	$8I%JdJd8e1fQ6YR 	$8R1SS6YT 	$8V1WU6YV 	$8H1IW6YX 	$8U1VY6YZ 	$8M1N[6Y\ 	$8S1T]6Y^ 	!$8S1T_6Y` 	';S1Ta6Yb 	&:N1Oc6Yd 	$8\1]e6Yf 	$8U1Vg6Yh 3EFd1e268I%J^J^8_1`k6YLU 6r\G|P'&hh h 6	h +\+\ 3+\ /	+\Z	!	+7	@M	UX	`i	vrJ   r/   c                      e Zd ZddZy)_AuditLogProxyc                N    |j                         D ]  \  }}t        | ||        y rC   )r   r[  )r   kwargskvs       rH   ra  z_AuditLogProxy.__init__S  s'    LLN 	 DAqD!Q	 rJ   N)r  r   r   r  )r   r   r   ra  r   rJ   rH   r  r  R  s     rJ   r  c                  "    e Zd ZU ded<   ded<   y)_AuditLogProxyMemberPrunerN   delete_member_daysmembers_removedNr   r   r   r  r   rJ   rH   r  r  X  s    rJ   r  c                  "    e Zd ZU ded<   ded<   y)'_AuditLogProxyMemberMoveOrMessageDeleteUnion[abc.GuildChannel, Thread]r	  rN   countNr  r   rJ   rH   r  r  ]  s    ,,JrJ   r  c                      e Zd ZU ded<   y)_AuditLogProxyMemberDisconnectrN   r  Nr  r   rJ   rH   r  r  b      JrJ   r  c                  "    e Zd ZU ded<   ded<   y)_AuditLogProxyPinActionr  r	  rN   
message_idNr  r   rJ   rH   r  r  f  s    ,,OrJ   r  c                      e Zd ZU ded<   y)!_AuditLogProxyStageInstanceActionzabc.GuildChannelr	  Nr  r   rJ   rH   r  r  k  s    rJ   r  c                      e Zd ZU ded<   y)_AuditLogProxyMessageBulkDeleterN   r  Nr  r   rJ   rH   r  r  o  r  rJ   r  c                  ,    e Zd ZU ded<   ded<   ded<   y)_AuditLogProxyAutoModActionr   automod_rule_nameautomod_rule_trigger_typez)Optional[Union[abc.GuildChannel, Thread]]r	  Nr  r   rJ   rH   r  r  s  s    ""66rJ   r  c                      e Zd ZU ded<   y)*_AuditLogProxyMemberKickOrMemberRoleUpdater   integration_typeNr  r   rJ   rH   r  r  y  s    ##rJ   r  c                     e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 d!dZd"dZd#dZd$dZd%dZd&dZ	d'dZ
ej                  d(d	       Zej                  d)d
       Zej                  d*d       Zej                  d+d       Zej                  d,d       Zej                  d,d       Zd-dZd.dZd/dZd0dZd1dZd2dZd/dZd3dZd4dZd5dZd6dZd7dZd8dZd9dZ d:dZ!d;dZ"d<dZ#y )=r0   aj  Represents an Audit Log entry.

    You retrieve these via :meth:`Guild.audit_logs`.

    .. container:: operations

        .. describe:: x == y

            Checks if two entries are equal.

        .. describe:: x != y

            Checks if two entries are not equal.

        .. describe:: hash(x)

            Returns the entry's hash.

    .. versionchanged:: 1.7
        Audit log entries are now comparable and hashable.

    Attributes
    -----------
    action: :class:`AuditLogAction`
        The action that was done.
    user: Optional[:class:`abc.User`]
        The user who initiated this action. Usually a :class:`Member`\, unless gone
        then it's a :class:`User`.
    user_id: Optional[:class:`int`]
        The user ID who initiated this action.

        .. versionadded:: 2.2
    id: :class:`int`
        The entry ID.
    guild: :class:`Guild`
        The guild that this entry belongs to.
    target: Any
        The target that got changed. The exact type of this depends on
        the action being done.
    reason: Optional[:class:`str`]
        The reason this action was done.
    extra: Any
        Extra information that this entry has that might be useful.
        For most actions, this is ``None``. However in some cases it
        contains extra information. See :class:`AuditLogAction` for
        which actions have this field filled out.
    c                   |j                   | _         || _        || _        || _        || _        || _        || _        | j                  |       y rC   )r^   rT   _users_integrations_app_commands_automod_rules	_webhooks
_from_data)r   usersintegrationsapp_commandsautomod_ruleswebhooksrG   rT   s           rH   ra  zAuditLogEntry.__init__  sH     (-||!
*/?K7C9F08rJ   c           
         t        j                  t         j                  |d         | _        t	        |d         | _        |j                  d      | _        |j                  d      }d | _        t        | j                  t         j                        r|r| j                  t         j                  j                  u r,t        t	        |d         t	        |d               | _        n| j                  t         j                  j                  u s&| j                  t         j                  j                  u rUt	        |d         }t        t	        |d	         | j                  j!                  |      xs t#        |
            | _        n	| j                  t         j                  j$                  u rt'        t	        |d	               | _        n| j                  t         j                  j(                  u rt+        t	        |d	               | _        n| j                  t         j                  j,                  t         j                  j.                  fv r$|j                  d      }t1        |      | _        n| j                  j2                  j5                  d      rUt	        |d         }t7        | j                  j!                  |      xs t#        |
      t	        |d               | _        n| j                  t         j                  j8                  u sr| j                  t         j                  j:                  u sL| j                  t         j                  j<                  u s&| j                  t         j                  j>                  u rtA        jB                  |d      }d }|r)| j                  j!                  |      xs t#        |
      }tE        |d   t        j                  t         jF                  t	        |d               |      | _        n| j                  j2                  jI                  d      rt	        |d         }|j                  d      }|dk(  r| jK                  |      | _        n|dk(  r| j                  jM                  |      }|'t#        |tN              }|j                  d      |_        || _        n| j                  j2                  jI                  d      rLt	        |d         }tQ        | j                  jS                  |      xs t#        |tT                    | _        n\| j                  j2                  jI                  d      r7t	        |d         }	| jW                  |	      xs t#        |	tX              | _        |j                  d g       | _-        tA        jB                  |d!      | _.        | jK                  | j\                        | _/        tA        jB                  |d"      | _0        y )#Naction_typerS   reasonrA  r  r  )r  r  r  r  rR   )r  r	  )r  r  )r  pinr  )r	  r  auto_moderation_rule_name!auto_moderation_rule_trigger_type)r  r  r	  
overwrite_rd   r   r   rj   	role_namestage_instance)r	  app_commandapplication_idrc   changesr?  	target_id)1r   r   rt   r~   rN   rS   r   r  extrarl   member_pruner  member_movemessage_deleter  rT   rX   r   member_disconnectr  message_bulk_deleter  kickmember_role_updater  r   endswithr  automod_block_messageautomod_flag_messageautomod_timeout_memberautomod_quarantine_userr   r   r  rz  r   r[   re   r   r  rU   r*   _get_integration_by_app_idr(   _changesr?  r@  r   )
r   rG   r  r  r  r	  instance_idthe_typer   app_ids
             rH   r  zAuditLogEntry._from_data  s   ,1NN5;O;OQUVcQd,e4: &*XXh%7#  	
 dkk5#7#78U{{e22???6'*51E+F'G$'.?(@$A
  4 4 @ @@DKKSXSgSgSvSvDv |!45
DeGn- JJ<<ZHaFV`La
  4 4 F FF;#eGnBUV
 4 4 H HH<3uW~CVW
!5!5!:!:E<P<P<c<c dd#(99-?#@ GYij
!!**51 |!45
4 JJ<<ZHaFV`La"5#67

 u33III;;%"6"6"K"KK;;%"6"6"M"MM;;%"6"6"N"NN"44ULI
 "jj>>zJcfXbNcG8&+,G&H.3nn44c%@c:d6e/ $
 !!,,\:!%+. 99V,s?!%!1!1+!>DJ_::..{;D|%4@$)IIk$:	!%DJ!!,,-=> |!45
> JJ22:>j&J]iBj
 !!,,];U#345!<<VDov\nHo
 B/&+&=&=dI&N373C3CDLL3Q	11$DrJ   c                x    |y | j                   j                  |      xs | j                  j                  |      S rC   )rT   
get_memberr  r   )r   r?  s     rH   r[   zAuditLogEntry._get_member,  s1    ?zz$$W-I1IIrJ   c                >    |y | j                   j                  |      S rC   )r  r   )r   integration_ids     rH   _get_integrationzAuditLogEntry._get_integration2  "    !!!%%n55rJ   c                f    |y t        j                  | j                  j                         |      S )N)r  )r   r   r  r   )r   r  s     rH   r  z(AuditLogEntry._get_integration_by_app_id8  s-    ! yy++224^TTrJ   c                >    |y | j                   j                  |      S rC   )r  r   )r   app_command_ids     rH   _get_app_commandzAuditLogEntry._get_app_command?  r  rJ   c                V    d| j                    d| j                   d| j                  dS )Nz<AuditLogEntry id=z action=z user=r   )rS   r~   r@  r   s    rH   r   zAuditLogEntry.__repr__E  s*    #DGG9HT[[M		}TUVVrJ   c                @    t        j                  | j                        S )zE:class:`datetime.datetime`: Returns the entry's creation time in UTC.)r   snowflake_timerS   r   s    rH   
created_atzAuditLogEntry.created_atH  s     ##DGG,,rJ   c                   | j                   j                  y 	 t        | d| j                   j                  z         } || j                        S # t        $ r' | j                  Y y t        | j                        cY S w xY w)N_convert_target_rR   )r~   target_typerv  r   r  r   )r   	converters     rH   rk   zAuditLogEntry.targetM  st    ;;""*	.&84;;;R;R&RSI T__--  	.&T__--	.s   #A A>%A>=A>c                .    | j                   j                  S )zUOptional[:class:`AuditLogActionCategory`]: The category of the action, if applicable.)r~   categoryr   s    rH   r  zAuditLogEntry.category[  s     {{###rJ   c                6    t        | | j                        }| `|S )z=:class:`AuditLogChanges`: The list of changes this entry has.)r/   r  )r   objs     rH   r  zAuditLogEntry.changes`  s     dDMM2M
rJ   c                .    | j                   j                  S )z0:class:`AuditLogDiff`: The target's prior state.)r  rN  r   s    rH   rN  zAuditLogEntry.beforeg  s     ||"""rJ   c                .    | j                   j                  S )z5:class:`AuditLogDiff`: The target's subsequent state.)r  rO  r   s    rH   rO  zAuditLogEntry.afterl  s     ||!!!rJ   c                    | j                   S rC   )rT   r   r  s     rH   _convert_target_guildz#AuditLogEntry._convert_target_guildq  s    zzrJ   c                T    | j                   j                  |      xs t        |      S rQ   )rT   rU   r   r  s     rH   _convert_target_channelz%AuditLogEntry._convert_target_channelt  s!    zz%%i0HFi4HHrJ   c                P    |y | j                  |      xs t        |t              S ri   r[   r   r#   r  s     rH   _convert_target_userz"AuditLogEntry._convert_target_userw  s*     	*Of	.OOrJ   c                ^    | j                   j                  |      xs t        |t              S ri   )rT   re   r   r   r  s     rH   _convert_target_rolez"AuditLogEntry._convert_target_role  s#    zz""9-P941PPrJ   c                   | j                   t        j                  j                  u r| j                  n| j
                  }|j                  |j                  |j                  |j                  |j                  d d}t        | j                  || j                  |j                        }	 |j                  |_        |S # t         $ r Y |S w xY w)N)max_agemax_usescode	temporaryusesr	  )r   rG   rT   r	  )r~   r   rt   r}   rN  rO  r  r  r  r  r  r   r^   rT   r	  r  r  )r   r  	changesetfake_payloadr  s        rH   _convert_target_invitez$AuditLogEntry._convert_target_invite  s     $(;;%2F2F2T2T#TDKKZ^ZdZd	 !((!**NN",,NN'
 4;;\U^UfUfg	#++CK 
  	
	s   (B; ;	CCc                ^    | j                   j                  |      xs t        |t              S ri   )r^   	get_emojir   r    r  s     rH   _convert_target_emojiz#AuditLogEntry._convert_target_emoji  s#    {{$$Y/S6YU3SSrJ   c                P    |y | j                  |      xs t        |t              S ri   r  r  s     rH   _convert_target_messagez%AuditLogEntry._convert_target_message  s*     	*Of	.OOrJ   c                ^    | j                   j                  |      xs t        |t              S ri   )rT   get_stage_instancer   r%   r  s     rH   _convert_target_stage_instancez,AuditLogEntry._convert_target_stage_instance  s$    zz,,Y7c6YUb;ccrJ   c                ^    | j                   j                  |      xs t        |t              S ri   )r^   get_stickerr   r&   r  s     rH   _convert_target_stickerz%AuditLogEntry._convert_target_sticker  s#    {{&&y1\Vy|5\\rJ   c                ^    | j                   j                  |      xs t        |t              S ri   )rT   
get_threadr   r'   r  s     rH   _convert_target_threadz$AuditLogEntry._convert_target_thread  s#    zz$$Y/T6YV3TTrJ   c                ^    | j                   j                  |      xs t        |t              S ri   )rT   get_scheduled_eventr   r$   r  s     rH   %_convert_target_guild_scheduled_eventz3AuditLogEntry._convert_target_guild_scheduled_event  s$    zz--i8eFiVd<eerJ   c                J    | j                  |      xs t        |t              S rb   )r  r   r(   r  s     rH   _convert_target_integrationz)AuditLogEntry._convert_target_integration  s     $$Y/]6)J\3]]rJ   c                R    | j                  |      }|sddlm} t        ||      }|S Nr   r>   rc   )r  r  r?   r   )r   r  rk   r?   s       rH   _convert_target_app_commandz)AuditLogEntry._convert_target_app_command  s)    &&y10IJ7FrJ   c                0   | j                  |      xs | j                  |      }|sU	 ddlm} | j                  }t        |t              r|j                  n|j                  }||k(  rt        n|}t        ||      S |S # t        $ r t        |      cY S w xY wr-  )r  r  r  r?   r  rl   r(   r  rS   r   r  )r   r  rk   r?   
target_appr  rd   s          rH   *_convert_target_integration_or_app_commandz8AuditLogEntry._convert_target_integration_or_app_command  s    00;_t?T?TU^?_44 "ZZ
6@M_6`22fpfsfs-6&-@)j id33 " )i(()s   AA> >BBc                ^    | j                   j                  |      xs t        |t              S rb   )r  r   r   r   r  s     rH   _convert_target_auto_moderationz-AuditLogEntry._convert_target_auto_moderation  s%    ""&&y1XVIK5XXrJ   c                b    ddl m} | j                  j                  |      xs t	        ||      S )Nr   r@   rc   )webhookrA   r  r   r   )r   r  rA   s      rH   _convert_target_webhookz%AuditLogEntry._convert_target_webhook  s&    $~~!!),Oyw0OOrJ   c                $    t        |t              S rb   )r   r,   r  s     rH   !_convert_target_onboarding_promptz/AuditLogEntry._convert_target_onboarding_prompt  s    i&677rJ   N)r  zMapping[int, User]r  z Mapping[int, PartialIntegration]r  zMapping[int, AppCommand]r  zMapping[int, AutoModRule]r  zMapping[int, Webhook]rG   AuditLogEntryPayloadrT   r2   )rG   r9  r   r  )r?  Optional[int]r   Union[Member, User, None])r  r:  r   Optional[PartialIntegration])r  r:  r   r<  )r  r:  r   zOptional[AppCommand]r   )r   zdatetime.datetime)r   
TargetType)r   z&Optional[enums.AuditLogActionCategory])r   r/   )r   r.   )r  rN   r   r2   )r  rN   r   zUnion[abc.GuildChannel, Object])r  r:  r   z%Optional[Union[Member, User, Object]])r  rN   r   zUnion[Role, Object])r  r  r   r   )r  rN   r   zUnion[Emoji, Object])r  rN   r   zUnion[StageInstance, Object])r  rN   r   zUnion[GuildSticker, Object])r  rN   r   zUnion[Thread, Object])r  rN   r   zUnion[ScheduledEvent, Object])r  rN   r   z!Union[PartialIntegration, Object])r  rN   r   zUnion[AppCommand, Object])r  rN   r   z-Union[PartialIntegration, AppCommand, Object])r  rN   r   zUnion[AutoModRule, Object])r  rN   r   zUnion[Webhook, Object])r  rN   r   r   )$r   r   r   __doc__ra  r  r[   r  r  r  r   r   cached_propertyr  rk   r  r  rN  rO  r  r
  r  r  r  r  r  r   r#  r&  r)  r+  r.  r1  r3  r6  r8  r   rJ   rH   r0   r0   }  st   .` " 7	
 / 1 ( # (hETJ6U6W - - . . $ $   # # " "IPQ*TPd]Uf^(YP8rJ   )rF   r0   rG   r   r   zOptional[datetime.datetime])rF   r0   rG   rN   r   r   )rF   r0   rG   r8   r   rN   )rF   r0   rG   Optional[Snowflake]r   z)Optional[Union[abc.GuildChannel, Object]])rF   r0   rG   List[Snowflake]r   z-List[Union[abc.GuildChannel, Thread, Object]])rF   r0   rG   r@  r   r;  )rF   r0   rG   r@  r   zOptional[Guild])rF   r0   rG   rA  r   zList[Union[Role, Object]])rF   r0   rG   rA  r   zList[Union[ForumTag, Object]])rF   r0   rG   rN   r   z1Union[int, flags.ChannelFlags, flags.InviteFlags])rF   r0   rG   zList[ForumTagPayload]r   zList[ForumTag])rF   r0   rG   DefaultReactionPayloadr   zOptional[PartialEmoji])rF   r0   rG   z List[PermissionOverwritePayload]r   z(List[Tuple[Object, PermissionOverwrite]]r   )r   r   r   z9Callable[[AuditLogEntry, Optional[str]], Optional[Asset]])rF   r0   rG   zList[AutoModerationAction]r   zList[AutoModRuleAction])rF   r0   rG   r   r   r"   )rF   r0   rG   zList[PromptPayload]r   zList[OnboardingPrompt])rF   r0   rG   zList[PromptOptionPayload]r   zList[OnboardingPromptOption])r   zType[E]r   z!Callable[[AuditLogEntry, int], E])r   zType[F]r   z-Callable[[AuditLogEntry, Union[int, str]], F])rF   r0   rG   r   r   z_Union[enums.ChannelType, enums.StickerType, enums.WebhookType, str, enums.OnboardingPromptType])r>  
__future__r   typingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   assetr   r  r   inviter   mixinsr   objectr   r  r   r   automodr   r   r   r   r   r(  r    partial_emojir"   memberr#   scheduled_eventr$   r  r%   stickerr&   threadsr'   r  r(   r	  r)   r*   r+   
onboardingr,   r-   __all__datetimer1   rT   r2   r   r3   types.audit_logr4   AuditLogChangePayloadr0   r9  r5   r  types.channelPermissionOverwritePayloadForumTagPayloadr6   rB  types.inviteInvitePayload
types.roleRolePayloadr7   types.snowflaker8   types.commandr9   types.automodr:   types.onboardingr;   PromptPayloadr<   PromptOptionPayloadr@  r=   r  r?   r5  rA   GuildChannelr=  rI   rL   rO   rV   rY   r\   r`   rg   rr   r   r   r   r   r   r   r   r   r   r   r   r   Enumr   r   	BaseFlagsr   r   r   r.   Transformerr/   r  r  r  r  r  r  r  r  r  r   rJ   rH   <module>re     s  0 # z z z z ! !      9 C C   '  + ) !  , 9 9 @ & 
 
 6<*<3^( !	J*"A^^ /^2^(.bA2JU @-2SDYD#ouu 9u!u Cuzz" Cu'77 /7d7@ @$ -s23R Rj    
n 
^ n 
 n 7. 7$ $]8H ]8rJ   