
    soj                     R   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 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- d dl.m/Z/m0Z0m1Z1 d dl2m3Z3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z:m;Z;m<Z< d dl=m>Z> d dl?m@Z@ d dlAmBZB d d lCmDZD d d!lEmFZF d d"lGmHZH d d#lImJZJ d d$lKmLZLmMZM d d%lNmOZOmPZPmQZQmRZR d d&lSmTZTmUZU d d'lVmWZW d d(lXmYZY  ee8jZ        d)e8j[        d*e8j\        d+e8j]        d,e8j^        d-e8j_        d.e8j`        d/e8ja        d0e8jb        d1e8jc        d2i
          Zd ee8jZ        d3e8j[        d4e8j\        d5e8j]        d6e8j^        d7e8j_        d8e8ja        d9e8jb        d:e8j`        d;e8jc        d<i
          Ze G d= d>e3          Zf G d? d@ef          Zg G dA dBef          Zh G dC dDef          Zi G dE dFef          Zj G dG dHef          Zk G dI dJef          Zl G dK dLef          Zm G dM dNef          Zn G dO dPef          Zo G dQ dRef          Zp eg             eh             ei             ej             ek             el             em             en             eo             ep            g
ZqdSe8dTeffdUZrdVS )W    )abstractmethod)datetime)Any)LazyPhraseDict)phrases)	BaseModel)
BountyGift)Crew)DocQGame)Fight)Game)IncomeTaxEvent)Leaderboard)LeaderboardUser)LegendaryPirate)Plunder)User)Warlord)BountyGiftRole)BountyGiftStatus)ButtonStyle)Emoji)
GameStatusGAME_STATUS_DESCRIPTIONS)LeaderboardRankget_rank_by_leaderboard_userLeaderboardRankIndex)ListPageEmojiLegend)get_first_new_world)LogType)ReservedKeyboardKeysLogTypeReservedKeysFightPlunderReservedKeys)Screen)IncomeTaxBreakdown)IncomeTaxContribution)IncomeTaxDeduction)IncomeTaxEventType)GameType)Keyboard)default_datetime_formatconvert_hours_to_duration)mention_markdown_v2escape_valid_markdown_charsget_message_urlget_deeplink)get_value_from_percentageget_percentage_from_value)get_outcome_text)get_belly_formattedFIGHT_LOG_KEYDOC_Q_GAME_LOG_KEYGAME_LOG_KEYBOUNTY_GIFT_LOG_KEYLEGENDARY_PIRATE_LOG_KEYNEW_WORLD_PIRATE_LOG_KEYWARLORD_LOG_KEYLEADERBOARD_RANK_LOG_KEYINCOME_TAX_EVENT_LOG_KEYPLUNDER_LOG_KEY"FIGHT_LOG_ITEM_DETAIL_TEXT_FILL_IN'DOC_Q_GAME_LOG_ITEM_DETAIL_TEXT_FILL_IN!GAME_LOG_ITEM_DETAIL_TEXT_FILL_IN(BOUNTY_GIFT_LOG_ITEM_DETAIL_TEXT_FILL_IN-LEGENDARY_PIRATE_LOG_ITEM_DETAIL_TEXT_FILL_IN-NEW_WORLD_PIRATE_LOG_ITEM_DETAIL_TEXT_FILL_IN-LEADERBOARD_RANK_LOG_ITEM_DETAIL_TEXT_FILL_IN-INCOME_TAX_EVENT_LOG_ITEM_DETAIL_TEXT_FILL_IN$WARLORD_LOG_ITEM_DETAIL_TEXT_FILL_IN$PLUNDER_LOG_ITEM_DETAIL_TEXT_FILL_INc                   N    e Zd ZdZddededef fdZeded	d
fd            Z	ee
j        fd	ee         fd            Zed	efd            Zed	ef fd            Zd	efdZd	ed
z  fdZededed	efd            Zd	efdZd	efdZd	efdZd	eee                  fdZ xZS )LogzAbstract class for logs.FTlog_typeonly_by_boss	has_statsc                     || _         || _        t                      | _        t	                      | _        || _        t                                                       dS )z
        Constructor

        :param log_type: The type of log
        :param only_by_boss: True if the log is visible only by a boss
        N)	typerM   r   userr   objectrN   super__init__)selfrL   rM   rN   	__class__s       /app/src/model/enums/Log.pyrT   zLog.__init__]   sM     &	".&&	!*(    	object_idreturnNc                     dS )zj
        Set the object of the log

        :param object_id: The object id
        :return: None
        N rU   rY   s     rW   
set_objectzLog.set_objectm   s	     	rX   c                     dS )z
        Get a list item for the log

        :param page: The page
        :param limit: The limit
        :return: The list item
        Nr\   rU   pagelimits      rW   	get_itemszLog.get_itemsw   s	     	rX   c                     dS )zQ
        Get the text for an item in the list

        :return: The text
        Nr\   rU   s    rW   get_item_textzLog.get_item_text   s	     	rX   c                 D    t                                                      S )zP
        Get the details for the log item

        :return: The details
        )rS   get_item_detail_textrU   rV   s    rW   rh   zLog.get_item_detail_text   s     ww++---rX   c                     dS )zG
        Get the stats for the log

        :return: The stats
        Nr\   re   s    rW   get_stats_textzLog.get_stats_text   s	     	rX   c                 X   | j         | j         j        dS t          | j         j                  xt          j        k    r t          j        S xt          j        k    r t          j        S xt          j        k    rn$xt          j	        k    rnxt          j
        k    rn n t          j        S dS )zI
        Get the semantic button style for the current log item.
        N)legendstatusr   WONr   SUCCESSLOSTDANGERDRAW
FORCED_ENDIN_PROGRESSPRIMARYre   s    rW   get_item_button_stylezLog.get_item_button_style   s    
 ;$+"4"<4+,,"** ")) #8:#8#8#8#8;Q:;Q;Q;Q;Q;Q;Q;Q"**trX   item_idc                 l    t           j        | t           j        |i}t          |t          j                  S )z
        Get the deeplink for the log

        :param log_type: The log type
        :param item_id: The item id
        :return: The deeplink
        screen)r#   TYPEITEM_IDr1   r%   PVT_LOGS_TYPE_DETAIL)rL   rx   infos      rW   get_deeplink_by_typezLog.get_deeplink_by_type   s0     *.:M:UW^_D)DEEEErX   c                 8    |                      | j        |          S )zq
        Get the deeplink for the log

        :param item_id: The item id
        :return: The deeplink
        )r   rP   )rU   rx   s     rW   r1   zLog.get_deeplink   s     ((G<<<rX   c                 &    t           | j                 S )zU
        Get the text fill in for the log

        :return: The text fill in
        )LOG_TYPE_DETAIL_TEXT_FILL_INrP   re   s    rW   get_text_fill_inzLog.get_text_fill_in   s     ,DI66rX   c                 >    | j         j        rdnt          j        dk    S )zu
        Get the is admin condition statement for the log

        :return: The is admin condition statement
        TF)rQ   is_adminr   re   s    rW   get_is_admin_condition_stmtzLog.get_is_admin_condition_stmt   s     y)Gtt0FGrX   c                     g S )zR
        Get a custom keyboard for the log

        :return: The keyboard
        r\   re   s    rW   get_keyboardzLog.get_keyboard   s	     	rX   )FT)__name__
__module____qualname____doc__r!   boolrT   r   intr^   r   DEFAULT_LIMITlistr   rc   strrf   rh   rk   r   rw   staticmethodr   r1   r   r   r   r+   r   __classcell__rV   s   @rW   rK   rK   Z   s       ""   QU        C D    ^ $,$:  tI    ^ s    ^ .c . . . . . ^.    {T'9    $ 
Fw 
F 
F 
F 
F 
F \
F=s = = = =7# 7 7 7 7HS H H H Hd4>2        rX   rK   c                        e Zd ZdZ fdZdeddfdZej        fde	e
         fdZdefdZdef fd	Zdefd
Zde	e         fdZde	e	e                  fdZ xZS )FightLogzClass for fight logsc                     t                                          t          j                   t	                      | _        t                      | _        d| _        t          j
        | _        dS 
        Constructor

        FN)rS   rT   r!   FIGHTr   rR   r   opponentuser_is_challengerr   NDeffective_statusri   s    rW   rT   zFightLog.__init__   sM     	'''"WW"ff(-,6MrX   rY   rZ   Nc                 >   t          j        t           j        |k              | _        | j        j        | j        k    | _        | j                            | j                  | _        | 	                                | _
        | j
                                        | _        d S N)r   getidrR   
challengerrQ   r   get_opponentr   get_emoji_legendrm   get_game_statusr   r]   s     rW   r^   zFightLog.set_object   sv    iI 566"&+"8DI"E00;;++-- $ ; ; = =rX   c                    | j                                                             t          j        | j        k    t          j        | j        k    z  t          j                            t          j
        t          j        g          z  |                                 z                                t          j                                                                      ||          S r   )rR   selectwherer   r   rQ   r   rn   in_r   ro   rq    get_active_filter_list_conditionorder_bydatedescpaginater`   s      rW   rc   zFightLog.get_items   s    K  U"di/ENdi4OP<##Z^Z_$EFFH88::< 
 Xejoo''((XdE""		
rX   c                     t           j                            | j                                        | j                                        t          | j        j	                            S r   )
r   FIGHT_LOG_ITEM_TEXTformatrm   get_formattedr   get_markdown_mentionr5   rR   bellyre   s    rW   rf   zFightLog.get_item_text  sO    *11K%%''M..00 122
 
 	
rX   c                 f   t                                                       | j        rt          j        nt          j        }t          | j        j        | j	                  }| j
        t          j        t          j        fv r>t          t          | j        j                  t          j        u | j        j                  }n/t          j                            t(          | j
                           }d}| j        j        At          j                            t/          | j        j        | j        j                            }t          j                            || j                                        || j                            | j	                  ||          }| j                            | j	                  r:|t          j                            | j                                                  z  }n`| j        j         T|t          j!                            tD          #                    tH          j%        | j        j         j&                            z  }| j        '                                x}rJ|t          j(                            tD          #                    tH          j%        |j&                            z  }|S N ))rS   rh   r   r   OPPONENT
CHALLENGERr,   rR   r   rQ   r   r   ro   rq   r4   rm   rn   r   LOG_ITEM_DETAIL_STATUS_TEXTr   r   
group_chatLOG_ITEM_DETAIL_GO_TO_MESSAGEr0   
message_idFIGHT_LOG_ITEM_DETAIL_TEXTr   r   get_win_probabilitycan_revengeFIGHT_ATTACK_CAN_REVENGEget_revenge_remaining_durationin_revenge_to_fight&FIGHT_LOG_ITEM_DETAIL_TEXT_IN_RESPONSErK   r   r!   r   r   get_revenge_fight#FIGHT_LOG_ITEM_DETAIL_TEXT_REVENGED)rU   challenger_textr   outcome_textgo_to_message_textot_textrevenge_fightrV   s          rW   rh   zFightLog.get_item_detail_text  s3   $$&&&.2.E]'**7K]&t{'7CC Z^Z_$EEE+DK.//:>ADKDU LL #>EE()>? L  ;!-!(!F!M!M 68NOO" " 4;;M..00K++DI66
 
 ;""49-- 	w7>>::<<  GG [,8wELL((8W8Z[[  G !K99;;;= 	wBII((8HII  G rX   c                    |                                  }| j                            | j        t          j                  }t          t          ||                    }| j                            | j        t          j                  }t          t          ||                    }| j        	                    | j        t          j                  }| j        	                    | j        t          j                  }| j        
                    | j                  \  }}	t          j                            |||||t          | j                            | j        t          j                            t          | j                            | j        t          j                            t          |j                  |                    | j                                                  |                     |j                  t          |j                  |                    | j                                                  |                     |j                  |                                |	          S r   )get_total_items_countrR   get_total_win_or_lossrQ   r   ro   r   r3   rq   get_max_won_or_lostget_most_fought_userr   FIGHT_LOG_STATS_TEXTr   r5   get_total_belly_won_or_lostr   r   r   r1   r   )
rU   total_fights
total_winstotal_wins_percentagetotal_lossestotal_losses_percentagemax_won_fightmax_lost_fightmost_fought_usermost_fought_counts
             rW   rk   zFightLog.get_stats_text=  s   1133[66ty*.QQ
 #$=j,$W$W X X{88JOTT"%&?l&[&["\"\77	:>RR88JOTT.2k.N.Nty.Y.Y+++22!#77	:>RR   77	:?SS    344&&ty11FFHHm.// 455''	22GGIIn/001133'
 
 	
rX   c           	      B   t          t          j        t          j        t
          j        | j        k    t
          j        t          j
        k    z  t
          j        | j        k    t
          j        t          j        k    z  z  t          j
                  t          t          j        t          j        t
          j        | j        k    t
          j        t          j
        k    z  t
          j        | j        k    t
          j        t          j        k    z  z  t          j                  gS Nrn   )r   r   LOG_POSITIVEr   GAME_STATUS_WONr   r   rQ   rn   r   ro   r   rq   LOG_NEGATIVEGAME_STATUS_LOSTre   s    rW   get_emoji_legend_listzFightLog.get_emoji_legend_list\  s    "'&$)3
8VW$)3
8WXZ "~   "(n	1eljn6TU(DI5%,*/:YZ\ "  
 	
rX   c           
         | j                             | j                  sg S t          t          j        t          j        t          j	        dt          j        | j         j        j        t          j        | j         j        i          ggS N   )r{   r   )rR   r   rQ   r+   r   PVT_KEY_FIGHT_REVENGEr%   	PVT_FIGHTr"   CONFIRMr$   OPPONENT_IDr   r   IN_REVENGE_TO_ATTACK_IDre   s    rW   r   zFightLog.get_keyboardr  sy    {&&ty11 	I 1!+,4a0<dk>T>W0H$+.  

 	
rX   )r   r   r   r   rT   r   r^   r   r   r   r   rc   r   rf   rh   rk   r   r   r+   r   r   r   s   @rW   r   r      s,       : : : : :>C >D > > > > %-$: 

 

tE{ 

 

 

 


s 
 
 
 
.c . . . . . .`
 
 
 
 
>
tK'8 
 
 
 
,
d4>2 
 
 
 
 
 
 
 
rX   r   c                        e Zd ZdZ fdZdeddfdZej        fde	e
         fdZdefdZdef fd	Zdefd
Zdedz  fdZde	e         fdZ xZS )DocQGameLogzClass for DocQGame logsc                     t                                          t          j                   t	                      | _        dS )r   N)rS   rT   r!   
DOC_Q_GAMEr   rR   ri   s    rW   rT   zDocQGameLog.__init__  s/     	+,,, (

rX   rY   rZ   Nc                     t          j        t           j        |k              | _        |                                 | _        d S r   )r   r   r   rR   r   rm   r]   s     rW   r^   zDocQGameLog.set_object  s1    l8;)#;<<++--rX   c                    | j                                                             t          j        | j        k    t          j                            t          j        t          j	        g          z  | 
                                z                                t          j                                                                      ||          S r   )rR   r   r   r   rQ   rn   r   r   ro   rq   r   r   r   r   r   r`   s      rW   rc   zDocQGameLog.get_items  s    K  U$)+?&&

'HIIK88::< 
 Xhm((**++XdE""		
rX   c                     t           j                            | j                                        t          | j        j                            S r   )r   DOC_Q_GAME_LOG_ITEM_TEXTr   rm   r   r5   rR   r   re   s    rW   rf   zDocQGameLog.get_item_text  s>    /66K%%'')<T[=N)O)O
 
 	
rX   c                    t                                                       t          | j        j        | j                  }| j                                        }t          | j        j                  t          j	        u }t          || j        j                  }d}| j        j        At          j                            t!          | j        j        | j        j                            }t          j                            ||||          S r   )rS   rh   r,   rR   r   rQ   get_correct_apple_numberr   rn   ro   r4   r   r   r   r   r   r0   r   DOC_Q_GAME_LOG_ITEM_DETAIL_TEXT)rU   r   correct_applewonr   r   rV   s         rW   rh   z DocQGameLog.get_item_detail_text  s    $$&&&&t{'7CC<<>>+,,
>'T[->??;!-!(!F!M!M 68NOO" " 6==	
 
 	
rX   c                    |                                  }| j                            | j        t          j                  }t          t          ||                    }| j                            | j        t          j                  }t          t          ||                    }| j        	                    | j        t          j                  }| j        	                    | j        t          j                  }t          j                            |||||t          | j                            | j        t          j                            t          | j                            | j        t          j                            t          |j                  |                     |j                  t          |j                  |                     |j                            S r   )r   rR   r   rQ   r   ro   r   r3   rq   r   r   DOC_Q_GAME_LOG_STATS_TEXTr   r5   r   r   r1   r   )rU   total_gamesr   r   r   r   max_won_gamemax_lost_games           rW   rk   zDocQGameLog.get_stats_text  sn   0022[66ty*.QQ
 #$=j+$V$V W W{88JOTT"%&?k&Z&Z"["[{66ty*.QQ77	:?SS077!#77	:>RR   77	:?SS    233lo.. 344m.//
 
 	
rX   c                     t          | j        j                  xt           j        k    r t          j        S t           j        k    rt          j        S d S r   )r   rm   rn   ro   r   rp   rq   rr   re   s    rW   rw   z!DocQGameLog.get_item_button_style  s?    +,,"**"))trX   c                 &   t          t          j        t          j        t
          j        t          j        k    t          j                  t          t          j	        t          j
        t
          j        t          j        k    t          j                  gS )S
        Get the emoji legend list

        :return: The emoji legend list
        r   )r   r   r   r   r   r   rn   r   ro   r   r   rq   re   s    rW   r   z!DocQGameLog.get_emoji_legend_list  sn     "':>1!~	   "(:?2!	  
 	
rX   )r   r   r   r   rT   r   r^   r   r   r   r   rc   r   rf   rh   rk   r   rw   r   r   r   r   s   @rW   r   r     s'       !!+ + + + +.C .D . . . . %-$: 

 

tH~ 

 

 

 


s 
 
 
 


c 
 
 
 
 
 
*
 
 
 
 
6{T'9    
tK'8 
 
 
 
 
 
 
 
rX   r   c                        e Zd ZdZ fdZdeddfdZej        fde	e
         fdZdefdZdef fd	Zdefd
Zde	e         fdZ xZS )GameLogzClass for game logsc                     t                                          t          j                   t	                      | _        t                      | _        t          j	        | _
        d| _        d| _        dS )z
        Constructor
        FN)rS   rT   r!   GAMEr   rR   r   r   r   r   r   r   effective_wagerri   s    rW   rT   zGameLog.__init__  sU    
 	&&& FF"ff,6M(-#rX   rY   rZ   Nc                 f   t          j        t           j        |k              | _        | j        j        | j        k    | _        | j        r| j        j        n| j        j        | _        |                                 | _	        | j	        
                                | _        | j        j        dz  | _        d S N   )r   r   r   rR   r   rQ   r   r   r   rm   r   r   wagerr  r]   s     rW   r^   zGameLog.set_object  s    htw)344"&+"8DI"E040Gc,,T[Mc++-- $ ; ; = =#{0A5rX   c                    | j                                                             t          j        | j        k    t          j        | j        k    z  t          j                            t          j
                    t          j        gz             z  t          j                            d          z  |                                 z                                t          j                                                                      ||          S )NF)rR   r   r   r   r   rQ   r   rn   r   r   get_finishedru   is_nullr   r   r   r   r   r`   s      rW   rc   zGameLog.get_items  s    K  U/TY.4=DI3MN;??:#:#<#<
@V?W#WXXZ=((//1 88::<  Xdinn&&''XdE""
	
rX   c                     | j         j        dz  }t          j                            | j                                        | j                                        t          |                    S r	  )
rR   r  r   GAME_LOG_ITEM_TEXTr   rm   r   r   r   r5   )rU   
bet_amounts     rW   rf   zGameLog.get_item_text  sY    [&!+
)00K%%''M..00
++
 
 	
rX   c           	      .   t                                                       | j        rt          j        nt          j        }t          | j        j        | j	                  }| j        j
        +t          | j        j
                                                  nt          j        }| j        t          j        t          j        fv rw| j        t          j        u }t          j                            |rt(          j        nt(          j        |rt          j        nt          j        t3          | j                            }n/t          j                            t8          | j                           }d}| j                                        sAt          j                            t?          | j        j         | j        j!                            }t          j"                            || j#        $                                ||t3          | j        j%                  ||          S r   )&rS   rh   r   r   r   r   r,   rR   r   rQ   rP   r*   get_nameGAME_NOT_SELECTED_NAMEr   r   ro   rq   "LOG_ITEM_DETAIL_OUTCOME_BELLY_TEXTr   r   r   r   TEXT_WON	TEXT_LOSTr5   r  r   r   	is_globalr   r0   r   r   GAME_LOG_ITEM_DETAIL_TEXTr   r   r  )rU   r   r   	game_namer   r   r   rV   s          rW   rh   zGameLog.get_item_detail_text%  s   $$&&&.2.E]'**7K]&t{'7CC {+ T[%&&//111/ 	  Z^Z_$EEE':>9C"ELL'*B##0B%(?!!g.?#D$899 LL #>EE()>? L  {$$&& 	!(!F!M!M 68NOO" " 077M..00 122
 
 	
rX   c                 x   |                                  }| j                            | j        t          j                  }t          t          ||                    }| j                            | j        t          j                  }t          t          ||                    }| j                            | j        t          j	                  }t          t          ||                    }| j        
                    | j        t          j                  }| j        
                    | j        t          j                  }	| j                            | j                  \  }
}| j                            | j                  \  }}t          j                            |||||||t!          | j                            | j        t          j                            t!          | j                            | j        t          j                            t!          |j                  |                                |                     |j                  t!          |	j        dz            |	                                |                     |	j                  |
                                ||                                |          S r	  )r   rR   get_total_win_or_loss_or_drawrQ   r   ro   r   r3   rq   rs   r   get_most_challenged_userget_most_played_gamer   GAME_LOG_STATS_TEXTr   r5   r   r  r  r1   r   r   )rU   r   r   r   r   r   total_drawstotal_draws_percentager   r   most_challenged_usermost_challenged_countmost_played_gamemost_played_counts                 rW   rk   zGameLog.get_stats_textL  s2   0022[>>ty*.YY
 #$=j+$V$V W W{@@JO\\"%&?k&Z&Z"["[k??	:?[[!$%>{K%X%X!Y!Y{66ty*.QQ77	:?SS6:k6Z6ZI7
 7
33 /3k.N.Nty.Y.Y++*11!#"77	:>RR   77	:?SS    233!!##lo.. 3q 899""$$m.// 5577!%%''/
 
 	
rX   c           
         t          t          j        t          j        t
          j        | j        k    t
          j        t          j
        k    z  t
          j        | j        k    t
          j        t          j        k    z  z  t          j
                  t          t          j        t          j        t
          j        | j        k    t
          j        t          j
        k    z  t
          j        | j        k    t
          j        t          j        k    z  z  t          j                  t          t          j        t          j        t
          j        t          j        k    t          j                  t          t          j        t          j        t
          j        t          j        k    t          j                  t          t          j        t          j        t
          j        t          j        k    t          j                  gS r   )r   r   r   r   r   r   r   rQ   rn   r   ro   r   rq   r   r   LOG_DRAWGAME_STATUS_DRAWrs   LOG_FORCED_ENDGAME_STATUS_FORCED_ENDrt   LOG_NEUTRALGAME_STATUS_IN_PROGRESSru   re   s    rW   r   zGameLog.get_emoji_legend_listu  sb   "'o2t{jn7TU2t{jo7UVX "~   "(mty0T[JN5RS494
9WXZ "   (
/!	   $.
 55!,	   !/
 66!-	  ?%
 %	
rX   )r   r   r   r   rT   r   r^   r   r   r   r   rc   r   rf   rh   rk   r   r   r   r   s   @rW   r  r    s	       $ $ $ $ $6C 6D 6 6 6 6 %-$: 
 
tDz 
 
 
 

s 
 
 
 
%
c %
 %
 %
 %
 %
 %
N'
 '
 '
 '
 '
R&
tK'8 &
 &
 &
 &
 &
 &
 &
 &
rX   r  c                        e Zd ZdZ fdZdeddfdZej        fde	e
         fdZdefdZdef fd	Zdefd
Zdedz  fdZde	e         fdZ xZS )BountyGiftLogzClass for bounty gift logsc                     t                                          t          j                   t	                      | _        t                      | _        d| _        dS r   )	rS   rT   r!   BOUNTY_GIFTr	   rR   r   
other_useruser_is_senderri   s    rW   rT   zBountyGiftLog.__init__  sD     	,---",,, $$)rX   rY   rZ   Nc                     t          j        t           j        |k              | _        | j        j        | j        k    | _        | j        r| j        j        n| j        j        | _        d S r   )	r	   r   r   rR   senderrQ   r2  receiverr1  r]   s     rW   r^   zBountyGiftLog.set_object  sP    ",.)1K"L"L"k0DI=262E]$+..4;K]rX   c                    | j                                                             t          j        | j        k    t          j        | j        k    z  t          j        t          j	        k    z  | 
                                z                                t          j                                                                      ||          S r   )rR   r   r   r	   r4  rQ   r5  rn   r   	CONFIRMEDr   r   r   r   r   r`   s      rW   rc   zBountyGiftLog.get_items  s    K  U#ty0Z5HDI5UV$(8(BBD88::< 
 Xjo**,,--XdE""		
rX   c                    | j         rt          j        nt          j        }t          j                            |                                 t          | j        j	                  || j
                                                  S r   )r2  r   TEXT_TO	TEXT_FROMBOUNTY_GIFT_LOG_ITEM_TEXTr   get_emoji_legend_formattedr5   rR   amountr1  r   )rU   to_texts     rW   rf   zBountyGiftLog.get_item_text  sf    %)%8O'//g>O077++-- 233O0022	
 
 	
rX   c                    t                                                       | j        rt          j        nt          j        }t          | j        j        | j	                  }d}| j        rt          t          | j        j        | j        j                            }| j        j        |z   }t          j                            t!          |          | j        j        t!          |                    }t          j                            || j                                        |t!          | j        j                  |t)          | j        j        | j        j                            S r   )rS   rh   r2  r   RECEIVERSENDERr,   rR   r   rQ   r   r2   r=  tax_percentage$BOUNTY_GIFT_LOG_ITEM_DETAIL_TAX_TEXTr   r5    BOUNTY_GIFT_LOG_ITEM_DETAIL_TEXTr1  r   r0   r   r   )rU   sender_textr   tax_text
tax_amounttotal_amountrV   s         rW   rh   z"BountyGiftLog.get_item_detail_text  s!   $$&&&*.*=Qg&&7>&t{'7CC 		)$+*<dk>XYY J  ;-
:LCJJ#J//*#L11 H 7>>O0022 233DK2DK4JKK
 
 	
rX   c                 <   | j                             | j        t          j                  }|j        |j        }}| j                             | j        t          j                  }|j        |j        }}| j         	                    | j        t          j                  \  }}| j         	                    | j        t          j                  \  }	}
t          j                            |                                 t          | j                             | j        t          j                            t          | j                             | j        t          j                            t          |          |                                |                     |j                  t          |          |                                |                     |j                  |                                t          |          |	                                t          |
                    S r   )rR   "get_highest_belly_sent_or_receivedrQ   r   rA  r5  r=  r@  r4  get_top_givers_or_receiverr   BOUNTY_GIFT_LOG_STATS_TEXTr   r   r5    get_total_belly_sent_or_receivedget_markdown_namer1   r   r   )rU   highest_sent_gifthighest_sent_userhighest_sent_amounthighest_received_gifthighest_received_userhighest_received_amountmost_sent_usermost_sent_amountmost_received_usermost_received_amounts              rW   rk   zBountyGiftLog.get_stats_text  s    KJJI~,
 
 &$ / !% N NI~.!
 !
 "(!(  7 ,0;+Q+QI~,,
 ,
(( 48;3Y3YI~.4
 4
00 188&&((<<TYH]^^   <<TYH_``    344//11/233 788!33553677//11 0113355 455#
 
 	
rX   c                 @    | j         rt          j        S t          j        S r   )r2  r   rr   rp   re   s    rW   rw   z#BountyGiftLog.get_item_button_style  s     	&%%""rX   c                     t          t          j        t          j        t
          j        | j        k              t          t          j        t          j	        t
          j        | j        k               gS )r  )
r   r   LOG_BLUEr   BOUNTY_GIFT_LOG_LEGEND_SENTr	   r4  rQ   r   BOUNTY_GIFT_LOG_LEGEND_RECEIVEDre   s    rW   r   z#BountyGiftLog.get_emoji_legend_list  s^     3!TY. 
 "7#ty01 
 	
rX   )r   r   r   r   rT   r   r^   r   r   r   r	   rc   r   rf   rh   rk   r   rw   r   r   r   r   s   @rW   r.  r.    s/       $$
* 
* 
* 
* 
*^C ^D ^ ^ ^ ^
 %-$: 

 

tJ?O 

 

 

 


s 
 
 
 

c 
 
 
 
 
 
6(
 (
 (
 (
 (
T#{T'9 # # # #
tK'8 
 
 
 
 
 
 
 
rX   r.  c                   t     e Zd ZdZ fdZdeddfdZej        fde	e
         fdZdefdZdef fd	Z xZS )
LegendaryPirateLogzClass for legendary pirate logsc                     t                                          t          j        d           t	                      | _        t                      | _        dS r   F)rN   N)rS   rT   r!   LEGENDARY_PIRATEr   rR   r   rQ   ri   s    rW   rT   zLegendaryPirateLog.__init__*  sA     	1UCCC'6'8'8&&			rX   rY   rZ   Nc                 v    t          j        t           j        |k              | _        | j        j        | _        d S r   )r   r   r   rR   rQ   r]   s     rW   r^   zLegendaryPirateLog.set_object5  s-    '6':?;MQZ;Z'['[+*			rX   c                     t          j                                        t           j                                                                      ||          S r   )r   
get_activer   r   r   r   r`   s      rW   rc   zLegendaryPirateLog.get_items9  s>    &((Xo*//1122XdE""	
rX   c                     t           j                            t          | j        j        | j        j                            S r   )r   LEGENDARY_PIRATE_LOG_ITEM_TEXTr   r.   rQ   
tg_user_idrR   epithetre   s    rW   rf   z LegendaryPirateLog.get_item_text@  s4    5<<	 4dk6IJJ
 
 	
rX   c                     t                                                       t          j                            | j                                        | j        j        | j        j	                  S r   )
rS   rh   r   %LEGENDARY_PIRATE_LOG_ITEM_DETAIL_TEXTr   rQ   r   rR   ri  reasonri   s    rW   rh   z'LegendaryPirateLog.get_item_detail_textE  sS    $$&&&<CCI**,,dk.A4;CU
 
 	
rX   )r   r   r   r   rT   r   r^   r   r   r   r   rc   r   rf   rh   r   r   s   @rW   r_  r_  '  s        ))	! 	! 	! 	! 	!+C +D + + + + %-$: 
 
tO?T 
 
 
 

s 
 
 
 


c 
 
 
 
 
 
 
 
 
 
rX   r_  c                   t     e Zd ZdZ fdZdeddfdZej        fde	e
         fdZdefdZdef fd	Z xZS )
NewWorldPirateLogzClass for new world pirate logsc                     t                                          t          j        dd           t	                      | _        dS )r   TF)rM   rN   N)rS   rT   r!   NEW_WORLD_PIRATEr   rR   ri   s    rW   rT   zNewWorldPirateLog.__init__P  s7     	1PUVVV FFrX   rY   rZ   Nc                 T    t          j        t           j        |k              | _        d S r   )r   r   r   rR   r]   s     rW   r^   zNewWorldPirateLog.set_objectZ  s     HTW	%9::rX   c                 p   | j                                                             t          j        t                      j        k    t          j                    z  |                                 z            	                    t          j
                                                                      ||          S r   )rR   r   r   r   location_levelr    level'get_is_not_arrested_statement_conditionr   r   bountyr   r   r`   s      rW   rc   zNewWorldPirateLog.get_items]  s    K  U$(;(=(=(CC?AAC33557 
 Xdk&&(())XdE""		
rX   c                     t           j                            | j                                        t          | j        j                            S r   )r   NEW_WORLD_PIRATE_LOG_ITEM_TEXTr   rR   r   r5   rv  re   s    rW   rf   zNewWorldPirateLog.get_item_texti  s>    5<<K,,..0CDKDV0W0W
 
 	
rX   c                    t                                                       | j                                        r>| j        j        }t
          j                            |                                          }nd}t
          j	                            | j        
                                t          | j        j                  t          | j                                        j                  |          S r   )rS   rh   rR   is_crew_membercrewr   *NEW_WORLD_PIRATE_LOG_ITEM_DETAIL_CREW_TEXTr   get_name_escaped%NEW_WORLD_PIRATE_LOG_ITEM_DETAIL_TEXTr   r5   rv  r/   get_locationname)rU   r{  	crew_textrV   s      rW   rh   z&NewWorldPirateLog.get_item_detail_textn  s    $$&&&;%%'' 	)DJQQ%%'' II I<CCK,,.. 233'(@(@(B(B(GHH	
 
 	
rX   )r   r   r   r   rT   r   r^   r   r   r   r   rc   r   rf   rh   r   r   s   @rW   rn  rn  M  s        ))# # # # #;C ;D ; ; ; ; %-$: 

 

tDz 

 

 

 


s 
 
 
 


c 
 
 
 
 
 
 
 
 
 
rX   rn  c                        e Zd ZdZ fdZdeddfdZej        fde	e
         fdZdefdZdef fd	Zdefd
Zde	e         fdZ xZS )LeaderboardRankLogzClass for leaderboard rank logsc                     t                                          t          j                   t	                      | _        t                      | _        d| _        dS r   )	rS   rT   r!   LEADERBOARD_RANKr   rR   r   leaderboardshow_legend_listri   s    rW   rT   zLeaderboardRankLog.__init__  sG     	1222'6'8'8(3 %rX   rY   rZ   Nc                     t          j        t           j        |k              | _        | j        j        | _        |                                 | _        d S r   )r   r   r   rR   r  r   rm   r]   s     rW   r^   zLeaderboardRankLog.set_object  sA    '6':?;MQZ;Z'['[(,(?++--rX   c                    | j                                                             t                                        t
          j        | j        k    t          j                                        z  | 	                                z            
                    t
          j                                                                      ||          S r   )rR   r   joinr   r   r   rQ   groupr  r   r   r   r   r   r`   s      rW   rc   zLeaderboardRankLog.get_items  s    K  T+U %2$,,..088::< 
 Xo(--//00XdE""
	
rX   c           	          t           j                            | j        j        | j        j        t          j        t          | j	                                      S r   )
r   LEADERBOARD_RANK_LOG_ITEM_TEXTr   r  weekyearr   get_emoji_and_rank_messager   rR   re   s    rW   rf   z LeaderboardRankLog.get_item_text  sJ    5<<!!67STXT_7`7`aa
 
 	
rX   c           
      <   t                                                       t          j                            | j        j        | j        j        | j        j	        t          j        t          | j                            t          | j        j                            S r   )rS   rh   r   %LEADERBOARD_RANK_LOG_ITEM_DETAIL_TEXTr   r  r  r  rR   positionr   r  r   r5   rv  ri   s    rW   rh   z'LeaderboardRankLog.get_item_detail_text  sy    $$&&&<CC!!K 67STXT_7`7`aa 233
 
 	
rX   c                    |                                  }| j                            | j        t          j                  }t          t          ||                    }| j                            | j        t          j                  }t          t          ||                    }| j                            | j        t          j	                  }t          t          ||                    }| j                            | j        t          j
                  }t          t          ||                    }	| j                            | j        t          j                  }
t          t          |
|                    }| j                            | j                  }| j                            | j                  }t          j                            |||||||||	|
|t#          |                                          |j        |                     |j                  t-          |j                  |j        |                     |j                            S r   )r   rR   get_appearances_as_rankrQ   r   PIRATE_KINGr   r3   EMPEROR
FIRST_MATE	SUPERNOVAWARLORDget_max_rank_attainedget_max_bounty_attainedr   LEADERBOARD_RANK_LOG_STATS_TEXTr   r   r  r  r1   r   r5   rv  )rU   total_appearancesappearances_as_pirate_king%appearances_as_pirate_king_percentageappearances_as_emperor!appearances_as_emperor_percentageappearances_as_first_mate$appearances_as_first_mate_percentageappearances_as_supernova#appearances_as_supernova_percentageappearances_as_warlord!appearances_as_warlord_percentagemax_by_rankmax_by_bountys                 rW   rk   z!LeaderboardRankLog.get_stats_text  s4    6688%)[%H%HI+7&
 &
" 14%&@BSTT1
 1
- "&!D!DI+3"
 "
 -0%&<>OPP-
 -
) %)K$G$GI+6%
 %
! 03%&?ARSS0
 0
, $(;#F#FI+5$
 $
  /2%&>@QRR/
 /
+ "&!D!DI+3"
 "
 -0%&<>OPP-
 -
) (,{'H'H'S'S)-)L)LTY)W)W6==&1"-%0$/"-(55PPRR kn-- 455"m.//#
 
 	
rX   c                    t          t          j        t          j        t
          j        t          j        k              t          t          j	        t          j
        t
          j        t          j        k              t          t          j        t          j        t
          j        t          j        k              t          t          j        t          j        t
          j        t          j        k              t          t          j        t          j        t
          j        t          j        k              t          t          j        t          j        t
          j        t          j        k              gS r   )r   r   LEADERBOARD_PIRATE_KINGr   LEADERBOARD_RANK_PIRATE_KINGr   
rank_indexr   r  LEADERBOARD_EMPERORLEADERBOARD_RANK_EMPERORr  LEADERBOARD_FIRST_MATELEADERBOARD_RANK_FIRST_MATEr  LEADERBOARD_SUPERNOVALEADERBOARD_RANK_SUPERNOVAr  LEADERBOARD_WARLORDLEADERBOARD_RANK_WARLORDr  LEADERBOARD_LEGENDARY_PIRATE!LEADERBOARD_RANK_LEGENDARY_PIRATErb  re   s    rW   r   z(LeaderboardRankLog.get_emoji_legend_list  s   -4 +/C/OO 
 )0 +/C/KK 
 ,3 +/C/NN 
 +2 +/C/MM 
 )0 +/C/KK 
 29 +/C/TT 5
 	
rX   )r   r   r   r   rT   r   r^   r   r   r   r   rc   r   rf   rh   rk   r   r   r   r   s   @rW   r  r    s	       ))
& 
& 
& 
& 
&.C .D . . . .
 %-$: 
 
tO?T 
 
 
 

s 
 
 
 
	
c 	
 	
 	
 	
 	
 	
5
 5
 5
 5
 5
n 
tK'8  
  
  
  
  
  
  
  
rX   r  c                   t     e Zd ZdZ fdZdeddfdZej        fde	e
         fdZdefdZdef fd	Z xZS )
IncomeTaxEventLogzClass for income tax event logsc                     t                                          t          j        d           t	                      | _        t                      | _        dS ra  )rS   rT   r!   INCOME_TAX_EVENTr   rR   r   rQ   ri   s    rW   rT   zIncomeTaxEventLog.__init__  sA     	1UCCC&4&6&6&&			rX   rY   rZ   Nc                 v    t          j        t           j        |k              | _        | j        j        | _        d S r   )r   r   r   rR   rQ   r]   s     rW   r^   zIncomeTaxEventLog.set_object  s,    &4&89Ji9W&X&X+*			rX   c                    | j                                                             t          j        | j        k                                  t          j                                                                      ||          S r   )	rR   r   r   r   rQ   r   r   r   r   r`   s      rW   rc   zIncomeTaxEventLog.get_items   sZ    K  UN'49466Xn)..0011XdE""		
rX   c                     t           j                            | j                                        t          | j        j                            S r   )r   INCOME_TAX_EVENT_LOG_ITEM_TEXTr   rR   get_event_type_descriptionr5   r=  re   s    rW   rf   zIncomeTaxEventLog.get_item_text(  s>    5<<K22446I$+J\6]6]
 
 	
rX   c                    t                                                       ddlm} | j                                        }|                                }d}|&t                              || j        j	                  }n| j        j	        }|xt          j        k    r%  |t          j        |it          j                  }ngxt          j        k    r%  |t          j        |it          j                  }n2t          j        k    r# |t          j        |it          j                  }t)          j        | j        j                  }t/          j        | j        j                  }t3          j        | j        j                  }t)          j        ||          }	t9          t;          |	| j        j        d                    }
| j        j        |	z
  }d}t?          |          dk    rKt@          j!        }|D ]<}|t@          j"        #                    |$                                |j%                  z  }=d}t?          |          dk    ryt@          j&        }|D ]j}|t@          j'        #                    |$                                tQ          t9          tS          |	|j%                                      |j%                  z  }kd}|D ]}|t@          j*        #                    tQ          |j+                  tQ          |j+        |j,        z
            tQ          |j,                  t9          t;          |j,        |j+                                      z  }t@          j-        #                    | j        .                                || j/        0                    | j        j1                  tQ          | j        j                  tQ          |          tQ          |	          |
|||
  
        S )Nr   )r1   r   rz   F)add_decimal)2rS   rh   src.service.message_servicer1   rR   get_event_typeget_log_typerK   r   event_idr)   BOUNTY_LOANr"   DEFAULT_PRIMARY_KEYr%   PVT_BOUNTY_LOAN_DETAIL
PREDICTIONPVT_PREDICTION_DETAILDAVY_BACK_FIGHTPVT_CREW_DAVY_BACK_FIGHT_DETAILr&   from_stringbreakdown_listr(   deduction_listr'   contribution_list#get_amount_with_deduction_from_listr   r3   r=  lenr   /INCOME_TAX_EVENT_LOG_ITEM_DETAIL_TEXT_DEDUCTION4INCOME_TAX_EVENT_LOG_ITEM_DETAIL_TEXT_DEDUCTION_ITEMr   get_description
percentage2INCOME_TAX_EVENT_LOG_ITEM_DETAIL_TEXT_CONTRIBUTION7INCOME_TAX_EVENT_LOG_ITEM_DETAIL_TEXT_CONTRIBUTION_ITEMr5   r2   4INCOME_TAX_EVENT_LOG_ITEM_DETAIL_TEXT_BREAKDOWN_ITEMtaxable_amountrG  %INCOME_TAX_EVENT_LOG_ITEM_DETAIL_TEXTr  rQ   get_datetime_formattedr   )rU   r1   
event_typerL   event_log_urlrx   r  r  r  	total_taxtotal_tax_percentage
net_incomededuction_text	deductioncontribution_textcontributionbreakdown_text	breakdownrV   s                     rW   rh   z&IncomeTaxEventLog.get_item_detail_text-  s   $$&&&<<<<<< [//11
&335544Xt{?STTMM k*G3'3333$0L-A7K%<% % %MM
 3'2222$0L-A7K%;% % %MM
 (777$0L-A7K%E% % %M
 ,78RSS+78RSS1=dk>[\\&JN
 
	  #%i1CQVWWW 
  
 [')3
~""$TN+  	PWW!1133Y5I   !!A%% ' Z 1 	 	!SZZ$4466+ 9)\E\ ] ]^^  %/ !! ' 	 	IgZaa#I$<==#I$<y?S$STT#I$899-i.BID\]]^^	  NN <CCK2244I,,T[-=>> 233
++	** 
 
 	
rX   )r   r   r   r   rT   r   r^   r   r   r   r   rc   r   rf   rh   r   r   s   @rW   r  r    s        ))	! 	! 	! 	! 	!+C +D + + + + %-$: 
 
tN?S 
 
 
 

s 
 
 
 

Z
c Z
 Z
 Z
 Z
 Z
 Z
 Z
 Z
 Z
 Z
rX   r  c                   t     e Zd ZdZ fdZdeddfdZej        fde	e
         fdZdefdZdef fd	Z xZS )

WarlordLogzClass for warlord logsc                     t                                          t          j        d           t	                      | _        t                      | _        dS ra  )rS   rT   r!   r  r   rR   r   rQ   ri   s    rW   rT   zWarlordLog.__init__  s>     	E:::&yy&&			rX   rY   rZ   Nc                 v    t          j        t           j        |k              | _        | j        j        | _        d S r   )r   r   r   rR   rQ   r]   s     rW   r^   zWarlordLog.set_object  s*    &{7:+BCC+*			rX   c                    | j                                                             t          j        t          j                    k                                  t          j        	                                          
                    ||          S r   )rR   r   r   r   end_dater   nowr   r   r   r   r`   s      rW   rc   zWarlordLog.get_items  s]    K  U7#x|~~566Xgl''))**XdE""		
rX   c                     t           j                            t          | j        j        | j        j                            S r   )r   WARLORD_LOG_ITEM_TEXTr   r.   rQ   rh  rR   ri  re   s    rW   rf   zWarlordLog.get_item_text  s4    ,33	 4dk6IJJ
 
 	
rX   c                     t                                                       t          j                            | j                                        | j        j        | j        j	                  S r   )
rS   rh   r   WARLORD_LOG_ITEM_DETAIL_TEXTr   rQ   r   rR   ri  rl  ri   s    rW   rh   zWarlordLog.get_item_detail_text  sS    $$&&&3::I**,,dk.A4;CU
 
 	
rX   )r   r   r   r   rT   r   r^   r   r   r   r   rc   r   rf   rh   r   r   s   @rW   r  r    s          	! 	! 	! 	! 	!+C +D + + + + %-$: 
 
tG} 
 
 
 

s 
 
 
 


c 
 
 
 
 
 
 
 
 
 
rX   r  c                        e Zd ZdZ fdZdeddfdZej        fde	e
         fdZdefdZdef fd	Zdefd
Zde	e         fdZde	e	e                  fdZ xZS )
PlunderLogzClass for plunder logsc                     t                                          t          j                   t	                      | _        t                      | _        d| _        t          j
        | _        d| _        dS r   )rS   rT   r!   PLUNDERr   rR   r   r   r   r   r   r   effective_bellyri   s    rW   rT   zPlunderLog.__init__  sU     	)))&yy"ff(-,6M#rX   rY   rZ   Nc                    t          j        t           j        |k              | _        | j        j        | j        k    | _        | j                            | j                  | _        | 	                                | _
        | j
                                        | _        | j                                        t          j        u r5| j                                        }||j        n| j        j        | _        d S | j        j        | _        d S r   )r   r   r   rR   r   rQ   r   r   r   r   rm   r   r   
get_statusr   rq   get_loanrepay_amountr   r  )rU   rY   loans      rW   r^   zPlunderLog.set_object  s    &{7:+BCC"&+"8DI"E00;;++-- $ ; ; = =;!!##z66&*k&:&:&<&<D 9=8H4#4#4dkN_D   #';#4D   rX   c                    | j                                                             t          j        | j        k    t          j        | j        k    z  t          j                            t          j
        t          j        g          z  |                                 z                                t          j                                                                      ||          S r   )rR   r   r   r   r   rQ   r   rn   r   r   ro   rq   r   r   r   r   r   r`   s      rW   rc   zPlunderLog.get_items  s    K  U$	1g6F$)6ST>%%z~z&GHHJ88::< 
 Xgl''))**XdE""		
rX   c                     t           j                            | j                                        | j                                        t          | j                            S r   )	r   PLUNDER_LOG_ITEM_TEXTr   rm   r   r   r   r5   r  re   s    rW   rf   zPlunderLog.get_item_text  sM    ,33K%%''M..00 455
 
 	
rX   c                 `   t                                                       | j        rt          j        nt          j        }t          | j        j        | j	                  }| j
        t          j        t          j        fv re| j        s| j
        t          j        u ro| j                                        }|Ft          j                            t#          | j                  |                                          }nt          j        }n| j        ry| j
        t          j        u rt          j        }ne| j                                        }|1t          j                            |                                          nt          j        }nt          j        }t          j                            | j                                        |t#          | j        j                            }n/t          j                            t<          | j
                           }| j
        t          j        u rB| j        r;|t          j                            tA          | j        j!        d                    z  }d}| j        j"        At          j#                            tI          | j        j%        | j        j"                            }t          j&                            || j'        (                                || j        )                    | j	                  ||          }| j        *                    | j	                  r:|t          j+                            | j        ,                                          z  }n`| j        j-        T|t          j.                            t^          0                    tb          j2        | j        j-        j3                            z  }| j        4                                x}rJ|t          j5                            t^          0                    tb          j2        |j3                            z  }|S )NT	show_fullr   )6rS   rh   r   r   r   r   r,   rR   r   rQ   r   r   ro   rq   r  %PLUNDER_LOG_ITEM_DETAIL_TEXT_WON_LOANr   r5   r  r1   'PLUNDER_LOG_ITEM_DETAIL_TEXT_WON_IMMUNE
TEXT_STOLETEXT_OWETEXT_OWE_NOTHING_IMMUNEr  r  rm   r   r   r   r   )PLUNDER_LOG_ITEM_DETAIL_SENTENCE_DURATIONr-   sentence_durationr   r   r0   r   PLUNDER_LOG_ITEM_DETAIL_TEXTr   r   r   r   PLUNDER_ATTACK_CAN_REVENGEr   in_revenge_to_plunder(PLUNDER_LOG_ITEM_DETAIL_TEXT_IN_RESPONSErK   r   r!   r  r   get_revenge_plunder%PLUNDER_LOG_ITEM_DETAIL_TEXT_REVENGED)
rU   r   r   r  r   
inner_textr   r   revenge_plunderrV   s
            rW   rh   zPlunderLog.get_item_detail_text  s   $$&&&.2.E]'**7K]&t{'7CC Z^Z_$EEE* t/D
/V/V{++--##*#P#W#W+D,@AA4CTCTCVCV$ $LL $+#RLL* 3,
>>%,%7

#{3355
  $/ $,33D4E4E4G4GHHH!(!@ #
 ")!2J&IPPK--//'(9::    #>EE()>? L  JO338O3GMTT)$+*GSWXXX  L  ;!-!(!F!M!M 68NOO" " 6==M..00K++DI66
 
 ;""49-- 	w9@@::<<  GG [.:wGNN(($+:[:^__  G #k==???? 	wDKK((/:LMM  G rX   c                 x   |                                  }| j                            | j        t          j                  }t          t          ||                    }| j                            | j        t          j                  }t          t          ||                    }| j        	                    | j        t          j                  }| j        	                    | j        t          j                  }| j        
                    | j                  \  }}	| j                            | j                  }
t          j                            |||||t          | j                            | j        t          j                            t          | j                            | j        t          j                            t          |j                  |                    | j                                                  |                     |j                  t          |j                  |                    | j                                                  |                     |j                  t-          | j        j        d          |                     |
j                  |                                |	          S )NTr  )r   rR   r   rQ   r   ro   r   r3   rq   r   get_most_plundered_userget_max_sentencer   PLUNDER_LOG_STATS_TEXTr   r5   r   r   r   r   r1   r   r-   r  )rU   total_plundersr   r   r   r   max_won_plundermax_lost_plundermost_plundered_usermost_plundered_countmax_sentences              rW   rk   zPlunderLog.get_stats_text7  s!   3355[66ty*.QQ
 #$=j.$Y$Y Z Z{88JOTT"%&?n&]&]"^"^+99$)Z^TT;::49joVV48K4W4WX\Xa4b4b11{33DI>>-44!#77	:>RR   77	:?SS    566((33HHJJo011 0 677))$)44IIKK.122%dk&CtTTTlo..4466 +
 
 	
rX   c           	      B   t          t          j        t          j        t
          j        | j        k    t
          j        t          j
        k    z  t
          j        | j        k    t
          j        t          j        k    z  z  t          j
                  t          t          j        t          j        t
          j        | j        k    t
          j        t          j
        k    z  t
          j        | j        k    t
          j        t          j        k    z  z  t          j                  gS r   )r   r   r   r   r   r   r   rQ   rn   r   ro   r   rq   r   r   re   s    rW   r   z PlunderLog.get_emoji_legend_listY  s    "'(DI5'.JN:Z[(DI5'.JO:[\^ "~   "(&$)3*.8XY*di7GNjo<]^` "  
 	
rX   c           
         | j                             | j                  sg S t          t          j        t          j        t          j	        dt          j        | j         j        j        t          j        | j         j        i          ggS r   )rR   r   rQ   r+   r   PVT_KEY_PLUNDER_REVENGEr%   PVT_PLUNDERr"   r   r$   r   r   r   r   re   s    rW   r   zPlunderLog.get_keyboardo  sy    {&&ty11 	I 3!-,4a0<dk>T>W0H$+.  

 	
rX   )r   r   r   r   rT   r   r^   r   r   r   r   rc   r   rf   rh   rk   r   r   r+   r   r   r   s   @rW   r  r    s4         $ $ $ $ $5C 5D 5 5 5 5 %-$: 

 

tG} 

 

 

 


s 
 
 
 
Oc O O O O O Ob 
  
  
  
  
D
tK'8 
 
 
 
,
d4>2 
 
 
 
 
 
 
 
rX   r  rL   rZ   c                 p     t           fdt          D                       }|                                 |S )zh
    Get a notification by type

    :param log_type: The type of log
    :return: The notification
    c              3   .   K   | ]}|j         u |V  d S r   )rP   ).0logrL   s     rW   	<genexpr>z"get_log_by_type.<locals>.<genexpr>  s/      @@C38x+?+?C+?+?+?+?@@rX   )nextLOGSrT   )rL   r%  s   ` rW   get_log_by_typer)    s;     @@@@4@@@@@C
 LLNNNJrX   N)sabcr   r   typingr   src.utils.LazyPhraseDictr   	resourcesr   src.model.BaseModelr   src.model.BountyGiftr	   src.model.Crewr
   src.model.DocQGamer   src.model.Fightr   src.model.Gamer   src.model.IncomeTaxEventr   src.model.Leaderboardr   src.model.LeaderboardUserr   src.model.LegendaryPirater   src.model.Plunderr   src.model.Userr   src.model.Warlordr   src.model.enums.BountyGiftRoler    src.model.enums.BountyGiftStatusr   src.model.enums.ButtonStyler   src.model.enums.Emojir   src.model.enums.GameStatusr   r   src.model.enums.LeaderboardRankr   r   r   src.model.enums.ListPager   r   src.model.enums.Locationr    src.model.enums.LogTyper!   $src.model.enums.ReservedKeyboardKeysr"   r#   r$   src.model.enums.Screenr%   -src.model.enums.income_tax.IncomeTaxBreakdownr&   0src.model.enums.income_tax.IncomeTaxContributionr'   -src.model.enums.income_tax.IncomeTaxDeductionr(   -src.model.enums.income_tax.IncomeTaxEventTyper)   src.model.game.GameTyper*   src.model.pojo.Keyboardr+   src.service.date_servicer,   r-   r  r.   r/   r0   r1   src.utils.math_utilsr2   r3   src.utils.phrase_utilsr4   src.utils.string_utilsr5   r   r   r  r0  rb  rp  r  r  r  r  LOG_TYPE_BUTTON_TEXTSr   rK   r   r   r  r.  r_  rn  r  r  r  r  r(  r)  r\   rX   rW   <module>rQ     s                     3 3 3 3 3 3       ) ) ) ) ) ) + + + + + +       ' ' ' ' ' ' ! ! ! ! ! !       3 3 3 3 3 3 - - - - - - 5 5 5 5 5 5 5 5 5 5 5 5 % % % % % %       % % % % % % 9 9 9 9 9 9 = = = = = = 3 3 3 3 3 3 ' ' ' ' ' ' K K K K K K K K         
 ; : : : : : : : 8 8 8 8 8 8 + + + + + +         
 * ) ) ) ) ) L L L L L L R R R R R R L L L L L L L L L L L L , , , , , , , , , , , ,                   V U U U U U U U 3 3 3 3 3 3 6 6 6 6 6 6&0n2 "< "<* "< "<*    .~;E9G "Q "Q "Q "Q??     D D D D D( D D DR`
 `
 `
 `
 `
s `
 `
 `
Fo
 o
 o
 o
 o
# o
 o
 o
dc
 c
 c
 c
 c
c c
 c
 c
LF
 F
 F
 F
 F
C F
 F
 F
R#
 #
 #
 #
 #
 #
 #
 #
L1
 1
 1
 1
 1
 1
 1
 1
hJ
 J
 J
 J
 J
 J
 J
 J
Zy
 y
 y
 y
 y
 y
 y
 y
x$
 $
 $
 $
 $
 $
 $
 $
RM
 M
 M
 M
 M
 M
 M
 M
b HJJKMMGIIMOOJLLJLLg #      rX   