
    soj=                        d dl 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 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 d dlmZ d dlmZ d dlm Z  d dl!m"Z"m#Z#m$Z$ d dl%m&Z&m'Z'm(Z( d dl)m*c m+c m,Z, d dl-m*c m+c m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z< d dl=m>Z> d dl?m@Z@ d dlAmBZB d dlCmDZDmEZE d dlFmGZG d dlHmIZImJZJ d dlKmLZL d d lMmNZN d d!lOmPZP d d"lQmRZRmSZS d d#l%mTZTmUZUmVZVmWZW d d$lXmYZYmZZZ d d%l[m\Z\ 	 	 	 d5d&ed'ej]        d(e,j,        d)ed*e d+e4d,ed-dfd.Z^	 	 	 d6d'ej]        d&ed)ed0e_d1e`d-dfd2Zad)ed+e4d3ebd-ebfd4ZcdS )7    N)Update)TelegramError)ContextTypes)phrases)validate)accept)Crew)CrewJoinRequest)User)ReservedKeyboardKeys)Screen)CrewValidationException)PrivateChatException)Keyboard)get_remaining_durationget_datetime_in_future_hoursget_datetime_in_future_days)full_message_sendget_yes_no_keyboardget_deeplink)surround_with_expandable_quote)
DevilFruit)	GroupChat)Warlord)Location)BossType)Emoji)MessageSource)
SavedMedia)SavedMediaType)GroupChatErrorGroupChatException)get_bounty_poster)get_crew_abilities_textget_crew_name_with_deeplink)get_devil_fruit_abilities_text)get_post_bail_deeplink_button)user_has_complete_tax_deduction)get_current_leaderboard_userget_highest_active_rank)full_media_sendmention_markdown_v2get_start_with_command_urlescape_valid_markdown_chars)user_is_bossget_boss_type)get_belly_formattedupdatecontextcommanduserinbound_keyboard
group_chattarget_userreturnc           
        K   g }g }|dnd}	||n|}|t          t          j                  t          ||          }
|	s|                                s|                    |           t          ||          }|                    |
          st          j        	                    t          |j        d          |                                t          |j        |j                  |
                                          }t          ||| d|           d{V  dS t          j                                        s||k    r|
}n#t%          j        t)          ||                    }|j        t,          j        ur|t$          j        u rt3          ||          r|                                rt5          t          j        t9          t:          j        j                            gg}|                                rt          j         nt          j!        }t          ||| |d           d{V  dS |j"        d	k    rd
n0t          j#        	                    tI          |j"                            }|%                                }|                                r(|t          j&        z  }t          j'        }t          j(        }n2tS          j*        |j+                  j        }|
                                }d
}|,                                r1t          j-        	                    t]          |j/                            }d
}|	st3          ||          rt          j0        	                    tc          |                    }|                                r|j2        stg          |j4                  }nt          j5        }|t          j6        	                    |          z  }|t          j7        	                    t          j8                  z  }|j2        sH|t          j9        z  }tu          |;                                          }||                    |g           |                                s|j<        ]|j<        tz          j=        >                                k    r6tg          |j<                  }|t          j?        	                    |          z  }|j@        ]|j@        tz          j=        >                                k    r6tg          |j@                  }|t          jA        	                    |          z  }|jB        ]|jB        tz          j=        >                                k    r6tg          |jB                  }|t          jC        	                    |          z  }|jD        ]|jD        tz          j=        >                                k    r6tg          |jD                  }|t          jE        	                    |          z  }|F                                rHtg          t          jH        |          jI                  }|t          jJ        	                    |          z  }d}t          jK        }|L                                rO|t          jM        	                    t          jO        t          jP        d|Q                                z            z  }d}|R                                r^t          |          sO|t          jM        	                    t          jO        t          jT        d|U                                z            z  }d}|r||z  }|	rt          jW        |          }|D|t          jX        	                    |Y                                t          |d                    z  }|,                                r_|j/        }|[                                }t          |          d	k    r1|t          j]        	                    t          |d                    z  }t          j_        	                    t          |j        |j                  ||||t          |          d	k    rt          |          nd
          }|	r|ja        r|t          jb        z  }d}|	sH|dt          jc        	                    |d                                          z   z  }| je        jf        jg        }t          |||	          rYt          || |||           d{V  t3          ||          s-|xjj        dz  c_j        |k                                 d|_l        dS dS t          ||| ||du |||           d{V  dS )a/  
    Displays a user's status
    :param update: Telegram update
    :param context: Telegram context
    :param command: Command
    :param user: The original user
    :param inbound_keyboard: Inbound keyboard
    :param group_chat: Group chat
    :param target_user: Target user
    :return: None
    NTF)r7   Your)add_delete_buttonauthorized_users)url)r2   keyboardr<   r    )
add_header)active_abilities	add_emojiz

   )reply_to_message_idr<   r=   r6   r?   )mr"   r!   USER_NOT_IN_DBr*   is_arrestedappend	is_higherr   "NOT_ALLOWED_TO_VIEW_REPLIED_STATUSformatr,   
tg_user_idget_emoji_and_rank_messagetg_first_namer   Env,ROOKIES_OR_ARRESTED_CAN_VIEW_STATUS_IN_GROUPget_boolLeaderboardRankget_rank_by_leaderboard_userr)   message_sourcer   PRIVATEROOKIEr/   r   STATUS_PRIVATE_CHAT_KEYr-   CommandGRP_USER_STATUSname!PRISONER_STATUS_PRIVATE_CHAT_ONLYROOKIE_STATUS_PRIVATE_CHAT_ONLYpending_bountySHOW_USER_STATUS_PENDING_BOUNTYr1   get_bounty_formattedSHOW_USER_STATUS_FROZEN_BOUNTYSHOW_USER_STATUS_IMPEL_DOWNSHOW_USER_STATUS_RANK_PRISONERr   get_by_levellocation_levelis_crew_memberSHOW_USER_STATUS_CREWr%   crewSHOW_USER_STATUS_LOCATIONr.   impel_down_is_permanentr   impel_down_release_date%SHOW_USER_STATUS_PERMANENT_IMPEL_DOWN#SHOW_USER_STATUS_REMAINING_SENTENCESHOW_USER_STATUS_RESTRICTIONSIMPEL_DOWN_RESTRICTIONS!IMPEL_DOWN_RESTRICTION_BAIL_GUIDEr'   get_current_impel_down_logfight_immunity_end_datedatetimenowSHOW_USER_STATUS_FIGHT_IMMUNITYfight_cooldown_end_dateSHOW_USER_STATUS_FIGHT_COOLDOWNplunder_immunity_end_date!SHOW_USER_STATUS_PLUNDER_IMMUNITYplunder_cooldown_end_date!SHOW_USER_STATUS_PLUNDER_COOLDOWN
is_warlordr   get_latest_active_by_userend_date'SHOW_USER_STATUS_WARLORD_REMAINING_TIME(SHOW_USER_STATUS_BOUNTY_DEDUCTIONS_TITLEhas_expired_bounty_loans'SHOW_USER_STATUS_BOUNTY_DEDUCTIONS_TEXTr   LOG_NEGATIVESHOW_USER_STATUS_EXPIRED_LOAN.get_expired_bounty_loans_cumulative_percentagehas_income_taxr(   SHOW_USER_STATUS_INCOME_TAXget_income_tax_percentager   get_by_owner_if_eatenSHOW_USER_STATUS_DEVIL_FRUITget_full_namer&   get_active_abilitieslenSHOW_USER_STATUS_CREW_ABILITIESr$   SHOW_USER_STATUSr   can_collect_daily_rewardSHOW_USER_STATUS_DAILY_REWARDSHOW_USER_STATUS_ADD_REPLYget_markdown_mentioneffective_messagereply_to_message
message_idshould_send_postersend_bounty_posterbounty_poster_limitsaveshould_update_model)r2   r3   r4   r5   r6   r7   r8   can_delete_usersinline_keyboardself_statusleaderboard_target_user_rank%requesting_user_leaderboard_user_rankot_textleaderboard_user_rankoutbound_keyboardpending_bounty_addendumbounty_stringlocation_nametarget_user_rank	crew_text
extra_textremaining_timebail_buttonhas_bounty_deductionbounty_deduction_texteaten_devil_fruitrh   crew_active_abilitiesmessage_textrF   s                                 -/app/src/chat/common/screens/screen_status.pymanager   6   s

     * $&,.O%-$$5K!,!8++dK  !>???#:;S]#^#^#^   {6688 ,,,0GZ1
 1
 1
- 5>>?[\\ 	@GG#DOV<<5PPRR#K$:K<UVV,GGII	 G $&DSc          F ;DDFF ;$@!!$3$P,TjIII% %! !)>>>%)???$TjAAA @ !! @ 76w7N7STT  7 ##%%=99< 
 $:K_c          F %** 	4;; :;;
 
   4466M   U??;"A -k.HIIN7RRTT I!!## 
188'(899
 
	 J  rl4J??? r6=='66
 


 ""$$ 	:/ O!78[!\!\!(!N'ELL^\\\J'?FF/  J 6 :gGG
;K<b<b<d<dee*#**K=999&&(( Z	 3?7(:K:O:O:Q:QQQ "88[!\!\gELL^\\\
 3?7(:K:O:O:Q:QQQ "88[!\!\gELL^\\\
 5A9H<M<Q<Q<S<SSS "88]!^!^gGNN~^^^
 5A9H<M<Q<Q<S<SSS "88]!^!^gGNN~^^^
 %%'' !75kBBK" " gMTT"  

 $) $+$T! 3355 ,%)X)_)_&9+TTVVV* * %
 (,$ ))++ ,4ST_4`4` ,%)X)_)_&7+??AAA* * %
 (,$# 433
  $.$D[$Q$Q!$0'"F"M"M)779967HUZ[[[# # J --// !,!1D,0,E,E,G,G)011A55"g&M&T&T31FRV  ' ' 
 +22K2K4MNN69*oo6I6I&z222r L  B/ 	BGAAL  S!C!J!J%%''"
 "
 
 	
 %6GR
 +z;?? 
 &+|M`aaaaaaaaa KJ??? 	-++q0++',D$$$	- 	-   3/47--$	
 	
 	
 		
 		
 		
 		
 		
 		
 		
 		
 		
    FcaptionrF   c                   K   d }	 |j         j        6|j         j        j        }|#|j        j        |j        j        k    r|j        s|}n# t          $ r d }Y nw xY wt          |||           d {V }t          t          j                  }	t          |d          5 }
|
                                |	_        d d d            n# 1 swxY w Y   t          | |	|||dd|d	  	         d {V  d S )N)telegram_user)
media_typerbT)saved_mediar2   r   rF   new_messager<   send_in_private_chatignore_forbidden_exception)r   r   	from_usereffective_chattyperV   is_botAttributeErrorr#   r   r    PHOTOopenreadmedia_idr+   )r3   r2   r5   r   rF   r   replied_telegram_userreplied_userposter_pathposterr   s              r   r   r   M  s      !	%#4@!3DNL'%*f.C.KKKP\PcK(4% % % % $% *&$F[\\\\\\\\\K#~/CDDDF	k4	 	  *H"--//* * * * * * * * * * * * * * * /1#'
 
 
 
 
 
 
 
 
 
 
 
s$   AA	 	AACC
Cis_own_statusc                 2    |                                  rdS dS )z
    Returns True if the user should send a bounty poster
    :param user: The user
    :param group_chat: The group chat
    :param is_own_status: True if the status is the user's own status
    :return: True if the user should send a bounty poster
    FT)rH   )r5   r7   r   s      r   r   r   s  s"      u4r   )NNN)NNF)drs   src.tg_compatr   src.tg_compat.errorr   src.tg_compat.extr   resources.EnvironmentEnvironmentrP   	resourcesr   (src.chat.common.screens.screen_crew_joinr   validate_crew_join:src.chat.private.screens.screen_crew_join_request_receivedr   src.model.Crewr	   src.model.CrewJoinRequestr
   src.model.Userr   $src.model.enums.ReservedKeyboardKeysr   src.model.enums.Screenr   src.model.error.CustomExceptionr    src.model.error.PrivateChatErrorr   src.model.pojo.Keyboardr   src.service.date_servicer   r   r   src.service.message_servicer   r   r   src.model.enums.CommandmodelenumsrY   src.model.enums.LeaderboardRankrS   resources.phrasesr   src.model.DevilFruitr   src.model.GroupChatr   src.model.Warlordr   src.model.enumsr   src.model.enums.BossTyper   src.model.enums.Emojir   src.model.enums.MessageSourcer   src.model.enums.SavedMediar   src.model.enums.SavedMediaTyper    src.model.error.GroupChatErrorr!   r"   !src.service.bounty_poster_servicer#   src.service.crew_servicer$   r%   src.service.devil_fruit_servicer&   src.service.impel_down_servicer'   src.service.income_tax_servicer(   src.service.leaderboard_servicer)   r*   r+   r,   r-   r.   src.service.user_servicer/   r0   src.utils.string_utilsr1   DEFAULT_TYPEr   strintr   boolr    r   r   <module>r      s                - - - - - - * * * * * * # # # # # #       S S S S S S M M M M M M       5 5 5 5 5 5       E E E E E E ) ) ) ) ) ) C C C C C C A A A A A A , , , , , ,         
 ] \ \ \ \ \ \ \ \ \ ) ) ) ) ) ) ) ) ) ) ) ) 9 9 9 9 9 9 9 9 9 9 9 9 < < < < < < + + + + + + ) ) ) ) ) ) % % % % % % $ $ $ $ $ $ - - - - - - ' ' ' ' ' ' 7 7 7 7 7 7 1 1 1 1 1 1 9 9 9 9 9 9 M M M M M M M M ? ? ? ? ? ? Y Y Y Y Y Y Y Y J J J J J J H H H H H H J J J J J J a a a a a a a a            A @ @ @ @ @ @ @ 6 6 6 6 6 6 "& T
 T
T
&T
 _T
 	T

 T
 T
 T
 
T
 T
 T
 T
v ## #&## # 	#
 # 
# # # #LT y  RV      r   