
    [jF>                    R   S SK Jr  S SKrS SKrS SKrS SKJr  S SKJrJ	r	J
r
  S SKJr  S SKJrJrJrJrJrJrJr  S SKJrJr  S SKJrJrJrJrJrJrJrJ r   S S	K!J"r"  \RF                  " \RH                  S
9  \RJ                  " \&5      r'\(" S5      u  r)r*r+r,r-r.SS jr/SS jr0SS jr1SS jr2SS jr3SS jr4SS jr5SS jr6SS jr7SS jr8SS jr9SS jr:S r;\&S:X  a  S SK<r< \<Rz                  " 5         \;" 5         gg! \> a$    \<R~                  " \<R                  " 5       5         N2f = f)    )annotationsN)BytesIO)InlineKeyboardButtonInlineKeyboardMarkupUpdate)	ParseMode)ApplicationCallbackQueryHandlerCommandHandlerContextTypesConversationHandlerMessageHandlerfilters)	BOT_TOKENSUPPORT_LINK)ads_today_countensure_modelget_active_packagesget_settingsave_adspend_one_creditupdate_model_cpf_cnpjupsert_group)create_pix_charge)level   c           	     N    [        [        SSU  S3S9[        SSU  S3S9//5      $ )Nu   Sim ✅zanswer:z:simcallback_datau   Não ❌z:nao)r   r   )keys    */mnt/data/patch_asaas_cpf_cnpj/bot/main.pyyes_no_keyboardr"   &   s?     GC5:MN WSE;NO	
!      c           
     p    [        [        SSS9/[        SSS9/[        SSS9/[        S[        S	9//5      $ )
N   Comprar créditos 💳menu:buyr   u   Criar anúncio 📢zmenu:create_adu   Meu saldo 💰menu:balanceSuporteurl)r   r   r   )models    r!   	main_menur,   /   sL    	6j	QR	3CS	TU	.n	MN	i\	:;	!  r#   c           
       #    U R                   n[        UR                  UR                  UR                  5      nUS   S:X  a3  U R
                  R                  S5      I S h  vN   [        R                  $ US   S:w  aI  U R
                  R                  S[        [        S[        S9//5      S9I S h  vN   [        R                  $ U R
                  R                  S	UR                  S
5      =(       d    UR                  =(       d    S SUS    S3[        R                  [        U5      S9I S h  vN   [        R                  $  N N N7f)Nstatusblockedu"   Seu acesso ao bot está bloqueado.approvedux   Seu cadastro ainda não está liberado para divulgação.

Fale com o suporte ou aguarde aprovação da administração.r(   r)   reply_markupu   Olá, @usernamemodelou    👋

Seu saldo atual: <b>credit_balanceu'    crédito(s)</b>.

Escolha uma opção:
parse_moder2   )effective_userr   idr3   	full_namemessage
reply_textr   ENDr   r   r   getr   HTMLr,   )updatecontextuserr+   s       r!   startrC   8   s>      D$--@EX)#nn''(LMMM"&&&X*$nn''L-0DYT`0a/b.cd ( 
 	
 	

 #&&&
..
#
#
%))J'D4==DHE F$%567 8	 >>u% $    """% 	N	
s8   AE!E"AE3E	4A>E2E3E	EEc           
     |  #    U R                   nUR                  5       I S h  vN   U R                  n[        UR                  UR
                  UR                  5      nUS   S:w  a)  UR                  S5      I S h  vN   [        R                  $ UR                  R                  SS5      S   nUS:X  aG  UR                  SUS    S	3[        R                  [        U5      S
9I S h  vN   [        R                  $ US:X  a  [        5       n/ nU HJ  nUS    S[!        US   5      S 3R#                  SS5      n	UR%                  ['        U	SUS    3S9/5        ML     UR%                  ['        SSS9/5        UR                  S[)        U5      S9I S h  vN   [        R                  $ US:X  a  [+        US   5      S::  a;  UR                  S[)        ['        SSS9//5      S9I S h  vN   [        R                  $ [+        US   =(       d    [-        SS 5      5      n
[/        [+        US   5      5      U
:  a-  UR                  S!U
 S"35      I S h  vN   [        R                  $ 0 UR0                  S#'   XAR0                  S$'   UR                  S%[3        S&5      S9I S h  vN   [4        $ g  GN GN2 GN GN N Ng N7f)'Nr.   r0   u'   Seu cadastro ainda não está aprovado.:   balanceu   Seu saldo atual é: <b>r5   u    crédito(s)</b>.r6   buynameu    — R$ price.2f.,zbuy:r9   r   Voltarr'   u   Escolha um pacote de créditos:r1   	create_adr   uO   Você não tem créditos para criar anúncio.

Compre créditos para continuar.r%   r&   custom_daily_limitmax_ads_per_model_per_day5u   Você já atingiu o limite de u,    anúncio(s) hoje.

Tente novamente amanhã.
ad_answersr+   u   Você faz vídeo chamada?
video_call)callback_queryanswerr8   r   r9   r3   r:   edit_message_textr   r=   datasplitr   r?   r,   r   floatreplaceappendr   r   intr   r   	user_datar"   Q_VIDEO)r@   rA   queryrB   r+   actionpackagesbuttonsplabeldaily_limits              r!   menu_callbackrg   R   s    !!E
,,.  D$--@EX*$%%&OPPP"&&&ZZc1%a(F%%%e,<&=%>>OP ~~"5) & 
 	
 	

 #&&&&(Ayk%'
*;C)@AII#sSENN0QtWIFVWXY  	,X^TUV%%&GVjkrVs%ttt"&&&u%&'1,))c14HIaq{4|3}2~ *    '***% 45fE`be9fg3uT{+,;))0=kl   '****,,'%*'"%%&AP_`lPm%nnn% 9 
 	Q	
 	u
 	os    J<J*AJ<;J-<A+J<'J0(B,J<J3AJ<'J6(A(J<J8AJ<J:J<-J<0J<3J<6J<8J<:J<c                  #    SUS    S[        US   5      S SUS    S3R                  S	S
5      nUR                  S5      (       Ga  USUS    S3-  nU R                  U[        R
                  S9I S h  vN   UR                  S5      (       ac   [        R                  " US   5      n[        U5      nSUl	        UR                  R                  U R                  R                  USS9I S h  vN   UR                  S5      (       aN  UR                  R                  U R                  R                  S[!        [#        SUS   S9//5      S9I S h  vN   g g UR                  S5      (       aE  US-  n[#        SUS   S9//nU R                  U[        R
                  [!        U5      S9I S h  vN   g USUS    S3-  nU R                  U[        R
                  S9I S h  vN   g  GNq N! [         aE  nUR                  R                  U R                  R                  SU 3S9I S h  vN     S nAGNBS nAff = f N N N`7f) Nu   Pedido gerado ✅

Pacote: <b>rI   z</b>
Valor: <b>R$ rJ   rK   u   </b>
Créditos: <b>creditsz</b>

rL   rM   qr_codez/Pague usando o Pix copia e cola abaixo.

<code>uU   </code>

Após o pagamento aprovado, seus créditos serão liberados automaticamente.r7   encoded_imagezqrcode_pix.pngu   QR Code Pix para pagamento ✅)chat_idphotocaptionuZ   QR Code não pôde ser enviado como imagem, mas o copia e cola acima está válido.
Erro: )rm   textpayment_urlu*   Também deixei o link da cobrança abaixo:u   Abrir cobrançar)   )rm   rp   r2   u#   Clique no botão abaixo para pagar.u   Pagar agora 💳r6   u   Referência: <code>external_referenceue   </code>

Modo manual ativo: após o pagamento, o admin aprova no painel e os créditos caem no saldo.)rZ   r[   r>   rW   r   r?   base64	b64decoder   rI   bot
send_photor;   rm   	Exceptionsend_messager   r   )	r`   rA   packagechargerp   image_bytesbioimg_excrc   s	            r!   send_charge_to_userr~      s    fo& 'gg./4 5 +,H	6 gc3 	 zz)I&' ([[	
 %%dy~~%FFF::o&&$..vo/FGk*+kk,,!MM11< -    ::m$$++**--A14HIZ`fgt`u4v3w2xy +    % 
M	"	"55();AVWXY%%dy~~ThipTq%rrr!&)=">!? @k k	
 %%dy~~%FFFE 	G
  kk..!MM11vw~v  A /    	s 	Gs   A4I6G'7IAG, /G*0G, 4AIH>AI.I /2I!I"I*G, ,
H;64H6*H-+H60I6H;;I IIc                |  ^#    U R                   nUR                  5       I S h  vN   U R                  n[        UR                  UR
                  UR                  5      n[        UR                  R                  S5      S   5      m[        U4S j[        5        5       S 5      nU(       d)  UR                  S5      I S h  vN   [        R                  $ UR                  S5      (       d.  TUR                   S'   UR                  S5      I S h  vN   ["        $  [%        [        US   5      U5      n[/        X!XV5      I S h  vN   [        R                  $  GN2 N NL! [&         aQ  nUR                  S	[)        U5      S S
  S3[*        R,                  S9I S h  vN    [        R                  s S nA$ S nAff = f Ny7f)NrE   rF   c              3  P   >#    U  H  n[        US    5      T:X  d  M  Uv   M     g7fr9   Nr]   .0rd   
package_ids     r!   	<genexpr>buy_callback.<locals>.<genexpr>   $     S4!AdG
8RAA4   &	&u   Pacote não encontrado.cpf_cnpjpending_package_idu   Para gerar o Pix pelo Asaas, preciso do CPF ou CNPJ do pagador.

Envie apenas os números, sem ponto, traço ou barra.

Exemplo CPF: 12345678900
Exemplo CNPJ: 12345678000199

Use /cancelar para cancelar.r9   7   Não consegui gerar o Pix agora.

Erro técnico: <code>  </code>rk   )rU   rV   r8   r   r9   r3   r:   r]   rX   rY   nextr   rW   r   r=   r>   r^   Q_CPFr   rw   strr   r?   r~   )	r@   rA   r`   rB   r+   ry   rz   excr   s	           @r!   buy_callbackr      s    !!E
,,.  D$--@EUZZ%%c*1-.JS24SUYZG%%&?@@@"&&&99Z  2<./%%+
 	
 	
 '"3uT{#3W= eg
>>>"""A  	A
	
  '%%$$'HTcN#37< ~~ & 
 	
 	

 #&&&' ?s}    F<EBF<?E AF<E
F<E 1F< F:F<F<F<
F7&1F2FF2,F7-F<2F77F<c                  ^
#    U R                   n[        UR                  UR                  UR                  5      n[
        R                  " SSU R                  R                  =(       d    S5      n[        U5      S;  a)  U R                  R                  S5      I S h  vN   [        $ [        UR                  R                  S5      =(       d    S5      m
[        U
4S j[!        5        5       S 5      nU(       d3  U R                  R                  S5      I S h  vN   ["        R$                  $ ['        [        US	   5      U5        [        UR                  UR                  UR                  5      nU R                  R                  S
5      I S h  vN    " S S5      nU" U R                  5      n [)        [        US	   5      U5      n[3        XqXX5      I S h  vN   ["        R$                  $  GNO N Nb! [*         a[  n	U R                  R                  S[-        U	5      S S  S3[.        R0                  S9I S h  vN    ["        R$                  s S n	A	$ S n	A	ff = f N7f)Nz\D )      ui   CPF/CNPJ inválido. Envie apenas os números.

CPF precisa ter 11 números. CNPJ precisa ter 14 números.r   r   c              3  P   >#    U  H  n[        US    5      T:X  d  M  Uv   M     g7fr   r   r   s     r!   r   cpf_received.<locals>.<genexpr>   r   r   u>   Pacote não encontrado. Clique em Comprar créditos novamente.r9   u,   CPF/CNPJ salvo ✅

Gerando seu Pix agora...c                       \ rS rSrS rS rSrg)cpf_received.<locals>.FakeQuery   c                    Xl         g Nr;   )selfr;   s     r!   __init__(cpf_received.<locals>.FakeQuery.__init__   s    "Lr#   c                V   #    U R                   R                  " U0 UD6I S h  vN $  N7fr   )r;   r<   )r   argskwargss      r!   rW   1cpf_received.<locals>.FakeQuery.edit_message_text   s%     00$A&AAAAs    )')r   N)__name__
__module____qualname____firstlineno__r   rW   __static_attributes__ r#   r!   	FakeQueryr      s    	#	Br#   r   r   r   r   rk   )r8   r   r9   r3   r:   resubr;   rp   lenr<   r   r]   r^   r>   r   r   r   r=   r   r   rw   r   r   r?   r~   )r@   rA   rB   r+   r   ry   r   
fake_queryrz   r   r   s             @r!   cpf_receivedr      s      D$--@EvveR!4!4!:;H
8}H$nn''I
 	
 	
 W&&**+?@EAFJS24SUYZGnn''(hiii"&&&#eDk*H5$--@E
..
#
#$T
UUUB B 6>>*J'"3uT{#3W= j7
CCC"""M	
 	j V  'nn''$$'HTcN#37< ~~ ( 
 	
 	

 #&&&' Ds   BIG,A:IG/A5IG1 I0G3 III/I1I3
I=;I8H;9IIIIIc                8  #    U R                   nUR                  5       I S h  vN   UR                  R                  S5      u  p4nXQR                  R                  S0 5      U'   US:X  a'  UR                  S[        S5      S9I S h  vN   [        $ US:X  a'  UR                  S[        S5      S9I S h  vN   [        $ US:X  a'  UR                  S	[        S
5      S9I S h  vN   [        $ US
:X  a  UR                  S5      I S h  vN   [        $ g  N N Na N6 N7f)NrE   rS   rT   u   Você faz sexting?sextingr1   u   Você vende packs ou prévias?packsu   Você está disponível agora?	availableu7   Agora envie a mídia do anúncio: foto ou vídeo curto.)rU   rV   rX   rY   r^   
setdefaultrW   r"   	Q_SEXTINGQ_PACKSQ_AVAILABLEQ_MEDIA)r@   rA   r`   _r    values         r!   answer_callbackr     s     !!E
,,.JJ$$S)MAE:?  r237
l%%&:YbIc%ddd
i%%&FUdelUm%nnn
g~%%&FUdepUq%rrr
k%%&_``` ! 
 	e 	o 	s 	asX    DDA"DD,D2D3,DD $DDDDDDDc                l   / nUR                  S5      S:X  a  UR                  S5        UR                  S5      S:X  a  UR                  S5        UR                  S5      S:X  a  UR                  S5        UR                  S5      S:X  a  S	OS
nU(       a  SR                  U5      OSnSU  SU SU SU  3$ )NrT   simu   ✅ Vídeo chamadar   u   ✅ Sextingr   u   ✅ Packs e préviasr   u   Estou disponível agora 🔥z(Me chama para consultar disponibilidade.
u"   Serviços sob consulta no privado.u(   🔥 Divulgação ativa 🔥

Eu sou a @u   

Serviços disponíveis:
z

Chama no privado: @)r>   r\   join)r3   answersservicesr   services_texts        r!   build_ad_textr   $  s    H{{< E),-{{9&&{{7u$./29++k2Je2S.  ZDI+3DIIh'9]M	Jb+ $/ &Z	)r#   c                  #    U R                   n[        UR                  UR                  UR                  5      nUS   S:w  a3  U R
                  R                  S5      I S h  vN   [        R                  $ U R
                  R                  (       a&  SnU R
                  R                  S   R                  nOgU R
                  R                  (       a#  SnU R
                  R                  R                  nO)U R
                  R                  S5      I S h  vN   [        $ [        [        US   5      S	5      nU(       d3  U R
                  R                  S
5      I S h  vN   [        R                  $ UR                  R!                  S0 5      nUR!                  S5      =(       d    UR                  =(       d    SR#                  S5      n[%        X5      n	['        SS5      n
U
S:X  a  SOSn[)        X7XTX5        US:X  a  SnOSnU R
                  R                  U SU	 35      I S h  vN   [        R                  $  GN GN) N N7f)Nr.   r0   u!   Seu cadastro não está aprovado.rn   videou   Envie uma foto ou vídeo.r9   u   Criação de anúnciou%   Você não tem créditos suficientes.rS   r3   r   @approval_modemanualautoqueuedpending_approvalu<   Seu anúncio foi criado e entrou na fila de divulgação ✅uC   Seu anúncio foi criado e está aguardando aprovação do admin ✅u>   

Foi descontado 1 crédito do seu saldo.

Prévia do texto:

)r8   r   r9   r3   r:   r;   r<   r   r=   rn   file_idr   r   r   r]   r^   r>   lstripr   r   r   )r@   rA   rB   r+   
media_typemedia_file_idokr   r3   
final_textr   r.   msgs                r!   media_receivedr   :  s      D$--@EX*$nn''(KLLL"&&&~~
,,R088			
,,44nn''(CDDD	#eDk*,C	DBnn''(OPPP"&&&##L"5G		*%<<"DDSIHx1J:M&&0X6HFEMzJLS
..
#
#%   *|	-  
 """K 	M 	E
 	Q"sK   AI!H9"B1IH<AIH?CI$I%I<I?IIc                j  #    U R                   nUR                  S;  a$  U R                  R                  S5      I S h  vN   g [	        UR
                  UR                  =(       d    [        UR
                  5      UR                  S5        U R                  R                  S5      I S h  vN   g  Nq N7f)N)group
supergroupchannelz5Esse comando deve ser usado dentro de um grupo/canal.pendinguo   Grupo/canal registrado como pendente ✅

Agora aprove esse grupo no painel admin para o bot poder postar nele.)effective_chattyper;   r<   r   r9   titler   )r@   rA   chats      r!   register_groupr   g  s       Dyy::nn''(_```$**4DGGdiiK
..
#
#	P  	 	as"   ;B3B/A+B3)B1*B31B3c                t   #    U R                   R                  S5      I S h  vN   [        R                  $  N7f)Nu   Operação cancelada.)r;   r<   r   r=   )r@   rA   s     r!   cancelr   u  s/     
..
#
#$;
<<<""" =s   868c                    [         (       d  [        S5      e[        R                  " 5       R	                  [         5      R                  5       n [        [        [        SS9/[        [        [        SS9/[        [        [        SS9/[        [        [        SS9/[        [        [        SS9/[        [        [         R"                  [         R$                  -  [&        5      /0[)        S[*        5      /S	S
9n[        [        [,        SS9/[.        [        [         R0                  [         R2                  ) -  [4        5      /0[)        S[*        5      /S	S
9nU R7                  [)        S[8        5      5        U R7                  [)        S[:        5      5        U R7                  [        [        SS95        U R7                  U5        U R7                  U5        [<        R?                  S5        U RA                  S	S9  g )Nu"   BOT_TOKEN não configurado no .envz^menu:create_ad$)patternz^answer:video_call:z^answer:sexting:z^answer:packs:z^answer:available:cancelarT)entry_pointsstates	fallbacksallow_reentryz	^buy:\d+$rC   registrar_grupoz^menu:(buy|balance)$zBot iniciado.)drop_pending_updates)!r   RuntimeErrorr	   buildertokenbuildr   r
   rg   r_   r   r   r   r   r   r   r   PHOTOVIDEOr   r   r   r   r   TEXTCOMMANDr   add_handlerrC   r   loggerinforun_polling)appconvpayment_convs      r!   runr   z  s   9?@@




%
%i
0
6
6
8C*=BUVW*?DZ[\,_FYZ[*?DUVW.H]^_nW]]W]]%BNST
 "*f56D '*<NON7<<7??2B#BLQR
 "*f56L OON7E23OON#4nEFOO(@WXYOOL!OOD
KK OOO.r#   __main__)r    r   returnr   )r   r   )r@   r   rA   ContextTypes.DEFAULT_TYPE)rA   r   rz   dict)r3   r   r   r   r   r   )A
__future__r   loggingr   rs   ior   telegramr   r   r   telegram.constantsr   telegram.extr	   r
   r   r   r   r   r   configr   r   databaser   r   r   r   r   r   r   r   paymentsr   basicConfigINFO	getLoggerr   r   ranger_   r   r   r   r   r   r"   r,   rC   rg   r~   r   r   r   r   r   r   r   r   asyncioget_running_loopr   set_event_loopnew_event_loopr   r#   r!   <module>r     s   "  	   G G (   +	 	 	 '   ',, '			8	$;@8 8G['5#40f1Gh"#J-#^.,*#Z#
#/L z9  " E 
  9w55789s   "C< <'D&%D&