
    hjS                        S r SSKrSSKJrJr  SSKJr  SSKJr  SSK	J
r
  SSKJrJrJrJr  SSKJrJrJr  S	S
KJrJrJrJrJrJrJrJrJrJr  0 r\" SSSS9S 5       r \" SS9S 5       r!\" SS9S 5       r"\" SSS9S 5       r#\" \RH                  " S5      5      S 5       r%S r&\RN                  " S5      (       a"  \RP                  " \&\RR                  " SS95        gg)u>  
✘ Commands Available -

• `{i}fsub <chat username><id>`
    Enable ForceSub in Used Chat !

• `{i}checkfsub`
    Check/Get Active ForceSub Setting of Used Chat.

• `{i}remfsub`
    Remove ForceSub from Used Chat !

    Note - You Need to be Admin in Both Channel/Chats
        in order to Use ForceSubscribe.
    N)ChatAdminRequiredErrorUserNotParticipantError)Button)GetParticipantRequest)ExportChatInviteRequest)ChannelChannelParticipantBannedChannelParticipantLeftUser)add_forcesubget_forcesettingrem_forcesub   )
LOGSasstcallbackevents
get_string
in_patterninline_mentionudBultroid_botultroid_cmdzfsub( (.*)|$)T)patternadmins_onlygroups_onlyc                   #    U R                   R                  S5      R                  5       nU(       d!  U R                  [	        S5      SS9I S h  vN $  U R
                  R                  U5      I S h  vN n[        U R                  U5        U R                  S5      I S h  vN   [        R                  " [        [        R                  " SS95        g  N Nc! [         a%    U R                  [	        S5      SS9I S h  vN  s $ f = f Nh7f)	Nr   fsub_1   timefsub_2zAdded ForceSub in This Chat !Tincoming)pattern_matchgroupstripeorr   clientparse_idBaseExceptionr   chat_idr   add_handler	force_subr   
NewMessage)ematchs     +/root/TeamUltroid/plugins/forcesubscribe.pyaddforr3   6   s     OO!!!$**,EUU:h/aU8889hh''.. E"
%%/
000Iv'8'8$'GH 9. 9UU:h/aU88889 1s`   ADCDC 3C4C 8*D"D#3DC &D?D DDDDzremfsub$)r   c                    #    [        U R                  5      nU(       d!  U R                  [        S5      SS9I S h  vN $ U R                  S5      I S h  vN   g  N N7f)Nfsub_3r   r    zRemoved ForceSub...)r   r,   r(   r   )r0   ress     r2   remorr7   D   sL     
qyy
!CUU:h/aU888
%%%
&&& 9&s!   9AAAAAAz
checkfsub$c                 ,  #    [        U R                  5      nU(       d  U R                  SSS9I S h  vN $ U R                  R	                  [        U5      5      I S h  vN nU R                  SUR                   SU S35      I S h  vN   g  N[ N1 N	7f)Nz%ForceSub is Not Active In This Chat !r   r    z#**ForceSub Status** : `Active`
- **z** `(z)`)r   r,   r(   r)   
get_entityinttitle)r0   r6   chas      r2   getfsrr=   L   sz     
199
%CUUBUKKK##CH-
-C
%%6syykse2N
OOO L
-Os3   0BB+BB)BB	BBB)ownerc           
        #    U R                   R                  S5      R                  5       nUR                  S5      n[        R
                  " [        US   5      5      I S h  vN n[        R
                  " [        US   5      5      I S h  vN nS[        U5       S3nUSUR                   S3-  nUR                  (       a  SUR                   3O%[	        [        U5      5      I S h  vN R                  nU R                  R                  S	U[        R                  " [!        S
5      US9/[        R"                  " [!        S5      SU 3S9//S9I S h  vN /nU R%                  U5      I S h  vN   g  GN N N N& N7f)Nr   _r   zHi z, You Need to Join z  in order to Chat in this Group.zhttps://t.me/forcesubfsub_4)texturlfsub_5unm_)data)r;   rD   buttons)r%   r&   r'   splitr   r9   r:   r   r;   usernamer   linkbuilderarticler   rE   r   inlineanswer)r0   r1   spliuserclrD   elr6   s           r2   fcallrU   U   sT    OO!!!$**,E;;sD''DG55D%%c$q'l3	3B%&&89Daz9::D ;; }% 7 ;<<BB  iiH!52>?z(3D.IJ   
 	
	C ((3-) 6	3 =	
 s\   A F"E6#)FE9AF*E;+A+FE=F0E?1F9F;F=F?Fzunm_(.*)c           	      ,  #    U R                   R                  S5      R                  S5      nUR                  S5      nU R                  [        US   5      :w  a!  U R                  [        S5      SS9I S h  vN $  [        [        [        US   5      [        US   5      5      5      I S h  vN n[        UR                  [        5      (       d0  [        UR                  [        5      (       a  UR                  (       a  [        S5      e[        R                   " U R"                  [        US   5      SS S
9I S h  vN   U R%                  [        S5      5      I S h  vN   g  N N! [         a    U R                  S	SS9I S h  vN  s $ f = f NT N47f)Nr   zUTF-8r@   r   fsub_7T)alert z3Please Join That Channel !
Then Click This Button !)send_messages
until_datefsub_8)
data_matchr&   decoderJ   	sender_idr:   rP   r   r   r   
isinstanceparticipantr
   r	   leftr   edit_permissionsr,   edit)r0   r1   rQ   valuess       r2   diesoonrf   p   sV    \\"**73E;;sD{{c$q'l"XXj2$X???	
"#8T!Ws4PQ7|#TUUf((*@AAv))+CDD)"--
 
&
&			3tAw<t   &&H%
&&& @U
 # 
XXB$  
 
 
 	

 'ss   A4F6E#7F<0E' ,E%-AE' 0F;F<!FFF%E' 'FFF
FFFFc                 (  #    [         R                  " S5      (       d  g U R                  5       I S h  vN n[        U R                  5      nU(       a&  [        U[        5      (       a  UR                  (       a  g [        R                  U R                  5      (       a  [        U R                     R                  UR                  5      (       aP  [        U R                     R                  UR                  [        U R                     UR                     S-   05        O\[        U R                     R                  UR                  S05        O-[        R                  U R                  UR                  S005        [        U R                     UR                     nUS:X  a!  S[        U R                     UR                  '   g U[        SS5      ;   a  g  [        R                  " [        U5      UR                  5      I S h  vN   g  GN N! [          a     Of = f[        U["        5      (       ab   [        R$                  " U R                  UR                  SS9I S h  vN    g ! [&         a   n[(        R*                  " U5         S nAOS nAff = f [        R$                  " U R                  UR                  SS9I S h  vN    OQ! [,         a     g [.         a9  nU R1                  5       I S h  vN    [(        R2                  " U5         S nAOS nAff = f[        R4                  " [6        R8                  R:                  SUR                   S	U 35      I S h  vN  nUS
   R=                  U R                  U R                  S9I S h  vN    g 7f)NFORCESUBr         F)view_messages)rZ   zfsub r@   r   )reply_to)r   get_key
get_senderr   r,   r`   r   botCACHEgetidupdateranger   get_permissionsr:   r   r   rc   r+   r   	exceptionr   	Exceptiondeleteinfoinline_queryr   merK   click)ultrR   joinchatcounterr0   r6   s          r2   r.   r.      s    ;;z""!!D,H*T400TXXyy!!$''**#++%%twwckk0B4770Ka0O&PQ#++%%twwl3ckkDGGQ<01#++tww'E{&'ckk477#a))#h-AAA' "$ 	B" $  	..TWWE    	NN2	**3;;uUUU!  jjl		! (()9)9U477)1XJ;WX
X
XC
a&,,s{{SVV,
444s   0NHF N-H H
H N
H 
HNHN2-I& I" I& %N&
J0JNJN-K KK N
LN	LL0K31LNLANM/NNNrh   r#   )*__doc__retelethon.errors.rpcerrorlistr   r   telethon.tl.customr   telethon.tl.functions.channelsr   telethon.tl.functions.messagesr   telethon.tl.typesr   r	   r
   r   pyUltroid.dB.forcesub_dbr   r   r   rY   r   r   r   r   r   r   r   r   r   r   rp   r3   r7   r=   rU   compilerf   r.   rm   r-   r/        r2   <module>r      s    
 X % @ B  R Q   	 _$DI
I J
I Z ' !' \"P #P O4( )4 
"**Z
 !' "'*)5X ;;zIv'8'8$'GH r   