o
    
S»jìé ã                   @   sn  U d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlmZm	Z	m
Z
mZ d dlmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZmZ d dlmZ d dl m!Z! d dl"m#Z# d dl$Z$d dl%Z%e$j& 'd e%j& (e%j& )e*¡¡¡ d dl+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZY d dl m!Z!mZZZ d dl[mZ\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZk d dllmmZmmnZnmoZompZpmqZq d d	lmZr i Zseteuerf evd< i Zweteue	f evd< deuderfdd„Zxdeude	fdd„Zydaze	dB evd< de	fdd„Z{ej|ej}dd� e ~e¡Z€i Z�etevd < e
ƒ Z‚G d!d"„ d"eƒZƒG d#d$„ d$eƒZ„G d%d&„ d&eƒZ…G d'd(„ d(eƒZ†G d)d*„ d*eƒZ‡d+eˆde‰fd,d-„ZŠd.eudetdB fd/d0„Z‹d.eud1eud2eud3eˆfd4d5„ZŒd.eudeude‰fd6d7„Z�d.eude‰fd8d9„ZŽd:ed+eˆfd;d<„Z�d:ed+eˆde�fd=d>„Z‘d:ed+eˆd?ebfd@dA„Z’d:ed+eˆde‰fdBdC„Z“�d5dDeudEeudFeudefdGdH„Z”�d6dEeudefdJdK„Z•defdLdM„Z–�d7dOeudefdPdQ„Z—�d6dReudefdSdT„Z˜d:edeufdUdV„Z™�d8dXeudYeudZeudeufd[d\„Zš	W	W�d9dReudXeudYeudZeudef
d]d^„Z›d_e�d`etdefdadb„Zœdceˆd`etdefddde„Z�dfeˆdefdgdh„Zždfeˆdefdidj„ZŸde fdkdl„Z¡e‚ ¢eƒ ¡dmedned:efdodp„ƒZ£e‚ ¤ej¥dqk¡dred:efdsdt„ƒZ¦e‚ ¤ej¥dIk¡dredned:efdudv„ƒZ§e‚ ¤ej¥dwk¡dredned:efdxdy„ƒZ¨e‚ ¤ej¥ ©dz¡¡dredned:efd{d|„ƒZªd.eudeudB fd}d~„Z«dDeud`etdeidB fdd€„Z¬			�d:dDeud`etd�eud‚eudƒeudedB fd„d…„Z­d1eudefd†d‡„Z®d:edˆeeB d‰etd.eudŠeud3eˆfd‹dŒ„Z¯dned.eud1eud�eufdŽd�„Z°e±ƒ Z²e±eˆ evd�< d:edned‘eˆfd’d“„Z³e‚ ¢ej´¡dmedned:efd”d•„ƒZµd–edned:efd—d˜„Z¶e‚ ¢eƒj·¡dmedned:efd™dš„ƒZ¸d:ed+eˆd.eud1eud�eudŠeud3eˆd›e‰dnefdœd�„Z¹d+eˆdeufdždŸ„Zºe‚ ¤ej¥d k¡dredned:efd¡d¢„ƒZ»e‚ ¤ej¥d£k¡drednefd¤d¥„ƒZ¼e‚ ¢e‡j½¡dmedned:efd¦d§„ƒZ¾e‚ ¤ej¥d¨k¡dredned:efd©dª„ƒZ¿e‚ ¤ej¥d«k¡dred:efd¬d­„ƒZÀe‚ ¤ej¥ ©d®¡¡drefd¯d°„ƒZÁe‚ ¤ej¥ ©d±¡¡drefd²d³„ƒZÂe‚ ¤ej¥ ©d´¡¡drefdµd¶„ƒZÃe‚ ¤ej¥ ©d·¡¡drednefd¸d¹„ƒZÄe‚ ¢e…jÅ¡dmedned:efdºd»„ƒZÆe‚ ¤ej¥ ©d¼¡¡drednefd½d¾„ƒZÇe‚ ¢e…jÈejÉ¡dmedned:efd¿dÀ„ƒZÊe‚ ¢e…jÈ¡dmefdÁdÂ„ƒZËe‚ ¤ej¥ ©dÃ¡¡drefdÄdÅ„ƒZÌe‚ ¤ej¥ ©dÆ¡¡drefdÇdÈ„ƒZÍe‚ ¤ej¥ ©dÉ¡¡drednefdÊdË„ƒZÎe‚ ¢e„jÏ¡dmedned:efdÌdÍ„ƒZÐe‚ ¤ej¥ ©dÎ¡¡dred:efdÏdÐ„ƒZÑe‚ ¤ej¥ ©dÑ¡¡dred:efdÒdÓ„ƒZÒe‚ ¤ej¥ ©dÔ¡¡dred:efdÕdÖ„ƒZÓe‚ ¤ej¥ ©d×¡¡dred:efdØdÙ„ƒZÔe‚ ¤ej¥dÚk¡drefdÛdÜ„ƒZÕdÝeˆdeufdÞdß„ZÖdefdàdá„Z×drefdâdã„ZØe‚ ¤ej¥däk¡drednefdådæ„ƒZÙe‚ ¤ej¥dçk¡drefdèdé„ƒZÚe‚ ¤ej¥dêk¡dredned:efdëdì„ƒZÛe‚ ¤ej¥dík¡dred:efdîdï„ƒZÜe‚ Ý¡ d:efdðdñ„ƒZÞe‚ ¢ejß¡dmefdòdó„ƒZàe‚ ¤ej¥dôk¡drednefdõdö„ƒZáe‚ ¤ej¥ ©d÷¡¡drefdødù„ƒZâe‚ ¤ej¥ ©dú¡¡drefdûdü„ƒZãe‚ ¤ej¥dýk¡drednefdþdÿ„ƒZäe‚ ¤ej¥ ©�d ¡¡dref�d�d„ƒZåe‚ æ¡ �ded:ef�d�d„ƒZç�dejèdejéf�d�d„Zê�d	et�d
e\f�d�d„Zë�d	et�d
e\f�d�d„Zì�d	et�d
e\�de�def�d�d„Zí�d	et�d
e\�de�def�d�d„Zî�d	et�d
e\�de�def�d�d„Zï�d	et�d
e\�de�def�d�d„Zð�d	et�d
e\�de�def�d�d„Zñ�d	et�d
e\�de�def�d�d„Zò�d	et�d
e\�de�def�d�d„Zó�de�d
e\d+eˆ�detde‰f
�d �d!„Zô�de�d
e\d+eˆ�detde‰f
�d"�d#„Zõ�d	et�d
e\�de�def�d$�d%„Zöd+eˆd1eudB �d&eudceˆf�d'�d(„Z÷	�d5�ded+eˆd?ee�d
e\�d&eud1eudB �def�d)�d*„Zød:ef�d+�d,„Zù�d-ejúf�d.�d/„Zû�d-ejúf�d0�d1„Zü�d2�d3„ Zýe�d4k�r5eýƒ  dS dS (;  é    N)ÚdatetimeÚ	timedelta)ÚAsyncIOScheduler)ÚBotÚ
DispatcherÚRouterÚF)ÚMessageÚCallbackQueryÚUpdateÚInlineKeyboardMarkupÚInlineKeyboardButtonÚChatMemberUpdated)ÚCommandStart)Ú
FSMContext)ÚStateÚStatesGroup)ÚMemoryStorage)ÚSimpleRequestHandlerÚsetup_application)Úweb)Úselect©Úquote)ÚFACTORY_TOKENÚWEBHOOK_URLÚWEBHOOK_PATHÚWEBHOOK_SECRETÚWEBAPP_HOSTÚWEBAPP_PORTÚ	BOT_TYPESÚDEVELOPER_IDS)%Úinit_dbÚget_or_create_userÚget_userÚget_settingsÚget_help_textÚ get_start_template_with_entitiesÚ get_token_template_with_entitiesÚupdate_settingsÚget_sessionÚget_all_buttonsÚ
get_buttonÚget_mandatory_channelsÚget_funded_channelsÚget_payment_packagesÚget_payment_settingsÚget_user_balanceÚadd_user_balanceÚdeduct_user_balanceÚis_payment_processedÚrecord_paymentÚget_bot_subscriptionÚcreate_bot_subscriptionÚexpire_bot_subscriptionÚget_user_paid_botsÚget_user_unpaid_botsÚis_bot_paidÚget_expiring_subscriptionsÚget_bot_by_idÚ$get_factory_cobot_mandatory_channelsÚ!get_factory_cobot_funded_channelsÚrecord_factory_cobot_funded_subÚget_factory_cobot_funded_countÚ"mark_factory_cobot_funded_completeÚmark_factory_funded_pendingÚis_factory_funded_pendingÚclear_factory_funded_pendingÚ clear_all_factory_funded_pending)r   Úfunc)r   ÚBotTransferÚTransferStatusÚBotTypeÚUserÚMandatoryChannelÚFundedChannelÚFundedSubscriptionÚCobotMandatoryChannelÚCobotFundedChannelÚCobotFundedSubscriptionÚChannelDisplayTypeÚBotGroupÚButtonSettingÚ	CobotUserÚBotSubscription)Ú
dev_routerÚnotify_devsÚis_dev_or_admin_dbÚ	btn_labelÚmake_inline_buttonÚcobot_storagesÚcobot_dispatchersÚbot_usernameÚreturnc                 C   s   | t vr	tƒ t | < t |  S ©N)r\   ÚCobotMemoryStorage)r^   © rb   úkodo.pyÚget_cobot_storageA   s   
rd   c                 C   s’   | t vrEdd l}dd l}|j |j t¡¡}||jvr"|j d|¡ ddlm	} ddlm
} t| ƒ}t|d�}| |¡ | |¡ |t | < t |  S ©Nr   )Úrouter)rW   ©Ústorage)r]   ÚsysÚosÚpathÚdirnameÚabspathÚ__file__ÚinsertÚcobots.communication.comrf   rW   rd   r   Úinclude_router)r^   ri   rj   Úfactory_dirÚ
com_routerÚcom_dev_routerrh   Údprb   rb   rc   Úget_cobot_dispatcherG   s   



rv   Ú_com_dispatcherc                  C   sL   t d u r$ddlm}  ddlm} tƒ }t|d�}| |¡ | | ¡ |a t S re   )rw   rp   rf   rW   r   r   rq   )rs   rt   rh   ru   rb   rb   rc   Úget_com_dispatcherY   s   


rx   z1%(asctime)s [%(levelname)s] %(name)s: %(message)s)ÚlevelÚformatÚ_BOT_TYPE_LOCKSc                   @   ó   e Zd Zeƒ ZdS )ÚCreateBotStatesN)Ú__name__Ú
__module__Ú__qualname__r   Úwaiting_tokenrb   rb   rb   rc   r}   p   ó    
r}   c                   @   r|   )ÚTransferStatesN)r~   r   r€   r   Úwaiting_receiver_idrb   rb   rb   rc   rƒ   s   r‚   rƒ   c                   @   s   e Zd Zeƒ Zeƒ ZdS )ÚEditBotStatesN)r~   r   r€   r   Úwaiting_new_nameÚwaiting_new_photorb   rb   rb   rc   r…   v   s    
r…   c                   @   r|   )ÚPaymentStatesN)r~   r   r€   r   Úwaiting_subscription_botrb   rb   rb   rc   rˆ   z   r‚   rˆ   c                   @   r|   )ÚBotOwnerStatesN)r~   r   r€   r   Úwaiting_custom_owner_idrb   rb   rb   rc   rŠ   }   r‚   rŠ   Úuser_idc                 C   s   | t v S r`   )r!   ©rŒ   rb   rb   rc   Úis_developer�   s   rŽ   Útokenc              
   Ã   sú   �zqt  ¡ 4 I d H š[}|jd| › d�t jdd�d�4 I d H š0}| ¡ I d H }| d¡rD|d W  d   ƒI d H  W  d   ƒI d H  W S W d   ƒI d H  n1 I d H sTw   Y  W d   ƒI d H  W d S 1 I d H skw   Y  W d S  ty|   Y d S w )Núhttps://api.telegram.org/botz/getMeé
   ©Útotal©ÚtimeoutÚokÚresult©ÚaiohttpÚClientSessionÚgetÚClientTimeoutÚjsonÚ	Exception©r�   ÚsessionÚrespÚdatarb   rb   rc   Úvalidate_token…   s.   €

þ
úÿ*ûÿ
ö
þþr£   ÚusernameÚbot_typeÚowner_idc              
   Ã   s"  �zó|dkr ddl m} || ¡ ƒI d H  t d|› �¡ W d S |dkr>ddlm} || ¡ ƒI d H  t d|› �¡ W d S |dkr\ddlm} || ¡ ƒI d H  t d|› �¡ W d S |d	krzddlm} || ¡ ƒI d H  t d
|› �¡ W d S |dkr˜ddlm} || ¡ ƒI d H  t d|› �¡ W d S |dkr¶ddl	m} || ¡ ƒI d H  t d|› �¡ W d S |dkrÔddl
m}	 |	| ¡ ƒI d H  t d|› �¡ W d S |dkròddlm}
 |
| ¡ ƒI d H  t d|› �¡ W d S W d S  t�y } zt d|› �¡ W Y d }~d S d }~ww )NÚcommunicationr   ©r"   uC   âœ… ØªÙ… Ø¥Ù†Ø´Ø§Ø¡ Ù‚Ø§Ø¹Ø¯Ø© Ø¨ÙŠØ§Ù†Ø§Øª Ø¨ÙˆØª Ø§Ù„ØªÙˆØ§ØµÙ„: ÚdownloaduC   âœ… ØªÙ… Ø¥Ù†Ø´Ø§Ø¡ Ù‚Ø§Ø¹Ø¯Ø© Ø¨ÙŠØ§Ù†Ø§Øª Ø¨ÙˆØª Ø§Ù„ØªØ­Ù…ÙŠÙ„: ÚdecoruC   âœ… ØªÙ… Ø¥Ù†Ø´Ø§Ø¡ Ù‚Ø§Ø¹Ø¯Ø© Ø¨ÙŠØ§Ù†Ø§Øª Ø¨ÙˆØª Ø§Ù„Ø²Ø®Ø±Ù�Ø©: ÚfactoryuA   âœ… ØªÙ… Ø¥Ù†Ø´Ø§Ø¡ Ù‚Ø§Ø¹Ø¯Ø© Ø¨ÙŠØ§Ù†Ø§Øª Ø¨ÙˆØª Ø§Ù„Ù…ØµÙ†Ø¹: ÚtranscodinguJ   âœ… ØªÙ… Ø¥Ù†Ø´Ø§Ø¡ Ù‚Ø§Ø¹Ø¯Ø© Ø¨ÙŠØ§Ù†Ø§Øª Ø¨ÙˆØª ØªØ­ÙˆÙŠÙ„ Ø§Ù„ØµÙŠØº: ÚtranslationuC   âœ… ØªÙ… Ø¥Ù†Ø´Ø§Ø¡ Ù‚Ø§Ø¹Ø¯Ø© Ø¨ÙŠØ§Ù†Ø§Øª Ø¨ÙˆØª Ø§Ù„ØªØ±Ø¬Ù…Ø©: ÚaiuT   âœ… ØªÙ… Ø¥Ù†Ø´Ø§Ø¡ Ù‚Ø§Ø¹Ø¯Ø© Ø¨ÙŠØ§Ù†Ø§Øª Ø¨ÙˆØª Ø§Ù„Ø°ÙƒØ§Ø¡ Ø§Ù„Ø§ØµØ·Ù†Ø§Ø¹ÙŠ: ÚbuttonsuC   âœ… ØªÙ… Ø¥Ù†Ø´Ø§Ø¡ Ù‚Ø§Ø¹Ø¯Ø© Ø¨ÙŠØ§Ù†Ø§Øª Ø¨ÙˆØª Ø§Ù„Ø£Ø²Ø±Ø§Ø±: u8   â�Œ Ø®Ø·Ø£ Ù�ÙŠ Ø¥Ù†Ø´Ø§Ø¡ Ù‚Ø§Ø¹Ø¯Ø© Ø§Ù„Ø¨ÙŠØ§Ù†Ø§Øª: )Úcobots.communication.dbr"   ÚlowerÚloggerÚinfoÚcobots.download.dbÚcobots.decor.dbÚcobots.factory.dbÚcobots.transcoding.dbÚcobots.translation.dbÚcobots.ai.dbÚcobots.buttons.dbrž   Úerror)r�   r¤   r¥   r¦   Úcom_init_dbÚdown_init_dbÚdecor_init_dbÚfactory_init_dbÚtrans_init_dbÚ
ai_init_dbÚbuttons_init_dbÚerb   rb   rc   Úcreate_bot_database“   sN   €ý€ÿrÄ   c              
   Ã   s  �d|  ¡ › �}d|  ¡ › d�}zkt ¡ 4 I d H šU}|jd| › d�||g d¢dœtjdd	�d
�4 I d H š#}| ¡ I d H }| dd¡W  d   ƒI d H  W  d   ƒI d H  W S 1 I d H s]w   Y  W d   ƒI d H  W d S 1 I d H stw   Y  W d S  ty…   Y dS w )Nz%https://mahde.publicvm.com/kodo/bots/Úkodo_Ú_secretr�   z/setWebhook)ÚmessageÚcallback_queryÚedited_messageÚmy_chat_memberÚmanaged_bot©ÚurlÚsecret_tokenÚallowed_updatesr‘   r’   ©r�   r•   r–   F)r±   r™   rš   Úpostrœ   r�   r›   rž   )r�   r^   Úwebhook_urlÚsecretr    r¡   r¢   rb   rb   rc   Úset_bot_webhook¹   s.   €
ý
ù
öÿ2ÿÿrÔ   c              
   Ã   sà   �zdt  ¡ 4 I d H šN}|jd| › d�t jdd�d�4 I d H š#}| ¡ I d H }| dd¡W  d   ƒI d H  W  d   ƒI d H  W S 1 I d H sGw   Y  W d   ƒI d H  W d S 1 I d H s^w   Y  W d S  tyo   Y dS w )Nr�   z/deleteWebhookr‘   r’   r”   r–   F)r™   rš   rÑ   rœ   r�   r›   rž   rŸ   rb   rb   rc   Údelete_bot_webhookÌ   s"   €

þ
ûÿ2ÿÿrÕ   Úbotc              	   Ã   s‚   �t ƒ I d H }g }g }|D ]/}z|  |j|¡I d H }|jdv r!t‚W q ty<   |jtjkr5| |¡ n| |¡ Y qw ||fS ©N©ÚleftÚkickedÚbanned)	r-   Úget_chat_memberÚ
channel_idÚstatusrž   Údisplay_typerR   r¯   Úappend)rÖ   rŒ   ÚchannelsÚnot_sub_buttonsÚnot_sub_textÚchÚmemberrb   rb   rc   Úcheck_user_subscriptionsØ   s"   €
ÿ
€üræ   c              	   Ã   sb   �t ƒ I d H }g }|D ]#}z|  |j|¡I d H }|jdv rt‚W q ty.   | |¡ Y qw |S r×   )r.   rÜ   rÝ   rÞ   rž   rà   )rÖ   rŒ   rá   Ú
not_subbedrä   rå   rb   rb   rc   Úcheck_funded_subscriptionsé   s   €
ÿÿrè   Úchannelc                 Ã   s8  �t ƒ 4 I d H �š}| ttƒ tj|jktj|k¡¡I d H }| ¡ r/	 W d   ƒI d H  d S | 	t|j|d�¡ | tt
ƒ t
j|jk¡¡I d H }| ¡ }|rø| jd7  _tƒ I d H }|jr¹| ttƒ tj|k¡¡I d H }| ¡ }	d}
|	r‡|	jr~|	j}
|	jr‡d|	j› �}
|
pŒt|ƒ}
|jp�|jr™d|j› �nt|jƒ}t| d|
› d|› d|j› d	|j› d
|j› d�ƒI d H  |j|jk�rd|_t ¡ |_|jpØ|jrÔd|j› �nt|jƒ}t| d|› d|j› d|j› d�ƒI d H  W d   ƒI d H  d S W d   ƒI d H  d S W d   ƒI d H  d S 1 I d H �sw   Y  d S )N)Úfunded_channel_idrŒ   é   Ú ú@úhttps://t.me/uU   ðŸ”” <b>Ø§Ø´Ø¹Ø§Ø± Ø§Ø´ØªØ±Ø§Ùƒ Ø¬Ø¯ÙŠØ¯ Ù�ÙŠ Ù‚Ù†Ø§Ø© Ù…Ù…ÙˆÙ„Ø©:</b>
Ø§Ù„Ø­Ø³Ø§Ø¨: u'   
Ø§Ù„Ù‚Ù†Ø§Ø© Ø§Ù„Ù…Ù…ÙˆÙ„Ø©: <a href='ú'>uB   </a>
Ø¹Ø¯Ø¯ Ø§Ù„Ù…Ø´ØªØ±ÙƒÙŠÙ† Ø¹Ø¨Ø± Ø§Ù„Ø¨ÙˆØª Ø­Ø§Ù„ÙŠØ§Ù‹: <b>u5   </b> Ø¹Ø¶Ùˆ
Ø¹Ø¯Ø¯ Ø§Ù„Ø£Ø¹Ø¶Ø§Ø¡ Ø§Ù„Ù…Ø·Ù„ÙˆØ¨: <b>ú</b>FuD   âœ… <b>Ø§ÙƒØªÙ…Ù„Øª Ù‚Ù†Ø§Ø© Ù…Ù…ÙˆÙ„Ø©!</b>
Ø§Ù„Ù‚Ù†Ø§Ø©: <a href='õ!   </a>
ØªÙ… Ø§Ù„ÙˆØµÙˆÙ„ Ø¥Ù„Ù‰ <b>u3   </b> Ø¹Ø¶Ùˆ ÙˆØªÙ… Ø¥Ø²Ø§Ù„ØªÙ‡Ø§ ØªÙ„Ù‚Ø§Ø¦ÙŠØ§Ù‹.)r*   Úexecuter   rN   Úwhererê   ÚidrŒ   Úscalar_one_or_noneÚaddrM   Úcurrent_countr%   Únotify_funded_subrK   Ú
first_namer¤   ÚstrÚinvite_linkÚchannel_usernamerÝ   rX   Úchannel_titleÚtarget_countÚ	is_activer   ÚutcnowÚcompleted_at)rÖ   rŒ   ré   r    r—   Ú	ch_resulträ   ÚsettingsÚuser_resultÚuserÚnameÚlinkrb   rb   rc   Úrecord_funded_subscriptionö   sŒ   €
þ
ÿø
þ
ÿ ÿÿþþýü
þ	
ÿÿÿþþÌí.0Òr  c              	   Ã   sú  �t |tƒ}|r|jjn|j}t| |ƒI d H \}}|rN|d }|jp,|jr+d|j› �nd}|dttd|jp7|j	› �|d�gtddd	�ggd
�d�I d H  dS |rv|d }|jpa|jr`d|j› �nd}|d|› d|j	› d�ddd�I d H  dS t
| |ƒI d H }	|	rÍ|	d }|jp‘|jr�d|j› �nd}|jtjkr¹|dttd|jp¢|j	› �|d�gtddd	�ggd
�d�I d H  dS |d|› d|j	› d�ddd�I d H  dS tƒ I d H }
|
D ]%}z|  |j|¡I d H }|jdvrðt| ||ƒI d H  W qÕ tyú   Y qÕw dS )Nr   rî   ú#uk   Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù… Ø§Ø´ØªØ±Ùƒ Ù�ÙŠ Ø§Ù„Ù‚Ù†ÙˆØ§Øª Ø§Ù„ØªØ§Ù„ÙŠØ© Ù‚Ø¨Ù„ Ø§Ø³ØªØ®Ø¯Ø§Ù… Ø§Ù„Ø¨ÙˆØª:rí   ©ÚtextrÍ   õ"   âœ… ØªØ­Ù‚Ù‚ Ù…Ù† Ø§Ù„Ø§Ø´ØªØ±Ø§ÙƒÚ	check_sub©r  Úcallback_data©Úinline_keyboard©Úreply_markupFuu   Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù… Ø§Ø´ØªØ±Ùƒ Ù�ÙŠ Ø§Ù„Ù‚Ù†Ø§Ø© Ø§Ù„ØªØ§Ù„ÙŠØ© Ù‚Ø¨Ù„ Ø§Ø³ØªØ®Ø¯Ø§Ù… Ø§Ù„Ø¨ÙˆØª:
- <a href='rï   õ%   </a>

Ø§Ø´ØªØ±Ùƒ Ø«Ù… Ø£Ø±Ø³Ù„ /startÚHTMLT©Ú
parse_modeÚdisable_web_page_previewõi   Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù… Ø§Ø´ØªØ±Ùƒ Ù�ÙŠ Ø§Ù„Ù‚Ù†Ø§Ø© Ø§Ù„ØªØ§Ù„ÙŠØ© Ù‚Ø¨Ù„ Ø§Ø³ØªØ®Ø¯Ø§Ù… Ø§Ù„Ø¨ÙˆØª:rØ   )Ú
isinstancer
   rÇ   Úanswerræ   rû   rü   r   r   rý   rè   rß   rR   r¯   r.   rÜ   rÝ   rÞ   r  rž   )rÖ   rŒ   Ú	msg_or_cbÚis_cbÚsendÚnot_btnÚnot_txträ   r  Ú
not_fundedrá   rå   rb   rb   rc   Úhandle_subscription_check3  sx   €
þþÿÿýþþüÿÿý
€ÿr"  ÚkeyÚcbÚfallback_textc                 Ã   sh   �ddl m}m} tƒ I d H }dd„ |D ƒ}| | ¡}|r,|jr,|||ƒ||j|jd�S t|p0| |d�S )Nr   )rZ   r[   c                 S   ó   i | ]}|j |“qS rb   ©Ú
button_key©Ú.0Úbrb   rb   rc   Ú
<dictcomp>r  ó    z_dyn_btn.<locals>.<dictcomp>©r  r  ÚstyleÚemoji_idr  )	ÚdevrZ   r[   r+   r›   Ú
is_visibleÚcolorÚcustom_emoji_idr   )r#  r$  r%  rZ   r[   r¯   Úbtn_mapr+  rb   rb   rc   Ú_dyn_btno  s   €

r6  ú	menu:backc                 Ã   s   �t d| dƒI d H S )NÚbackõ   Ø±Ø¬ÙˆØ¹)r6  )r$  rb   rb   rc   Ú	_back_btny  s   €r:  c            
      ƒ   sF  �t ƒ I d H } tƒ I d H }dd„ |D ƒ‰ ddtdtdtf‡ fdd„}g }dd	„ |d
dƒfD ƒ}|r6| |¡ dd	„ |ddƒ|ddƒfD ƒ}|rL| |¡ dd	„ |ddƒfD ƒ}|r^| |¡ dd	„ |ddƒfD ƒ}|rp| |¡ dd	„ |d| jd�|d| jd�fD ƒ}|rŠ| |¡ dd	„ |d| jd�fD ƒ}	|	rž| |	¡ t|d�S )Nc                 S   r&  rb   r'  r)  rb   rb   rc   r,    r-  z'build_main_keyboard.<locals>.<dictcomp>r#  ÚcallbackÚurl_overridec                    sR   ˆ   | ¡}|r
|jsd S t|ƒ}|jp|}t||rd n|p!d| › �||j|jd�S )Nzmenu:©r  r  rÍ   r/  r0  )r›   r2  rZ   rÍ   r[   r3  r4  )r#  r;  r<  r+  ÚlabelrÍ   ©r5  rb   rc   Úmake_btn�  s   


ûz%build_main_keyboard.<locals>.make_btnc                 S   ó   g | ]}|r|‘qS rb   rb   ©r*  Úxrb   rb   rc   Ú
<listcomp>“  r-  z'build_main_keyboard.<locals>.<listcomp>Úcreateúmenu:createc                 S   rA  rb   rb   rB  rb   rb   rc   rD  –  r-  Úmybotsúmenu:mybotsÚhelpú	menu:helpc                 S   rA  rb   rb   rB  rb   rb   rc   rD  ™  r-  Úpaid_createúmenu:paid_createc                 S   rA  rb   rb   rB  rb   rb   rc   rD  œ  r-  Úsubscriptionúmenu:subscriptionc                 S   rA  rb   rb   rB  rb   rb   rc   rD  Ÿ  s    üÿÚbots_channel)r<  Úsource_channelc                 S   rA  rb   rb   rB  rb   rb   rc   rD  §  r-  Ú	developerr  )NN)r%   r+   rú   rà   Úbots_channel_urlÚsource_channel_urlÚdeveloper_urlr   )
r  r¯   r@  ÚrowsÚr1Úr2Úr3Úr3bÚr4Úr5rb   r?  rc   Úbuild_main_keyboard|  s.   €þÿ
r\  rE  Úprefixc              	   Ã   sø   �ddl m} tƒ I d H }dd„ |D ƒ}g }| ¡ D ]6\}}| |¡}|r)|js)q|r/t|ƒn|}|r6|jnd}	|r=|jnd }
| 	t
|| › d|› �|	|
d�g¡ q| d¡}|rl|jrl| 	t
t|ƒd	|j|jd�g¡ n| 	td	ƒI d H g¡ t|d
�S )Nr   ©r    c                 S   r&  rb   r'  r)  rb   rb   rc   r,  °  r-  z,build_bot_types_keyboard.<locals>.<dictcomp>Údefaultz:type:r.  r8  r7  r  )Úconfigr    r+   Úitemsr›   r2  rZ   r3  r4  rà   r[   r:  r   )r]  r    r¯   r5  rU  Úbot_keyÚdefault_namer+  r>  r/  r0  Úback_btnrb   rb   rc   Úbuild_bot_types_keyboard­  s8   €

ü

ü
re  Úback_cbc                 Ã   sJ   �t ƒ I d H }dd„ |D ƒ}td|| d�I d H }t|p td| d�ggd�S )Nc                 S   r&  rb   r'  r)  rb   rb   rc   r,  Ñ  r-  zkb_cancel.<locals>.<dictcomp>r8  ©r  u
   Ø¥Ù„ØºØ§Ø¡r  r  ©r+   Úbuild_dynamic_buttonr   r   )rf  r¯   r5  Úback_brb   rb   rc   Ú	kb_cancelÏ  s   €ÿrk  c              
   Ã   st   �z|   ¡ I d H }|r|jr|jW S W n ty- } zt d|› �¡ W Y d }~nd }~ww t| dd ƒr8| jjp9dS )Nu0   ØªØ¹Ø°Ù‘Ø± Ø¬Ù„Ø¨ Ø§Ø³Ù… Ø§Ù„Ø¨ÙˆØª Ù…Ù† getMe: Ú_merì   )Úmer¤   rž   r²   ÚwarningÚgetattrrl  )rÖ   rm  rÃ   rb   rb   rc   Úmanager_bot_usernameØ  s   €
€€ÿrp  rì   Úmanager_usernameÚsuggested_usernameÚsuggested_namec                 C   s6   d| › �}|r|› d|› �}|r|› dt |ƒ› �S |S )Nzhttps://t.me/newbot/ú/z?name=r   )rq  rr  rs  rÍ   rb   rb   rc   Úmanaged_bot_urlâ  s   
ru  c                 Ã   s@   �t | ƒI d H }tdt|||ƒdd�gg}| |j¡ t|d�S )Nu   Ø¥Ù†Ø´Ø§Ø¡ Ø¨ÙˆØª Ù�ÙˆØ±ÙŠÚsuccess)r  rÍ   r/  r  )rk  r   ru  Úextendr  r   )rf  rq  rr  rs  Ú	cancel_kbrU  rb   rb   rc   Úkb_token_requestë  s   €

ý
ry  Úbotsr5  c                 Ã   sþ   �g }| D ]^}|  d¡}|r|jnd}|r|jnd }td|j› �d|j› �||d�}td|d|j› �d�I d H }d	d
„ ||fD ƒ}	|	s^td|j› �d|j› �d�tdd|j› �dƒI d H g}	| 	|	¡ qtd|dd�I d H }
| 	|
pwtddd�g¡ t
|d�S )NÚbot_urlr_  rí   rî   )r  rÍ   r/  r0  Ú
bot_manageúbot:manage:rg  c                 S   rA  rb   rb   rB  rb   rb   rc   rD    r-  z)build_mybots_keyboard.<locals>.<listcomp>r
  u
   Ø¥Ø¯Ø§Ø±Ø©r8  r7  r9  r  r  )r›   r3  r4  r[   r¤   ri  rô   r   r6  rà   r   )rz  r5  r¯   rÖ   r+  r/  r0  Úbot_url_btnÚ
manage_btnÚrowrj  rb   rb   rc   Úbuild_mybots_keyboard÷  s2   €


ü
þþ
r�  Úbot_idc              	   Ã   s  �t d|d| › �d�I d H }t d|dd�I d H }t d|d| › �d�I d H }t d|d	| › �d�I d H }t d
|d| › �d�I d H }t d|d| › �d�I d H }t|pWtdd| › �d�g|pbtdd| › �d�g|pmtdd	| › �d�|pwtdd| › �d�g|p‚tdd| › �d�g|pŠtddd�ggd�S )NÚ
bot_deleteúbot:delete_ask:rg  r8  rH  Úbot_transferúbot:transfer:Úbot_edit_photoúbot:edit_photo:Úbot_edit_nameúbot:edit_name:Úbot_change_typeúbot:change_type:u   Ù†Ù‚Ù„ Ø§Ù„Ø¨ÙˆØªr  u   Ø­Ø°Ù� Ø§Ù„Ø¨ÙˆØªu   ØªØºÙŠÙŠØ± Ø§Ù„ØµÙˆØ±Ø©u   ØªØºÙŠÙŠØ± Ø§Ù„Ø§Ø³Ù…u   ØªØºÙŠÙŠØ± Ù†ÙˆØ¹ Ø§Ù„Ø¨ÙˆØªr9  r  )ri  r   r   )r‚  r5  Údel_btnrj  Ú
transfer_bÚ
edit_photoÚ	edit_nameÚchange_typerb   rb   rc   Úbuild_manage_bot_keyboard  s&   €þþør’  Útransfer_idc                 Ã   s’   �t ƒ I d H }dd„ |D ƒ}td|d| › �d�I d H }td|d| › �d�I d H }t|p6tdd| › �dƒI d H g|pDtdd| › �d	ƒI d H ggd
�S )Nc                 S   r&  rb   r'  r)  rb   rb   rc   r,  +  r-  z(kb_transfer_receiver.<locals>.<dictcomp>Útransfer_acceptútransfer:accept:rg  Útransfer_rejectútransfer:reject:u   Ù…ÙˆØ§Ù�Ù‚Ø©u   Ø±Ù�Ø¶r  )r+   ri  r   r6  )r“  r¯   r5  Úaccept_bÚreject_brb   rb   rc   Úkb_transfer_receiver)  s   €þrš  c                 Ã   sŽ   �t ƒ I d H }dd„ |D ƒ}td|d| › �d�I d H }td|d| › �d�I d H }t|p6tdd| › �dƒI d H g|pBtd| › �ƒI d H ggd	�S )
Nc                 S   r&  rb   r'  r)  rb   rb   rc   r,  6  r-  z'kb_transfer_confirm.<locals>.<dictcomp>Útransfer_confirmútransfer:confirm:rg  r8  útransfer:cancel:u
   ØªØ£ÙƒÙŠØ¯r  )r+   ri  r   r6  r:  )r“  r¯   r5  Ú	confirm_bÚcancel_brb   rb   rc   Úkb_transfer_confirm4  s   €þr   c                 Ã   s®   �dd l }tƒ I d H }|j}t|dd ƒ}|rN| d| j¡}| d| jr)d| j› �n| j¡}d }|rJz
| |¡}W ||fS  tyI   d }Y ||fS w ||fS d| j› d�d fS )Nr   Ústart_template_entitiesz{first_name}ú
{username}rí   u   Ù…Ø±Ø­Ø¨Ø§Ù‹ <b>uŒ   </b> ðŸ‘‹
Ø£Ù‡Ù„Ø§Ù‹ Ø¨Ùƒ Ù�ÙŠ <b>KODO Factory</b> â€” Ù…ØµÙ†Ø¹ Ø§Ù„Ø¨ÙˆØªØ§Øª Ø§Ù„Ø§Ø­ØªØ±Ø§Ù�ÙŠ!

Ø§Ø®ØªØ± Ù…Ù† Ø§Ù„Ù‚Ø§Ø¦Ù…Ø© Ø£Ø¯Ù†Ø§Ù‡:)	r�   r%   Ústart_templatero  Úreplacerù   r¤   Úloadsrž   )r  Ú_jsonr  ÚtemplateÚentities_jsonr  Úentitiesrb   rb   rc   Úbuild_start_text?  s*   € þþürª  rÇ   Ústatec                 ƒ   s   �|  ¡ I d H  | jrt| j ¡ ƒdkr| j d d¡d nd}|dkrŒ| j}t|j|j|jd�I d H  t	|jƒI d H }ddl
m}m} | jdt|ƒ› d�d	d
||dt|ƒ› �dd�gtdddƒI d H tdddƒI d H gtdddƒI d H g|ddd�gtdƒI d H ggd�d�I d H  d S | j}t|j|j|jd�I d H }tƒ I d H }	|	jrÖddlm}
 t ¡ |j  ¡ dk rÖ|jr¿d|j› �n|j}t|d |j› d!|› d"|j› d#�ƒI d H  |jrã|  d$¡I d H  d S |	jsû|jsû|jsû|	jpðd%}|  |¡I d H  d S t||j| ƒI d H }|�s
d S t|ƒI d H \}}t ƒ I d H }|j�s'|j�s't!|jƒ�r>dd&l"m#} |ƒ I d H }| jd'd	|d(�I d H  dd l$}dd)l
m%‰  t&||d*�}|�roz‡ fd+d,„|D ƒ}||d-< W n t'�yn   d	|d.< Y nw d	|d.< | jd/i |¤ŽI d H  d S )0Nrë   rì   rM  )rŒ   r¤   rù   r   ©r   r   õA   ðŸ’³ <b>Ù‚Ø§Ø¦Ù…Ø© Ø§Ù„Ø§Ø´ØªØ±Ø§Ùƒ</b>

Ø±ØµÙŠØ¯ Ø­Ø³Ø§Ø¨Ùƒ: <b>rð   r  Tõ   ðŸ’° Ø±ØµÙŠØ¯ Ø­Ø³Ø§Ø¨Ùƒ: úpay:noopr  Ú	pay_topupú	pay:topupõ   Ø¥Ø¶Ø§Ù�Ø© Ø±ØµÙŠØ¯ ðŸ’³Úpay_subscribeúpay:subscribeõ   Ø§Ø´ØªØ±Ø§Ùƒ Ù…Ø¯Ù�ÙˆØ¹ â­�Úpay_paid_botsúpay:paid_botsõ$   Ø§Ù„Ø¨ÙˆØªØ§Øª Ø§Ù„Ù…Ø¯Ù�ÙˆØ¹Ø© ðŸ’Žõ   ØªÙˆØ§ØµÙ„ Ù…Ø¹ Ø§Ù„Ø¯Ø¹Ù… ðŸ“žúhttps://t.me/n_u_7r
  r7  r  ©r  r  r  ©r   r‘   rí   uC   ðŸ‘¤ <b>Ù…Ø³ØªØ®Ø¯Ù… Ø¬Ø¯ÙŠØ¯ Ø¯Ø®Ù„ Ø§Ù„Ù…ØµÙ†Ø¹!</b>
Ø§Ù„Ø§Ø³Ù…: õ   
Ø§Ù„Ù…Ø¹Ø±Ù�: õ   
Ø§Ù„Ù€ ID: <code>ú</code>u<   â›” Ø£Ù†Øª Ù…Ø­Ø¸ÙˆØ± Ù…Ù† Ø§Ø³ØªØ®Ø¯Ø§Ù… Ù‡Ø°Ø§ Ø§Ù„Ø¨ÙˆØª.uQ   ðŸ”´ Ø§Ù„Ø¨ÙˆØª Ù…Ù‚Ù�ÙˆÙ„ Ø­Ø§Ù„ÙŠØ§Ù‹ØŒ ÙŠØ±Ø¬Ù‰ Ø§Ù„Ù…Ø­Ø§ÙˆÙ„Ø© Ù„Ø§Ø­Ù‚Ø§Ù‹.)Úkb_dev_panelu”  Â» <b>Ù‡Ø°Ù‡ Ù‡ÙŠ Ù„ÙˆØ­Ø© Ø§Ù„ØªØ­ÙƒÙ… ÙˆØ§Ø¯Ø§Ø±Ø© Ù…ØµÙ†Ø¹ Ø§Ù„Ø¨ÙˆØªØ§Øª Ø§Ù„Ø®Ø§Øµ Ø¨Ùƒ</b>.

Â» <b>Ù„ÙˆØ­Ø© ØªØ­ÙƒÙ… Ù…ØªÙƒØ§Ù…Ù„Ø© ØªØªÙŠØ­ Ù„Ùƒ Ø§Ù„Ø¥Ø´Ø±Ø§Ù� Ø¹Ù„Ù‰ ØµÙ„Ø§Ø­ÙŠØ§Øª Ø§Ù„Ø¨ÙˆØªØŒ Ù…ØªØ§Ø¨Ø¹Ø© Ø§Ù„Ø¥Ø­ØµØ§Ø¦ÙŠØ§Øª ÙˆØ¥Ø¯Ø§Ø±Ø© Ø§Ù„Ø§Ø´ØªØ±Ø§ÙƒØ§Øª ÙˆÙƒÙ„ Ø´ÙŠØ¡ Ù…Ù† Ù…ÙƒØ§Ù† ÙˆØ§Ø­Ø¯</b>.

Â» <b>Ù‚Ù… Ø¨Ø£Ø®ØªÙŠØ§Ø± Ø§Ù„Ø§Ø¬Ø±Ø§Ø¡ Ø§Ù„Ù…Ø·Ù„ÙˆØ¨ Ù…Ù† Ø§Ù„Ù‚Ø§Ø¦Ù…Ø© Ø§Ø¯Ù†Ø§Ù‡</b>:©r  r  ©ÚMessageEntity©r  r  c              	      ó.   g | ]}ˆ |d  |d |d |  d¡d�‘qS ©ÚtypeÚoffsetÚlengthr4  )rÇ  rÈ  rÉ  r4  ©r›   ©r*  rÃ   rÂ  rb   rc   rD  ›  ó
    ÿ
ÿzcmd_start.<locals>.<listcomp>r©  r  rb   )(Úclearr  ÚlenÚsplitÚ	from_userr#   rô   r¤   rù   r1   Úaiogram.typesr   r   r  Ú_fmt_usdr6  r:  r%   Únotify_new_usersr   r   r   Ú	joined_atÚtotal_secondsrX   Ú	is_bannedÚis_openÚis_devÚis_adminÚclosed_messager"  rª  r\  rŽ   r1  rÀ  r�   rÃ  Údictrž   )rÇ   r«  rÖ   Úargsr  Úbalancer   r   Údb_userr  r   r  ÚmsgÚ
all_subbedÚ
start_textÚstart_entitiesÚkeyboardrÀ  Údev_keyboardr¦  Úsend_kwargsÚentsrb   rÂ  rc   Ú	cmd_startT  sš   €.ÿúüýÿþý
þ
þ
ÿÿrç  r  r;  c           	      Ã   s˜   �| j j}t|ƒI d H }|s| jddd�I d H  d S t||| ƒI d H }|rC| j }t|ƒI d H \}}tƒ I d H }| jj|d|d�I d H  |  ¡ I d H  d S )Nu-   âš ï¸� ÙŠØ±Ø¬Ù‰ Ø¥Ø±Ø³Ø§Ù„ /start Ø£ÙˆÙ„Ø§Ù‹.T©Ú
show_alertr  rÁ  )	rÐ  rô   r$   r  r"  rª  r\  rÇ   Ú	edit_text)	r;  rÖ   rŒ   rÞ  rà  r  rá  Ú_rã  rb   rb   rc   Úcb_check_sub¤  s   €rì  c                 Ã   s^   �|  ¡ I d H  | j}t|ƒI d H \}}tƒ I d H }| jj|d|d�I d H  |  ¡ I d H  d S )Nr  rÁ  )rÍ  rÐ  rª  r\  rÇ   rê  r  )r;  r«  rÖ   r  rá  râ  rã  rb   rb   rc   Úcb_back_to_mainµ  s   €rí  rF  c           
   	   Ã   s>  �|  ¡ I d H }| dd¡}| ¡ I d H  |r |jdd�I d H  t|| jj| ƒI d H s-d S | jj}tƒ 4 I d H š%}| t	t
ƒ t
j|kt
jdk¡¡I d H }| ¡  ¡ }W d   ƒI d H  n1 I d H scw   Y  tƒ I d H }	t|ƒ|	jkr†| jd|	j› d�dd�I d H  d S | jjdtd	ƒI d H d
�I d H  |  ¡ I d H  d S )NÚis_paid_creationFT©rî  u.   âš ï¸� Ù„Ù‚Ø¯ ÙˆØµÙ„Øª Ù„Ù„Ø­Ø¯ Ø§Ù„Ø£Ù‚ØµÙ‰ (u    Ø¨ÙˆØªØ§Øª).rè  u[   Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù…ØŒ Ø§Ø®ØªØ± Ø§Ù„Ø¨ÙˆØª Ø§Ù„Ù…Ø±Ø§Ø¯ Ø¥Ù†Ø´Ø§Ø¤Ù‡ ÙˆØªØ´ØºÙŠÙ„Ù‡:rE  r  )Úget_datar›   rÍ  Úupdate_datar"  rÐ  rô   r*   rò   r   ÚBotModelró   r¦   rÿ   ÚscalarsÚallr%   rÎ  Úmax_bots_per_userr  rÇ   rê  re  )
r;  r«  rÖ   Ú_dÚ_paidrŒ   r    r—   Ú	user_botsr  rb   rb   rc   Úcb_create_bot¾  s6   €
ÿ(üþþrù  zcreate:type:c                 ƒ   sl  �| j  d¡d }|tvr| jddd�I d H  d S |j|d�I d H  | tj¡I d H  tt	|ƒI d H d| j
j› d�d	t| › �d
�I d H }tƒ I d H }|j}t|dd ƒ}|skdt| › d�}| jj|d|d�I d H  nBdd l}ddlm‰  t||d�}	|r�z‡ fdd„| |¡D ƒ}
|
|	d< W n tyœ   d|	d< Y nw d|	d< | jjdi |	¤ŽI d H  |  ¡ I d H  d S )Nú:é   u   Ù†ÙˆØ¹ Ø¨ÙˆØª ØºÙŠØ± ØµØ§Ù„Ø­!Trè  )Úselected_bot_typerÅ   Ú_botu   Ø¨ÙˆØª )rq  rr  rs  Útoken_template_entitiesu   âœ… Ø§Ø®ØªØ±Øª: <b>u“   </b>

Ø§Ù„Ø¢Ù† Ø£Ø±Ø³Ù„ Ù„ÙŠ <b>TOKEN</b> Ø§Ù„Ø¨ÙˆØª Ø§Ù„Ù…Ø±Ø§Ø¯ ØªØ´ØºÙŠÙ„Ù‡:

<i>ÙŠÙ…ÙƒÙ†Ùƒ Ø§Ù„Ø­ØµÙˆÙ„ Ø¹Ù„Ù‰ Ø§Ù„ØªÙˆÙƒÙ† Ù…Ù† @BotFather</i>r  rÁ  r   rÂ  rÄ  c              	      rÅ  rÆ  rÊ  rË  rÂ  rb   rc   rD  ý  rÌ  z&cb_select_bot_type.<locals>.<listcomp>r©  r  rb   )r¢   rÏ  r    r  rñ  Ú	set_stater}   r�   ry  rp  rÐ  rô   r%   Útoken_templatero  rÇ   rê  r�   rÑ  rÃ  rÛ  r¥  rž   )r;  r«  rÖ   Úbot_type_keyÚtoken_kbr  Ú	token_msgÚtoken_ents_jsr¦  Úedit_kwargsræ  rb   rÂ  rc   Úcb_select_bot_typeÞ  sD   €ýÿ
ÿÿr  c              
   Ã   s  �z}t  ¡ 4 I d H šg}|jd| › d�t jdd�d�4 I d H š<}| ¡ I d H }| d¡rP|d  dd	¡}|rPd
|vrP|W  d   ƒI d H  W  d   ƒI d H  W S W d   ƒI d H  n1 I d H s`w   Y  W d   ƒI d H  W d S 1 I d H sww   Y  W d S  tyˆ   Y d S w )Nr�   z/getWebhookInfor‘   r’   r”   r–   r—   rÍ   rì   zmahde.publicvm.comr˜   )r�   r    r¡   r¢   rÍ   rb   rb   rc   Úcheck_existing_webhook  s2   €

þ
øÿ€*ÿôþþr  c                 Ã   s   �|  | ¡S r`   rÊ  )r#  r5  rb   rb   rc   Úget_btn  s   €
r  r  rÍ   Úlabel_suffixc                 Ã   sP   �|  | ¡}|s
d S t|ƒ}|r| d|¡}t||rd n||p!|j|j|jd�S )Nr¢  r=  )r›   rZ   r¤  r[   rÍ   r3  r4  )r#  r5  r  rÍ   r	  r+  r>  rb   rb   rc   ri    s   €

ûri  c                 Ã   sˆ   �t ƒ I d H }dd„ |D ƒ}td|d| › �d| › �d�I d H }td|dd	�I d H }t|p7td
| › �d| › �d�g|p?tddd�ggd�S )Nc                 S   r&  rb   r'  r)  rb   rb   rc   r,  3  r-  z*build_success_keyboard.<locals>.<dictcomp>Úopen_bot_urlrî   rí   )rÍ   r	  Úback_to_mainr7  rg  u   ðŸš€ Ù�ØªØ­ @r
  u(   Ø±Ø¬ÙˆØ¹ Ù„Ù„Ù‚Ø§Ø¦Ù…Ø© Ø§Ù„Ø±Ø¦ÙŠØ³ÙŠØ©r  r  rh  )r¤   r¯   r5  Úopen_btnrd  rb   rb   rc   Úbuild_success_keyboard1  s    €ýþþr  ÚownerÚbot_infor  c                 Ã   s  �t ƒ 4 I d H š9}| tt tj¡ƒ tj|ktj	dk¡¡I d H  
¡ }| ttƒ tj|k¡¡I d H }| ¡ }	W d   ƒI d H  n1 I d H sGw   Y  |	rW|	jrWd|	j› �n|	r\|	jnt|ƒ}
| dd¡}| d|¡}t| d|› d|
› d|› d	|› d
|› dt ||¡› �ƒI d H  d S )NTrí   r¤   rì   rù   u[   ðŸ�­ <b>ØªÙ… Ø¥Ù†Ø´Ø§Ø¡ Ø¨ÙˆØª Ø¬Ø¯ÙŠØ¯ Ù�ÙŠ Ø§Ù„Ù…ØµÙ†Ø¹!</b>

ØªÙˆÙƒÙ† Ø§Ù„Ø¨ÙˆØª: <code>u   </code>
Ù…Ø·ÙˆØ± Ø§Ù„Ø¨ÙˆØª: u"   
Ù‚Ø§Ù… Ø§Ù„Ù…Ø·ÙˆØ± Ø¨ØµÙ†Ø¹: <b>u   </b> Ø¨ÙˆØª
Ø§Ø³Ù… Ø§Ù„Ø¨ÙˆØª: u   
ÙŠÙˆØ²Ø± Ø§Ù„Ø¨ÙˆØª: @õ   
Ù†ÙˆØ¹ Ø§Ù„Ø¨ÙˆØª: )r*   rò   r   rG   Úcountrò  rô   ró   r¦   rÿ   ÚscalarrK   rõ   r¤   rù   rú   r›   rX   r    )rÖ   r  r  r�   r  r¦   r    Ú
bots_countÚowner_resultÚ
owner_userÚ
owner_namer¤   Úbot_namerb   rb   rc   Ú_notify_new_botC  s@   €þÿû 
(ø(	ÿþýüû
úþr  r  c                 Ã   s^   �| j |||d�I d H  d}ttdddƒI d H tdddƒI d H gtd	ƒI d H ggd
�}||fS )N)Úpending_tokenÚpending_usernameÚpending_bot_nameuü   Â» <b>ØªÙ… Ø§Ø³ØªÙ„Ø§Ù… Ø§Ù„ØªÙˆÙƒÙ† Ø¨Ù†Ø¬Ø§Ø­ØŒ Ø§Ù„ØªÙˆÙƒÙ† ÙŠØ¹Ù…Ù„ ÙˆØ§Ù„Ø¨ÙˆØª Ù„Ø§ ÙŠØ­ØªÙˆÙŠ Ø¹Ù„Ù‰ ÙˆÙŠØ¨ Ù‡ÙˆÙƒ.</b>

Â» Ø®Ø·ÙˆØ© Ø£Ø®ÙŠØ±Ø©:
Â» Ù…Ù† Ù�Ø¶Ù„Ùƒ ÙŠØ¬Ø¨ ØªØ­Ø¯ÙŠØ¯ Ø§Ù„Ù…Ø·ÙˆØ± Ù„Ù‡Ø°Ø§ Ø§Ù„Ø¨ÙˆØªØŒ Ù…Ù† Ø³ÙŠÙƒÙˆÙ† Ø§Ù„Ù…Ø·ÙˆØ±ØŸÚ
owner_selfú
owner:selfu   ðŸ‘¤ Ø£Ù†Ø§Úowner_otherúowner:otheru   ðŸ‘¥ Ø´Ø®Øµ Ø¢Ø®Ø±r7  r  )rñ  r   r6  r:  )r«  r�   r¤   r  r  Úkbrb   rb   rc   Ú_developer_prompt_payload[  s   €ýÿÿýr!  Ú_managed_seenÚchat_idc              
   Ã   sV  �|j tv rd S t |j ¡ | ¡ I d H  d¡s)| j|dtƒ I d H d�I d H  d S |  |d¡I d H }z| j|j d�I d H }W n  ty^ } zt	 
d|j › d|› �¡ d }W Y d }~nd }~ww |sq|jdtƒ I d H d�I d H  d S t|ƒI d H p…|jp|d	|jpƒ|jpƒd	d
œ}| dd	¡}| d|¡}	t||||	ƒI d H \}
}|j|
d|d�I d H  d S )Nrü  u8   âš ï¸� Ø§Ù†ØªÙ‡Øª Ø§Ù„Ø¬Ù„Ø³Ø©ØŒ Ø§Ø¨Ø¯Ø£ Ù…Ù† Ø¬Ø¯ÙŠØ¯.r  u%   â�³ Ø¬Ø§Ø±ÙŠ ØªØ¬Ù‡ÙŠØ² Ø§Ù„Ø¨ÙˆØª...r�   u5   ØªØ¹Ø°Ù‘Ø± Ø¬Ù„Ø¨ ØªÙˆÙƒÙ† Ø§Ù„Ø¨ÙˆØª Ø§Ù„Ù…Ù�Ø¯Ø§Ø± ú: u7   â�Œ ØªØ¹Ø°Ù‘Ø± Ø§Ù„Ø­ØµÙˆÙ„ Ø¹Ù„Ù‰ ØªÙˆÙƒÙ† Ø§Ù„Ø¨ÙˆØª.rì   ©r¤   rù   r¤   rù   r  rÁ  )rô   r"  rö   rð  r›   Úsend_messagerk  Úget_managed_bot_tokenrž   r²   rn  rê  r£   r¤   rù   r!  )rÖ   r«  Úbot_userr#  Úwait_msgr�   rÃ   r  r¤   r  r  r   rb   rb   rc   Ú_handle_managed_botq  s4   €
€þþr*  c                 Ã   s"   �t ||| jj| jjƒI d H  d S r`   )r*  Úmanaged_bot_createdr(  Úchatrô   )rÇ   r«  rÖ   rb   rb   rc   Úprocess_managed_bot_created‹  s   € r-  Úupdatec                 Ã   sH   �| j sd S | j }|j}t|||j|r|jn| ¡ I d H jƒI d H  d S r`   )rË   r  r*  r(  rô   Úget_me)r.  r«  rÖ   ÚmanagedÚcreatorrb   rb   rc   Úon_managed_bot_update�  s   €þr2  c              	   Ã   s  �| j r| j  d¡r| ¡ I d H  t| ||ƒI d H  d S | j r$| j  ¡ nd}d|vs0t|ƒdk r@| jdtƒ I d H d�I d H  d S |  d¡I d H }t|ƒI d H }|sa|j	dtƒ I d H d�I d H  d S t
|ƒI d H }|r�|j|d	�I d H  |j	d
dttddd�gtdƒI d H ggd�d�I d H  d S | ¡ I d H }| d¡}| jj}	| dd¡}
| d|
¡}tƒ 4 I d H š´}| ttƒ tj|k¡¡I d H }| ¡ }|�r]|jrè|j	dtƒ I d H d�I d H  	 W d   ƒI d H  d S d|_t|ƒ|_|	|_||_|
|_d|_ | !¡ I d H  t"||
ƒI d H }t#||
||	ƒI d H  |�r"d|_ | !¡ I d H  | ¡ I d H  t$|| ||||	ƒI d H  |j	d|
› d|› dt%| › d�dt&|
ƒI d H d�I d H  	 W d   ƒI d H  d S W d   ƒI d H  n1 I d H �snw   Y  t'|||
|ƒI d H \}}|j	|d|d�I d H  d S )Nrt  rì   rú  é   ua   âš ï¸� Ø§Ù„ØªÙˆÙƒÙ† ØºÙŠØ± ØµØ§Ù„Ø­! Ø£Ø±Ø³Ù„ ØªÙˆÙƒÙ†Ø§Ù‹ ØµØ­ÙŠØ­Ø§Ù‹ Ø£Ùˆ Ø§Ø¶ØºØ· Ø¥Ù„ØºØ§Ø¡.r  u.   â�³ Ø¬Ø§Ø±ÙŠ Ø§Ù„ØªØ­Ù‚Ù‚ Ù…Ù† Ø§Ù„ØªÙˆÙƒÙ†...õ!   â�Œ Ø§Ù„ØªÙˆÙƒÙ† ØºÙŠØ± ØµØ­ÙŠØ­!)r  uÝ   âš ï¸� <b>ØªÙ†Ø¨ÙŠÙ‡!</b>

Ù‡Ø°Ø§ Ø§Ù„Ø¨ÙˆØª ÙŠØ¹Ù…Ù„ Ø­Ø§Ù„ÙŠØ§Ù‹ Ù�ÙŠ Ø®Ø¯Ù…Ø© Ø£Ø®Ø±Ù‰.
Ø¥Ø°Ø§ Ù‚Ù…Øª Ø¨Ø¥Ø¶Ø§Ù�ØªÙ‡ Ù„Ù„Ù…ØµÙ†Ø¹ Ø³ÙŠØªÙˆÙ‚Ù� Ø¹Ù† Ø§Ù„Ø¹Ù…Ù„ Ù�ÙŠ ØªÙ„Ùƒ Ø§Ù„Ø®Ø¯Ù…Ø©.

Ù‡Ù„ ØªØ±ÙŠØ¯ Ø§Ù„Ù…ØªØ§Ø¨Ø¹Ø©ØŸr  u   Ù†Ø¹Ù…ØŒ Ù…ØªØ§Ø¨Ø¹Ø©Úconfirm_tokenr  r7  r  rÁ  rü  r¤   rù   õ3   âš ï¸� Ù‡Ø°Ø§ Ø§Ù„ØªÙˆÙƒÙ† Ù…Ø³Ø¬Ù‘Ù„ Ù…Ø³Ø¨Ù‚Ø§Ù‹!TFõ]   ðŸŽ‰ <b>ØªÙ… Ø¥Ù†Ø´Ø§Ø¡ Ø§Ù„Ø¨ÙˆØª Ø§Ù„Ø®Ø§Øµ Ø¨Ùƒ Ø¨Ù†Ø¬Ø§Ø­!</b>

ðŸ¤– <b>Ø§Ù„Ø¨ÙˆØª:</b> @õ!   
ðŸ”‘ <b>Ø§Ù„ØªÙˆÙƒÙ†:</b> <code>õ    </code>
ðŸ“¦ <b>Ø§Ù„Ù†ÙˆØ¹:</b> õA   

Ø§Ø¶ØºØ· Ù‡Ù†Ø§ Ù„Ù„Ø¯Ø®ÙˆÙ„ Ø¥Ù„Ù‰ Ø§Ù„Ø¨ÙˆØª Ø§Ù„Ø®Ø§Øµ Ø¨Ùƒ:)(r  Ú
startswithrÍ  rç  ÚstriprÎ  r  rk  r£   rê  r  rñ  r   r   r:  rð  r›   rÐ  rô   r*   rò   r   rò  ró   r�   rõ   rÿ   rJ   r¥   r¦   r  r¤   Úwebhook_setÚcommitrÔ   rÄ   r  r    r  r!  )rÇ   r«  rÖ   r�   r)  r  Úexisting_webhookr¢   r  rŒ   r¤   r  r    ÚexistingÚexÚ
webhook_okr  r   rb   rb   rc   Úprocess_bot_token›  sŽ   €þú
 ú
ÿþýù	á*ý!rC  Ú
is_paid_crc
                 Ã   s  �|pd}t ƒ I d H }
tƒ 4 I d H šS}t|||t|ƒ|d|d�}| |¡ | ¡ I d H  |j}|r[t||
jƒI d H  ddl	m
} t	 ¡ }ddlm} | ||||||dd� dd	�¡ W d   ƒI d H  n1 I d H skw   Y  t||ƒI d H }t||||ƒI d H  |rºtƒ 4 I d H š$}| ttƒ tj|k¡¡I d H }| ¡ }|r¥d|_W d   ƒI d H  n1 I d H sµw   Y  |	 ¡ I d H  t|ƒI d H pÌ||d
œ}t| |||||ƒI d H  |jd|› d|› dt| › d�||kr÷dt|ƒI d H › d�nd d dt|ƒI d H d�I d H  d S )NFT)r�   r¤   r  r¥   r¦   rÿ   Úis_paidr   r¼  )rV   r3  ©Údays)r‚  rŒ   Ú
started_atÚ
expires_atrÿ   r%  r7  r8  r9  z

u   ðŸ‘¤ <b>Ø§Ù„Ù…Ø·ÙˆØ±:</b> @rì   u?   Ø§Ø¶ØºØ· Ù‡Ù†Ø§ Ù„Ù„Ø¯Ø®ÙˆÙ„ Ø¥Ù„Ù‰ Ø§Ù„Ø¨ÙˆØª Ø§Ù„Ø®Ø§Øµ Ø¨Ùƒ:r  rÁ  )r0   r*   rò  rJ   rö   Úflushrô   r3   Úbot_price_usdr   r   r   Úinformation.modelsrV   rÔ   rÄ   rò   r   ró   r�   rõ   r=  rÍ  r£   r  rê  r    Ú_get_username_by_idr  )rÖ   rŒ   r�   r¤   r  r  r¦   rD  Ú
target_msgr«  Úpsr    Únew_botÚ
new_bot_idr   ÚnowrV   rB  r—   r+  r  rb   rb   rc   Ú_do_create_boté  sr   €ù
	û€(î (üÿþý üûørS  c              	   Ã   s    �t ƒ 4 I d H š;}ddlm} | t|ƒ |j| k¡¡I d H }| ¡ }|r5|jr5|jW  d   ƒI d H  S t	| ƒW  d   ƒI d H  S 1 I d H sIw   Y  d S )Nr   ©rK   )
r*   rL  rK   rò   r   ró   rô   rõ   r¤   rú   )rŒ   r    Ú	UserModelÚresÚurb   rb   rc   rM  #  s   € 
û0úrM  r  c           
      Ã   sÂ   �|  ¡ I d H }| d¡p| d¡}| d¡}| d¡}| d¡}| dd¡}| jj}	|s@| jddd	�I d H  | ¡ I d H  d S | ¡ I d H  t||	|||||	|| j|ƒ
I d H  |  ¡ I d H  d S )
Nr  r  r  rü  rî  Fu1   Ø§Ù†ØªÙ‡Øª Ø§Ù„Ø¬Ù„Ø³Ø©ØŒ Ø§Ø¨Ø¯Ø£ Ù…Ù† Ø¬Ø¯ÙŠØ¯.Trè  )rð  r›   rÐ  rô   r  rÍ  rS  rÇ   )
r;  r«  rÖ   r¢   r�   r¤   r  r  rD  rŒ   rb   rb   rc   Úcb_owner_self-  s"   €




þrX  r  c                 Ã   sP   �|  tj¡I d H  | jjdttdƒI d H ggd�d�I d H  |  ¡ I d H  d S )NuS   Â» Ø­Ø³Ù†Ø§Ù‹ØŒ Ø£Ø±Ø³Ù„ ID Ø§Ù„Ù…Ø·ÙˆØ± Ø§Ù„Ø¬Ø¯ÙŠØ¯ Ù„Ù‡Ø°Ø§ Ø§Ù„Ø¨ÙˆØª Ø§Ù„Ø¢Ù†:r7  r  r  )rÿ  rŠ   r‹   rÇ   rê  r   r:  r  ©r;  r«  rb   rb   rc   Úcb_owner_otherA  s   €ÿþrZ  c                 Ã   s‚  �| j r| j  d¡r| ¡ I d H  t| ||ƒI d H  d S z	t| j  ¡ ƒ}W n ty7   |  d¡I d H  Y d S w tƒ 4 I d H š%}ddl	m
} | t|ƒ |j|k¡¡I d H }| ¡ }W d   ƒI d H  n1 I d H sjw   Y  |s{|  d¡I d H  d S | ¡ I d H }| d¡}	| d¡}
| d¡}| d	¡}| d
d¡}| jj}| ¡ I d H  |  d¡I d H }t|||	|
||||||ƒ
I d H  d S )Nrt  u0   âš ï¸� Ø£Ø±Ø³Ù„ ID ØµØ­ÙŠØ­ (Ø£Ø±Ù‚Ø§Ù… Ù�Ù‚Ø·).r   rT  u›   âš ï¸� Ù‡Ø°Ø§ Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù… ØºÙŠØ± Ù…Ø³Ø¬Ù„ Ù�ÙŠ Ø§Ù„Ù…ØµÙ†Ø¹.
Ø§Ø·Ù„Ø¨ Ù…Ù†Ù‡ Ø§Ù„ØªÙˆØ§ØµÙ„ Ù…Ø¹ Ø§Ù„Ù…ØµÙ†Ø¹ Ø£ÙˆÙ„Ø§Ù‹ Ø«Ù… Ø£Ø¹Ø¯ Ø§Ù„Ù…Ø­Ø§ÙˆÙ„Ø©.r  r  r  rü  rî  Fõ%   â�³ Ø¬Ø§Ø±ÙŠ Ø¥Ù†Ø´Ø§Ø¡ Ø§Ù„Ø¨ÙˆØª...)r  r;  rÍ  rç  Úintr<  rž   r  r*   rL  rK   rò   r   ró   rô   rõ   rð  r›   rÐ  rS  )rÇ   r«  rÖ   r¦   r    rU  rV  r  r¢   r�   r¤   r  r  rD  rŒ   r)  rb   rb   rc   Úprocess_custom_ownerM  sD   €þ 
(ý
ÿ





þr]  r5  c                 Ã   s´  �|  ¡ I d H }| d¡}| d¡}| jj}|r|s-| jddd�I d H  | ¡ I d H  d S | j d¡I d H }t|ƒI d H }|sO|jdt	ƒ I d H d�I d H  d S | d	d
¡}	| d|	¡}
t
ƒ 4 I d H šº}| ttƒ tj|k¡¡I d H }| ¡ }|�r|jr—|jdt	ƒ I d H d�I d H  	 W d   ƒI d H  d S d|_t|ƒ|_||_|
|_|	|_d|_| ¡ I d H  t||	ƒI d H }t||	||ƒI d H  |rÐd|_| ¡ I d H  | ¡ I d H  t|| ||||ƒI d H  |jd|	› d|› dt| › d�dt|	ƒI d H d�I d H  |  ¡ I d H  	 W d   ƒI d H  d S W d   ƒI d H  n1 I d H �s#w   Y  t
ƒ 4 I d H š}| t||	|
t|ƒ|dd�¡ W d   ƒI d H  n1 I d H �sPw   Y  t||	ƒI d H }t||	||ƒI d H  |�r¢t
ƒ 4 I d H š%}| ttƒ tj|k¡¡I d H }| ¡ }|�rŒd|_W d   ƒI d H  n1 I d H �s�w   Y  | ¡ I d H  t|| ||||ƒI d H  |jd|	› d|› dt| › d�dt|	ƒI d H d�I d H  |  ¡ I d H  d S )Nr  rü  uH   âš ï¸� Ø§Ù†ØªÙ‡Øª Ø§Ù„Ø¬Ù„Ø³Ø©ØŒ ÙŠØ±Ø¬Ù‰ Ø§Ù„Ù…Ø­Ø§ÙˆÙ„Ø© Ù…Ø¬Ø¯Ø¯Ø§Ù‹.Trè  r[  r4  r  r¤   rì   rù   r6  Fr7  r8  r9  r:  r  rÁ  )r�   r¤   r  r¥   r¦   rÿ   )rð  r›   rÐ  rô   r  rÍ  rÇ   rê  r£   rk  r*   rò   r   rò  ró   r�   rõ   rÿ   rJ   r¥   r¦   r  r¤   r=  r>  rÔ   rÄ   r  r    r  rö   )r;  r«  rÖ   r¢   r�   r  rŒ   r)  r  r¤   r  r    r@  rA  rB  r—   r+  rb   rb   rc   Úcb_confirm_tokenq  s®   €

 ú
ÿþýù	Þ*ý$
ú*ÿ
 *üÿþýù	r^  rH  c              	   Ã   s@  �t || jj| ƒI d H sd S | jj}tƒ 4 I d H š%}| ttƒ tj|ktj	dk¡¡I d H }| 
¡  ¡ }W d   ƒI d H  n1 I d H sDw   Y  |sr| jjdttdddƒI d H gtdƒI d H ggd�d�I d H  |  ¡ I d H  d S tƒ I d H }d	d
„ |D ƒ}| jjdt|ƒ› d�dt||ƒI d H d�I d H  |  ¡ I d H  d S )NTu9   ðŸ“­ Ù„Ø§ ÙŠÙˆØ¬Ø¯ Ù„Ø¯ÙŠÙƒ Ø£ÙŠ Ø¨ÙˆØªØ§Øª Ø­Ø§Ù„ÙŠØ§Ù‹.rE  rF  u   Ø¥Ù†Ø´Ø§Ø¡ Ø¨ÙˆØªr7  r  r  c                 S   r&  rb   r'  r)  rb   rb   rc   r,  ä  r-  zcb_my_bots.<locals>.<dictcomp>u   ðŸ¤– <b>Ø¨ÙˆØªØ§ØªÙƒ (z):</b>r  rÁ  )r"  rÐ  rô   r*   rò   r   rò  ró   r¦   rÿ   ró  rô  rÇ   rê  r   r6  r:  r  r+   rÎ  r�  )r;  rÖ   rŒ   r    r—   rz  r¯   r5  rb   rb   rc   Ú
cb_my_botsÌ  s8   €
ÿ(üþþýr_  r„  c              	   Ã   sþ   �t | j d¡d ƒ}| jj}tƒ 4 I d H š#}| ttƒ 	tj|ktj
|k¡¡I d H }| ¡ }W d   ƒI d H  n1 I d H s?w   Y  |sR| jddd�I d H  d S | jjd|j› d�dttd	d
|› �d�gtdƒI d H ggd�d�I d H  |  ¡ I d H  d S )Nrú  rû  õ$   âš ï¸� Ø§Ù„Ø¨ÙˆØª ØºÙŠØ± Ù…ÙˆØ¬ÙˆØ¯!Trè  u9   âš ï¸� Ù‡Ù„ Ø£Ù†Øª Ù…ØªØ£ÙƒØ¯ Ù…Ù† Ø­Ø°Ù� Ø§Ù„Ø¨ÙˆØª <b>@u   </b>ØŸr  u   Ù†Ø¹Ù… Ù…ØªØ£ÙƒØ¯úbot:delete_confirm:r  rH  r  rÁ  )r\  r¢   rÏ  rÐ  rô   r*   rò   r   rò  ró   r¦   rõ   r  rÇ   rê  r¤   r   r   r:  )r;  r‚  rŒ   r    r—   Úbot_recrb   rb   rc   Úcb_delete_askí  s*   €
ÿ
(üþýrc  ra  c              	   Ã   sn  �t | j d¡d ƒ}| jj}tƒ 4 I d H š#}| ttƒ 	tj|ktj
|k¡¡I d H }| ¡ }W d   ƒI d H  n1 I d H s?w   Y  |sR| jddd�I d H  d S t|jƒI d H  tƒ 4 I d H š$}| ttƒ 	tj|k¡¡I d H }| ¡ }|r{d|_W d   ƒI d H  n1 I d H s‹w   Y  | jjdttdd	d
ƒI d H gtdƒI d H ggd�d�I d H  |  ¡ I d H  d S )Nrú  rû  r`  Trè  Fu&   âœ… ØªÙ… Ø­Ø°Ù� Ø§Ù„Ø¨ÙˆØª Ø¨Ù†Ø¬Ø§Ø­.rG  rH  u   Ø¨ÙˆØªØ§ØªÙŠr7  r  r  )r\  r¢   rÏ  rÐ  rô   r*   rò   r   rò  ró   r¦   rõ   r  rÕ   r�   rÿ   rÇ   rê  r   r6  r:  )r;  r‚  rŒ   r    r—   rb  r+  rb   rb   rc   Úcb_delete_confirm  s6   €
ÿ
(ü (üþþrd  r}  c              	   Ã   s  �t | j d¡d ƒ}| jj}tƒ 4 I d H š#}| ttƒ 	tj|ktj
|k¡¡I d H }| ¡ }W d   ƒI d H  n1 I d H s?w   Y  |sR| jddd�I d H  d S tƒ I d H }dd„ |D ƒ}| jjd|j› d	t |jj|jj¡› �d
t||ƒI d H d�I d H  |  ¡ I d H  d S )Nrú  rû  r`  Trè  c                 S   r&  rb   r'  r)  rb   rb   rc   r,  0  r-  z!cb_manage_bot.<locals>.<dictcomp>u!   âš™ï¸� <b>Ø¥Ø¯Ø§Ø±Ø© Ø§Ù„Ø¨ÙˆØª @u   </b>
ðŸ“¦ Ø§Ù„Ù†ÙˆØ¹: r  rÁ  )r\  r¢   rÏ  rÐ  rô   r*   rò   r   rò  ró   r¦   rõ   r  r+   rÇ   rê  r¤   r    r›   r¥   Úvaluer’  )r;  r‚  rŒ   r    r—   rb  r¯   r5  rb   rb   rc   Úcb_manage_bot   s,   €
ÿ
(ü
ÿürf  rŠ  c                 Ã   ór   �t | j d¡d ƒ}|j|d�I d H  | tj¡I d H  | jjdt	d|› �ƒI d H d�I d H  |  
¡ I d H  d S )Nrú  rû  ©Úediting_bot_idu3   âœ�ï¸� Ø£Ø±Ø³Ù„ Ø§Ù„Ø§Ø³Ù… Ø§Ù„Ø¬Ø¯ÙŠØ¯ Ù„Ù„Ø¨ÙˆØª:r}  r  )r\  r¢   rÏ  rñ  rÿ  r…   r†   rÇ   rê  rk  r  ©r;  r«  r‚  rb   rb   rc   Úcb_edit_name:  ó   €þrk  c              
   Ã   s  �| j r| j  d¡r| ¡ I d H  t| ||ƒI d H  d S | j r$| j  ¡ nd}|r.t|ƒdk r8|  d¡I d H  d S | ¡ I d H }| d¡}t	ƒ 4 I d H š%}| 
ttƒ tj|ktj| jjk¡¡I d H }| ¡ }W d   ƒI d H  n1 I d H svw   Y  |sŽ| ¡ I d H  |  d¡I d H  d S zØt ¡ 4 I d H š?}	|	jd|j› d�d	|itjd
d�d�4 I d H š}
|
 ¡ I d H }W d   ƒI d H  n1 I d H sÇw   Y  W d   ƒI d H  n1 I d H sÜw   Y  | d¡�rNt	ƒ 4 I d H š%}| 
ttƒ tj|k¡¡I d H }| ¡ }|�r	||_W d   ƒI d H  n1 I d H �sw   Y  | ¡ I d H  | jd|› d�dttdd|› �dƒI d H gtdƒI d H ggd�d�I d H  W d S |  d| dd¡› �¡I d H  | ¡ I d H  W d S  t�yŒ } z|  d|› �¡I d H  | ¡ I d H  W Y d }~d S d }~ww )Nrt  rì   rû  u$   âš ï¸� Ø§Ù„Ø§Ø³Ù… Ù‚ØµÙŠØ± Ø¬Ø¯Ø§Ù‹!ri  r`  r�   z
/setMyNamer  r‘   r’   rÐ   r–   u*   âœ… ØªÙ… ØªØºÙŠÙŠØ± Ø§Ù„Ø§Ø³Ù… Ø¥Ù„Ù‰: <b>rð   r  r|  r}  õ   Ø¥Ø¯Ø§Ø±Ø© Ø§Ù„Ø¨ÙˆØªr7  r  rÁ  õ   â�Œ Ù�Ø´Ù„: Údescriptionõ   Ø®Ø·Ø£õ   â�Œ Ø®Ø·Ø£: )r  r;  rÍ  rç  r<  rÎ  r  rð  r›   r*   rò   r   rò  ró   rô   r¦   rÐ  rõ   r™   rš   rÑ   r�   rœ   r�   r  r   r6  r:  rž   )rÇ   r«  rÖ   Únew_namer¢   r‚  r    r—   rb  Úhttpr¡   Ú
api_resultr+  rÃ   rb   rb   rc   Úprocess_new_nameF  sn   €

ÿ
(ü
ý*û(ÿ *ü
þý	€þru  rˆ  c                 Ã   rg  )Nrú  rû  rh  u5   ðŸ–¼ Ø£Ø±Ø³Ù„ Ø§Ù„ØµÙˆØ±Ø© Ø§Ù„Ø¬Ø¯ÙŠØ¯Ø© Ù„Ù„Ø¨ÙˆØª:r}  r  )r\  r¢   rÏ  rñ  rÿ  r…   r‡   rÇ   rê  rk  r  rj  rb   rb   rc   Úcb_edit_photoy  rl  rv  c              
   Ã   s  �| j r| j  d¡r| ¡ I d H  t| ||ƒI d H  d S | ¡ I d H }| d¡}tƒ 4 I d H š%}| tt	ƒ 
t	j|kt	j| jjk¡¡I d H }| ¡ }W d   ƒI d H  n1 I d H sZw   Y  |sr| ¡ I d H  |  d¡I d H  d S | jd }ttd�}	zç|	 |j¡I d H }
dt› d|
j› �}t ¡ 4 I d H šp}| |¡4 I d H š}| ¡ I d H }W d   ƒI d H  n1 I d H s¹w   Y  t ¡ }|jd|dd	d
� |jd|j› d�|tjdd�d�4 I d H š}| ¡ I d H }W d   ƒI d H  n1 I d H søw   Y  W d   ƒI d H  n1 I d H �sw   Y  |	j  ¡ I d H  | d¡�rK| ¡ I d H  | jdt!t"dd|› �dƒI d H gt#dƒI d H ggd�d�I d H  W d S |  d| dd¡› �¡I d H  | ¡ I d H  W d S  t$�y‰ } z|  d|› �¡I d H  | ¡ I d H  W Y d }~d S d }~ww )Nrt  ri  r`  éÿÿÿÿ©r�   z!https://api.telegram.org/file/botÚphotoz	photo.jpgz
image/jpeg)ÚfilenameÚcontent_typer�   z/setMyProfilePhotor3  r’   )r¢   r•   r–   u3   âœ… ØªÙ… ØªØºÙŠÙŠØ± ØµÙˆØ±Ø© Ø§Ù„Ø¨ÙˆØª Ø¨Ù†Ø¬Ø§Ø­!r|  r}  rm  r7  r  r  rn  ro  rp  rq  )%r  r;  rÍ  rç  rð  r›   r*   rò   r   rò  ró   rô   r¦   rÐ  rõ   r  ry  r   r   Úget_fileÚfile_idÚ	file_pathr™   rš   ÚreadÚFormDataÚ	add_fieldrÑ   r�   rœ   r�   r    Úcloser   r6  r:  rž   )rÇ   r«  rÖ   r¢   r‚  r    r—   rb  ry  Úfactory_botÚfileÚfile_urlrs  ÚprÚphoto_bytesÚformr¡   rt  rÃ   rb   rb   rc   Úprocess_new_photo…  sj   €

ÿ
(ü

(ÿþ*ü*û
þþ€þr‰  c                 Ã   s   �|   d¡I d H  d S )Nu+   âš ï¸� ÙŠØ±Ø¬Ù‰ Ø¥Ø±Ø³Ø§Ù„ ØµÙˆØ±Ø© Ù�Ù‚Ø·!©r  )rÇ   rb   rb   rc   Úprocess_new_photo_wrong·  s   €r‹  rŒ  c                 Ã   sP   �t | j d¡d ƒ}| jjdtd|› �d�I d H d�I d H  |  ¡ I d H  d S )Nrú  rû  u1   ðŸ”„ Ø§Ø®ØªØ± Ø§Ù„Ù†ÙˆØ¹ Ø§Ù„Ø¬Ø¯ÙŠØ¯ Ù„Ù„Ø¨ÙˆØª:úchangetype:)r]  r  )r\  r¢   rÏ  rÇ   rê  re  r  )r;  r‚  rb   rb   rc   Úcb_change_type»  s   €þr�  rŒ  c           	   	   Ã   sn  �| j  d¡}t|d ƒ}|d }|tvr!| jddd�I d H  d S tƒ 4 I d H šH}| ttƒ 	tj
|ktj| jj
k¡¡I d H }| ¡ }|s[| jddd�I d H  	 W d   ƒI d H  d S t|ƒ|_|j}|j}W d   ƒI d H  n1 I d H svw   Y  t|j|||ƒI d H  | jjdt| › d	�d
ttdd|› �dƒI d H gtdƒI d H ggd�d�I d H  |  ¡ I d H  d S )Nrú  rë   é   u   Ù†ÙˆØ¹ ØºÙŠØ± ØµØ§Ù„Ø­!Trè  r`  u1   âœ… ØªÙ… ØªØºÙŠÙŠØ± Ù†ÙˆØ¹ Ø§Ù„Ø¨ÙˆØª Ø¥Ù„Ù‰: <b>rð   r  r|  r}  rm  r7  r  rÁ  )r¢   rÏ  r\  r    r  r*   rò   r   rò  ró   rô   r¦   rÐ  rõ   rJ   r¥   r¤   rÄ   r�   rÇ   rê  r   r6  r:  )	r;  Úpartsr‚  r  r    r—   rb  r¤   r¦   rb   rb   rc   Úcb_change_type_confirmÅ  s<   €
ÿù
(öþýr�  r†  c                 Ã   st   �t | j d¡d ƒ}|j|d�I d H  | tj¡I d H  | jjddt	d|› �ƒI d H d�I d H  |  
¡ I d H  d S )Nrú  rû  )Útransferring_bot_idu§   ðŸ“¤ <b>Ù†Ù‚Ù„ Ø§Ù„Ø¨ÙˆØª</b>

Ø£Ø±Ø³Ù„ <b>ID</b> Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù… Ø§Ù„Ù…Ø³ØªÙ‚Ø¨Ù„:
<i>ÙŠØ¬Ø¨ Ø£Ù† ÙŠÙƒÙˆÙ† Ù‚Ø¯ ØªÙˆØ§ØµÙ„ Ù…Ø¹ Ø¨ÙˆØª Ø§Ù„Ù…ØµÙ†Ø¹ Ù…Ø³Ø¨Ù‚Ø§Ù‹.</i>r  r}  rÁ  )r\  r¢   rÏ  rñ  rÿ  rƒ   r„   rÇ   rê  rk  r  rj  rb   rb   rc   Úcb_transfer_startã  s   €ûr’  c              
   Ã   sð  �| j r| j  d¡r| ¡ I d H  t| ||ƒI d H  d S z	t| j  ¡ ƒ}W n ttfy9   |  d¡I d H  Y d S w | j	j
}||krL|  d¡I d H  d S | ¡ I d H }| d¡}tƒ 4 I d H š#}| ttƒ tj
|ktj|k¡¡I d H }| ¡ }	W d   ƒI d H  n1 I d H sˆw   Y  |	s | ¡ I d H  |  d¡I d H  d S t|ƒI d H }
|
s³|  d¡I d H  d S tƒ 4 I d H š}t|||tjd�}| |¡ W d   ƒI d H  n1 I d H sÙw   Y  tƒ 4 I d H š.}| ttƒ tj|ktj|ktj|ktjtjk¡¡I d H }| ¡  ¡ }W d   ƒI d H  n1 I d H �sw   Y  | j	j�r+d| j	j› �nd	|› �}z|j |d
|› d|	j› d�dt!|j
ƒI d H d�I d H  W n t"�yf   |  d¡I d H  | ¡ I d H  Y d S w | ¡ I d H  |  d¡I d H  d S )Nrt  u%   âš ï¸� Ø£Ø±Ø³Ù„ ID Ø±Ù‚Ù…ÙŠ ØµØ­ÙŠØ­!u4   âš ï¸� Ù„Ø§ ÙŠÙ…ÙƒÙ†Ùƒ Ù†Ù‚Ù„ Ø§Ù„Ø¨ÙˆØª Ù„Ù†Ù�Ø³Ùƒ!r‘  r`  uM   âš ï¸� Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù… Ø§Ù„Ù…Ø³ØªÙ‚Ø¨Ù„ ØºÙŠØ± Ù…Ø³Ø¬Ù‘Ù„ Ù�ÙŠ Ø§Ù„Ù…ØµÙ†Ø¹!)r‚  Ú	sender_idÚreceiver_idrÞ   rí   zID:u<   ðŸ“¨ Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù…ØŒ ÙŠØ±ÙŠØ¯ Ø§Ù„Ù…Ø·ÙˆØ± <b>u   </b> Ù†Ù‚Ù„ Ø§Ù„Ø¨ÙˆØª <b>@u(   </b> Ø¥Ù„ÙŠÙƒØŒ Ù‡Ù„ Ø£Ù†Øª Ù…ÙˆØ§Ù�Ù‚ØŸr  rÁ  uG   â�Œ ØªØ¹Ø°Ù‘Ø± Ø¥Ø±Ø³Ø§Ù„ Ø±Ø³Ø§Ù„Ø© Ù„Ù„Ù…Ø³ØªØ®Ø¯Ù… Ø§Ù„Ù…Ø³ØªÙ‚Ø¨Ù„.u^   âœ… ØªÙ… Ø¥Ø±Ø³Ø§Ù„ Ø·Ù„Ø¨ Ø§Ù„Ù†Ù‚Ù„. ÙŠØ¬Ø¨ Ø§Ù„Ø§Ù†ØªØ¸Ø§Ø± Ø­ØªÙ‰ ØªØªÙ… Ø§Ù„Ù…ÙˆØ§Ù�Ù‚Ø©.)#r  r;  rÍ  rç  r\  r<  Ú
ValueErrorÚAttributeErrorr  rÐ  rô   rð  r›   r*   rò   r   rò  ró   r¦   rõ   r$   rH   rI   Úpendingrö   r‚  r“  r”  rÞ   ró  Úfirstr¤   r&  rš  rž   )rÇ   r«  rÖ   r”  r“  r¢   r‚  r    r—   rb  ÚreceiverÚtransferÚsender_usernamerb   rb   rc   Úprocess_transfer_receiverò  s€   €þ

ÿ
(üþ(ûþ
ÿ*ù"ÿûýrœ  r•  c           
   	   Ã   s¬  �t | j d¡d ƒ}tƒ 4 I d H š*}| ttƒ tj|ktj	| j
jktjtjk¡¡I d H }| ¡ }W d   ƒI d H  n1 I d H sBw   Y  |sU| jddd�I d H  d S tƒ 4 I d H š;}| ttƒ tj|k¡¡I d H }| ¡ }tj|_|j}| ttƒ tj|jk¡¡I d H }| ¡ }	W d   ƒI d H  n1 I d H s�w   Y  | j d¡I d H  z|j|d|	j› d�d	t|ƒI d H d
�I d H  W n	 tyÌ   Y nw |  ¡ I d H  d S )Nrú  rû  õ$   âš ï¸� Ø§Ù„Ø·Ù„Ø¨ ØºÙŠØ± Ù…ÙˆØ¬ÙˆØ¯!Trè  uX   âœ… Ø±Ø§Ø¦Ø¹! Ø¨Ø§Ù†ØªØ¸Ø§Ø± ØªØ£ÙƒÙŠØ¯ Ù…Ø·ÙˆØ± Ø§Ù„Ø¨ÙˆØª Ù„Ø¹Ù…Ù„ÙŠØ© Ø§Ù„ØªØ­ÙˆÙŠÙ„.u^   âœ… Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù… Ø§Ù„Ù…Ø³ØªÙ‚Ø¨Ù„ ÙˆØ§Ù�Ù‚. ÙŠØ±Ø¬Ù‰ ØªØ£ÙƒÙŠØ¯ ØªØ­ÙˆÙŠÙ„ Ø§Ù„Ø¨ÙˆØª <b>@z</b>:r  rÁ  )r\  r¢   rÏ  r*   rò   r   rH   ró   rô   r”  rÐ  rÞ   rI   r—  rõ   r  Ú
scalar_oneÚwaiting_confirmr“  rò  r‚  rÇ   rê  r&  r¤   r   rž   )
r;  rÖ   r“  r    r—   rš  Útr“  Úbrrb  rb   rb   rc   Úcb_transfer_accept/  sF   €
ý
ÿ
(ø	 "
(úüÿr¢  r—  c              	   Ã   ó^  �t | j d¡d ƒ}tƒ 4 I d H š%}| ttƒ tj|ktj	| j
jk¡¡I d H }| ¡ }W d   ƒI d H  n1 I d H s=w   Y  |sP| jddd�I d H  d S tƒ 4 I d H š&}| ttƒ tj|k¡¡I d H }| ¡ }tj|_|j}W d   ƒI d H  n1 I d H sƒw   Y  | j d¡I d H  z| |d¡I d H  W n	 ty¥   Y nw |  ¡ I d H  d S )Nrú  rû  r�  Trè  u"   â�Œ ØªÙ… Ø±Ù�Ø¶ Ø·Ù„Ø¨ Ø§Ù„Ù†Ù‚Ù„.uF   â�Œ Ø±Ù�Ø¶ Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù… Ø§Ù„Ù…Ø³ØªÙ‚Ø¨Ù„ Ø·Ù„Ø¨ Ù†Ù‚Ù„ Ø§Ù„Ø¨ÙˆØª.)r\  r¢   rÏ  r*   rò   r   rH   ró   rô   r”  rÐ  rõ   r  rž  rI   ÚrejectedrÞ   r“  rÇ   rê  r&  rž   )r;  rÖ   r“  r    r—   rš  r   r“  rb   rb   rc   Úcb_transfer_rejectR  ó0   €
ÿ
(ü (üÿr¥  rœ  c           
   	   Ã   s¸  �t | j d¡d ƒ}tƒ 4 I d H š*}| ttƒ tj|ktj	| j
jktjtjk¡¡I d H }| ¡ }W d   ƒI d H  n1 I d H sBw   Y  |sU| jddd�I d H  d S tƒ 4 I d H š>}| ttƒ tj|k¡¡I d H }| ¡ }|j}tj|_| ttƒ tj|jk¡¡I d H }| ¡ }	||	_W d   ƒI d H  n1 I d H s w   Y  | jjd|	j› d�ddd	�I d H  z|j|d
|	j› d�ddd	�I d H  W n	 tyÒ   Y nw |  ¡ I d H  d S )Nrú  rû  r�  Trè  u   âœ… ØªÙ… Ù†Ù‚Ù„ Ø§Ù„Ø¨ÙˆØª <b>@u   </b> Ø¨Ù†Ø¬Ø§Ø­!r  r  u    ðŸŽ‰ ØªÙ… Ù†Ù‚Ù„ Ø§Ù„Ø¨ÙˆØª <b>@u   </b> Ø¥Ù„ÙŠÙƒ!)r\  r¢   rÏ  r*   rò   r   rH   ró   rô   r“  rÐ  rÞ   rI   rŸ  rõ   r  rž  r”  Ú	completedrò  r‚  r¦   rÇ   rê  r¤   r&  rž   )
r;  rÖ   r“  r    r—   rš  r   r”  r¡  rb  rb   rb   rc   Úcb_transfer_confirm_actionj  s>   €
ý
ÿ
(ø	 "(ù"&ÿr¨  r�  c              	   Ã   r£  )Nrú  rû  r�  Trè  u*   â�Œ ØªÙ… Ø¥Ù„ØºØ§Ø¡ Ø¹Ù…Ù„ÙŠØ© Ø§Ù„Ù†Ù‚Ù„.uB   â�Œ Ù‚Ø§Ù… Ø§Ù„Ù…Ø·ÙˆØ± Ø¨Ø¥Ù„ØºØ§Ø¡ Ø¹Ù…Ù„ÙŠØ© Ù†Ù‚Ù„ Ø§Ù„Ø¨ÙˆØª.)r\  r¢   rÏ  r*   rò   r   rH   ró   rô   r“  rÐ  rõ   r  rž  rI   Ú	cancelledrÞ   r”  rÇ   rê  r&  rž   )r;  rÖ   r“  r    r—   rš  r   r”  rb   rb   rc   Úcb_transfer_cancel‰  r¦  rª  rJ  c                 Ã   sL   �t ƒ I d H }| jj|dttdƒI d H ggd�d�I d H  |  ¡ I d H  d S )Nr  r7  r  rÁ  )r&   rÇ   rê  r   r:  r  )r;  r  rb   rb   rc   Úcb_help¡  s   €ÿýr«  Úcentsc                 C   s*   | d dkr| d › d�S | d d›d�S )Néd   r   ú$z.2frb   )r¬  rb   rb   rc   rÒ  ­  s   *rÒ  c                   Ã   sZ   �t tdddƒI d H gtdddƒI d H tddd	ƒI d H gtd
dd�gtdƒI d H ggd�S )Nr°  r±  u   Ø¥Ø¶Ø§Ù�Ø© Ø±ØµÙŠØ¯ ðŸ’°r³  r´  rµ  r¶  r·  r¸  r¹  rº  r
  r7  r  )r   r6  r   r:  rb   rb   rb   rc   Ú_subscription_menu_kb±  s   €ÿûr¯  c                 Ã   s”   �t | jjƒI d H }| jjdt|ƒ› d�dttdt|ƒ› �dd�gtddd�td	d
d�gtddd�gtddd�gtdƒI d H ggd�d�I d H  d S )Nr­  rð   r  r®  r¯  r  r²  r±  rµ  r´  r¸  r·  r¹  rº  r
  r7  r  rÁ  )	r1   rÐ  rô   rÇ   rê  rÒ  r   r   r:  )r;  rÝ  rb   rb   rc   Ú_show_subscription_menu»  s   €

ÿúýr°  rN  c                 Ã   s0   �|  ¡ I d H  t| ƒI d H  |  ¡ I d H  d S r`   )rÍ  r°  r  rY  rb   rb   rc   Úcb_subscriptionÊ  s   €r±  r¯  c                 Ã   s   �|   ¡ I d H  d S r`   rŠ  )r;  rb   rb   rc   Úcb_pay_noopÑ  s   €r²  rL  c                 Ã   s”   �| j j}tƒ I d H }t|ƒI d H }||jk r6| jdt|ƒ› dt|jƒ› d�dd�I d H  t| ƒI d H  d S |jdd�I d H  t	| ||ƒI d H  d S )Nu�   âš ï¸� Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù…ØŒ Ù„ÙŠØ³ Ù„Ø¯ÙŠÙƒ Ø±ØµÙŠØ¯ ÙƒØ§Ù�Ù� Ù„Ø¥Ù†Ø´Ø§Ø¡ Ø¨ÙˆØª Ù…Ø¯Ù�ÙˆØ¹.

Ø±ØµÙŠØ¯Ùƒ Ø§Ù„Ø­Ø§Ù„ÙŠ: u"   
ÙŠØ¬Ø¨ Ø£Ù† ÙŠÙƒÙˆÙ† Ø±ØµÙŠØ¯Ùƒ: u    Ø£Ùˆ Ø£ÙƒØ«Ø±.Trè  rï  )
rÐ  rô   r0   r1   rK  r  rÒ  r°  rñ  rù  )r;  r«  rÖ   rŒ   rO  rÝ  rb   rb   rc   Úcb_paid_createÕ  s   €
þr³  r±  c              
   Ã   s   �ddl m} tƒ I d H }g }|D ]L}zA|jd|j› d�dt|jƒ› d�d|j› d| jj› �d	||j› d
�|jd�gd�I d H }| 	t
|j› dt|jƒ› �|d�g¡ W q ty]   Y qw | 	tdƒI d H g¡ | jjdt|d�d�I d H  |  ¡ I d H  d S )Nr   )ÚLabeledPriceu   Ø´Ø­Ù† u    Ù†Ø¬Ù…Ø© â­�u   Ø¥Ø¶Ø§Ù�Ø© u$    Ø¥Ù„Ù‰ Ø±ØµÙŠØ¯Ùƒ Ù�ÙŠ Ø§Ù„Ù…ØµÙ†Ø¹ztopup:rú  ÚXTRu	    Ù†Ø¬Ù…Ø©)r>  Úamount)Útitlero  ÚpayloadÚcurrencyÚpricesu    â­� = r
  rN  uÓ   Ù…Ø±Ø­Ø¨Ø§Ù‹ Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù… ðŸ¤�
ÙŠÙ…ÙƒÙ†Ùƒ Ø§Ø®ØªÙŠØ§Ø± Ø§Ù„Ù…Ø¨Ù„Øº Ø§Ù„Ø°ÙŠ ØªØ±ØºØ¨ Ù�ÙŠ ØªØ¹Ø¨Ø¦ØªÙ‡ Ø¥Ù„Ù‰ Ø­Ø³Ø§Ø¨Ùƒ Ø¨Ø§Ø³ØªØ®Ø¯Ø§Ù… Ø§Ù„Ù†Ø¬ÙˆÙ… â­�

Ø§Ø®ØªØ± Ø§Ù„Ø¨Ø§Ù‚Ø© Ø§Ù„Ù…Ù†Ø§Ø³Ø¨Ø©:r  r  )rÑ  r´  r/   Úcreate_invoice_linkÚstarsrÒ  Úusdrô   rÐ  rà   r   rž   r:  rÇ   rê  r   r  )r;  rÖ   r´  ÚpackagesrU  Úpkgr  rb   rb   rc   Úcb_topupä  s4   €ûþÿþrÀ  c                 Ã   s   �|j | jdd�I d H  d S )NT)r–   )Úanswer_pre_checkout_queryrô   )ÚqueryrÖ   rb   rb   rc   Úpre_checkoutÿ  s   €rÃ  c           
      ƒ   sô   �| j }|j}|j}| jj}t|ƒI d H rd S z| d¡\}}}t|ƒ‰ W n
 ty/   Y d S w t	ƒ I d H }t
‡ fdd„|D ƒd ƒ}|sFd S t|||j|jƒI d H  t||jƒI d H  t|ƒI d H }	| jdt|jƒ› dt|	ƒ› d�dd�I d H  d S )	Nrú  c                 3   s   � | ]
}|j ˆ kr|V  qd S r`   )rô   )r*  Úp©Úpkg_idrb   rc   Ú	<genexpr>  s   € z(on_successful_payment.<locals>.<genexpr>u;   âœ… <b>ØªÙ… Ø§Ù„Ø¯Ù�Ø¹ Ø¨Ù†Ø¬Ø§Ø­!</b>

ØªÙ… Ø¥Ø¶Ø§Ù�Ø© <b>u4   </b> Ø¥Ù„Ù‰ Ø±ØµÙŠØ¯Ùƒ.
Ø±ØµÙŠØ¯Ùƒ Ø§Ù„Ø­Ø§Ù„ÙŠ: <b>rð   r  ©r  )Úsuccessful_paymentÚtelegram_payment_charge_idÚinvoice_payloadrÐ  rô   r4   rÏ  r\  rž   r/   Únextr5   r¼  r½  r2   r1   r  rÒ  )
rÇ   ÚspÚ	charge_idr¸  rŒ   rë  Ú
pkg_id_strr¾  r¿  rÝ  rb   rÅ  rc   Úon_successful_payment  s0   €ÿþrÐ  r´  c                 Ã   sð   �|  ¡ I d H  | jj}t|ƒI d H }|s3| jjdttdƒI d H ggd�d�I d H  |  ¡ I d H  d S g }|D ]}| 	t
d|j› �d|j› �d�t
dd|j› �d�g¡ q7| 	tdƒI d H g¡ | jjd	d
t|d�d�I d H  |  ¡ I d H  d S )NuJ   â„¹ï¸� Ù„Ø§ ÙŠÙˆØ¬Ø¯ Ù„Ø¯ÙŠÙƒ Ø¨ÙˆØªØ§Øª ØºÙŠØ± Ù…Ø´ØªØ±ÙƒØ© Ø­Ø§Ù„ÙŠØ§Ù‹.rN  r  r  rí   úpay:sub_info:r  u   Ù…Ø¹Ù„ÙˆÙ…Ø§Øª Ø§Ù„Ø§Ø´ØªØ±Ø§Ùƒuu   ðŸ¤– <b>Ø¨ÙˆØªØ§ØªÙƒ Ø§Ù„Ù…ØµÙ†ÙˆØ¹Ø©:</b>

Ø§Ø®ØªØ± Ø§Ù„Ø¨ÙˆØª Ø§Ù„Ø°ÙŠ ØªØ±ÙŠØ¯ Ø¥Ø¶Ø§Ù�ØªÙ‡ Ø¥Ù„Ù‰ Ø§Ù„Ù…Ø¯Ù�ÙˆØ¹.r  rÁ  )rÍ  rÐ  rô   r:   rÇ   rê  r   r:  r  rà   r   r¤   )r;  r«  rŒ   rz  rU  r+  rb   rb   rc   Úcb_subscribe   s2   €ÿþþýrÒ  rÑ  c                 Ã   sî   �t | j d¡d ƒ}t|ƒI d H }|r|j| jjkr'| jddd�I d H  d S ddlm	} | 
|jj|jj¡}t|ƒI d H }|rBdnd	}| jjd
|j› d|› d|› d�dttdd|› �d�gtdƒI d H ggd�d�I d H  |  ¡ I d H  d S )Nrú  rû  õ   Ø¨ÙˆØª ØºÙŠØ± Ù…ÙˆØ¬ÙˆØ¯!Trè  r   r^  u   Ù…Ø´ØªØ±Ùƒ âœ…u   ØºÙŠØ± Ù…Ø´ØªØ±Ùƒ â�Œu4   ðŸ¤– <b>Ù…Ø¹Ù„ÙˆÙ…Ø§Øª Ø§Ù„Ø¨ÙˆØª</b>

Ø§Ù„Ø¨ÙˆØª: @r  u   
Ø­Ø§Ù„Ø© Ø§Ù„Ø§Ø´ØªØ±Ø§Ùƒ: uV   

ÙŠÙ…ÙƒÙ†Ùƒ Ø¬Ø¹Ù„ Ø§Ù„Ø¨ÙˆØª Ù…Ø¯Ù�ÙˆØ¹Ø§Ù‹ Ù…Ù† Ø®Ù„Ø§Ù„ Ø§Ù„Ø£Ø²Ø±Ø§Ø± Ø£Ø¯Ù†Ø§Ù‡:r  u!   ðŸ’Ž Ø¬Ø¹Ù„ Ø§Ù„Ø¨ÙˆØª Ù…Ø¯Ù�ÙˆØ¹úpay:make_paid:r  r´  r  rÁ  )r\  r¢   rÏ  r=   r¦   rÐ  rô   r  r`  r    r›   r¥   re  r6   rÇ   rê  r¤   r   r   r:  )r;  r‚  rb  r    Úbot_type_arÚsubrÞ   rb   rb   rc   Úcb_sub_info<  s$   €þýr×  rÔ  c                 Ã   s”  �t | j d¡d ƒ}| jj}t|ƒI d H }|r|j|kr)| jddd�I d H  d S tƒ I d H }t	|ƒI d H }||j
k rR| jdt|ƒ› dt|j
ƒ› �dd�I d H  d S t||j
ƒI d H }|si| jddd�I d H  d S t||ƒI d H  d	d
lm} | |jj|jj¡}d	dlm}	 t ¡ |	dd� }
| jjd|j› d|› dt ¡  d¡› d|
 d¡› dt|j
ƒ› �
dttdƒI d H ggd�d�I d H  |  ¡ I d H  d S )Nrú  rû  rÓ  Trè  u/   âš ï¸� Ø±ØµÙŠØ¯Ùƒ ØºÙŠØ± ÙƒØ§Ù�Ù�.
Ø±ØµÙŠØ¯Ùƒ: u   
Ø§Ù„Ù…Ø·Ù„ÙˆØ¨: u*   Ù�Ø´Ù„ Ø§Ù„Ø®ØµÙ…ØŒ Ø­Ø§ÙˆÙ„ Ù…Ø¬Ø¯Ø¯Ø§Ù‹.r   r^  r¼  r3  rF  uJ   âœ… <b>ØªÙ… ØªÙ�Ø¹ÙŠÙ„ Ø§Ù„Ø§Ø´ØªØ±Ø§Ùƒ Ø§Ù„Ù…Ø¯Ù�ÙˆØ¹!</b>

Ø§Ù„Ø¨ÙˆØª: @r  õ   
ØªØ§Ø±ÙŠØ® Ø§Ù„Ø§Ø´ØªØ±Ø§Ùƒ: ú%d-%m-%Yõ   
ØªØ§Ø±ÙŠØ® Ø§Ù„Ù†Ù�Ø§Ø°: u   

Ø®Ù�ØµÙ… Ù…Ù† Ø±ØµÙŠØ¯Ùƒ: r  r·  r  rÁ  )r\  r¢   rÏ  rÐ  rô   r=   r¦   r  r0   r1   rK  rÒ  r3   r7   r`  r    r›   r¥   re  r   r   r   rÇ   rê  r¤   Ústrftimer   r:  )r;  r‚  rŒ   rb  rO  rÝ  Údeductedr    rÕ  r   Úexpiresrb   rb   rc   Úcb_make_paidQ  s<   €
þ8ÿýrÞ  r·  c                 Ã   sü   �|  ¡ I d H  | jj}t|ƒI d H }|s9| jjdttddd�gtdƒI d H ggd�d�I d H  |  	¡ I d H  d S g }|D ]}| 
td|j› �d	|j› �d�td
d	|j› �d�g¡ q=| 
tdƒI d H g¡ | jjddt|d�d�I d H  |  	¡ I d H  d S )NuM   ðŸ’Ž Ù„Ø§ ÙŠÙˆØ¬Ø¯ Ù„Ø¯ÙŠÙƒ Ø£ÙŠ Ø¨ÙˆØª Ù�ÙŠ Ø§Ù„Ø§Ø´ØªØ±Ø§Ùƒ Ø§Ù„Ù…Ø¯Ù�ÙˆØ¹.rµ  r´  r  rN  r  r  rí   úpay:view_paid:u   Ø¹Ø±Ø¶u*   ðŸ’Ž <b>Ø¨ÙˆØªØ§ØªÙƒ Ø§Ù„Ù…Ø¯Ù�ÙˆØ¹Ø©:</b>r  rÁ  )rÍ  rÐ  rô   r9   rÇ   rê  r   r   r:  r  rà   r¤   )r;  r«  rŒ   Ú	paid_botsrU  r+  rb   rb   rc   Úcb_paid_botsp  s4   €þþþýrá  rß  c              	   Ã   sü   �t | j d¡d ƒ}t|ƒI d H }|r|j| jjkr'| jddd�I d H  d S t|ƒI d H }ddl	m
} | |jj|jj¡}|rF|j d¡nd	}|rP|j d¡nd	}| jjd
|j› d|› d|› d|› �dttdƒI d H ggd�d�I d H  |  ¡ I d H  d S )Nrú  rû  rÓ  Trè  r   r^  rÙ  õ   â€”u,   ðŸ’Ž <b>Ø¨ÙˆØª Ù…Ø¯Ù�ÙˆØ¹</b>

Ø§Ù„Ø¨ÙˆØª: @r  uH   
Ø­Ø§Ù„Ø© Ø§Ù„Ø§Ø´ØªØ±Ø§Ùƒ: Ù…Ø´ØªØ±Ùƒ âœ…
ØªØ§Ø±ÙŠØ® Ø§Ù„Ø§Ø´ØªØ±Ø§Ùƒ: rÚ  r  r·  r  rÁ  )r\  r¢   rÏ  r=   r¦   rÐ  rô   r  r6   r`  r    r›   r¥   re  rH  rÛ  rI  rÇ   rê  r¤   r   r:  )r;  r‚  rb  rÖ  r    rÕ  ÚstartedrÝ  rb   rb   rc   Úcb_view_paid�  s$   €ÿýrä  Úeventc              
   Ã   sä  �| j j}| jj}| j}|jdkrƒ| jj}tƒ 4 I d H šZ}| t	t
ƒ t
j|k¡¡I d H }| ¡ }|rk|dkrdd|_tƒ I d H }	|	jrc|jrLd|j› �n|j}
t|d|j› d|
› d|j› d�ƒI d H  n|d	krkd
|_W d   ƒI d H  d S 1 I d H s|w   Y  d S |dv �r(|dv�r(d }|jr™d|j› �}nz| |j¡I d H }|j}W n	 ty°   Y nw tƒ 4 I d H šG}| t	tƒ tj|jk¡¡I d H }| ¡ }|ràd|_|jpÚt|jƒ|_||_n| t|j|jpìt|jƒ|j|j|d�¡ W d   ƒI d H  n1 I d H �sw   Y  |�pt|jƒ}t|d|j› d|j› d|› �ƒI d H  d S |dv �rn|dv �rptƒ 4 I d H š'}| t	tƒ tj|jk¡¡I d H }| ¡ }|�rUd
|_W d   ƒI d H  d S 1 I d H �sgw   Y  d S d S d S )NÚprivaterÚ   Trí   u8   ðŸš« <b>Ù…Ø³ØªØ®Ø¯Ù… Ø­Ø¸Ø± Ø§Ù„Ø¨ÙˆØª!</b>
Ø§Ù„Ø§Ø³Ù…: r½  r¾  r¿  rå   F)Úadministratorr1  rî   )r#  Ú
chat_titleÚ	chat_typer¤   rû   uU   ðŸ“¢ <b>ØªÙ… Ø¥Ø¶Ø§Ù�Ø© Ø§Ù„Ø¨ÙˆØª ÙƒÙ…Ø´Ø±Ù�!</b>
Ø§Ù„Ù‚Ù†Ø§Ø©/Ø§Ù„Ù…Ø¬Ù…ÙˆØ¹Ø©: <b>u   </b>
Ø§Ù„Ù†ÙˆØ¹: u   
Ø§Ù„Ø±Ø§Ø¨Ø·: )rÙ   rÚ   )rç  r1  rå   )Únew_chat_memberrÞ   Úold_chat_memberr,  rÇ  rÐ  rô   r*   rò   r   rK   ró   rõ   Úis_blocked_botr%   Únotify_blockedr¤   rù   rX   Úcreate_chat_invite_linkrû   rž   rS   r#  rÿ   r·  rú   rè  rö   )rå  rÖ   Ú
new_statusÚ
old_statusr,  rŒ   r    r—   r  r  r  rû   Úlink_objr@  rA  Ú	link_textÚgrouprb   rb   rc   Úon_my_chat_member¡  sš   €
 ÿþý
þ€ïî
ÿ"û€*øÿþýþ"0üÿrô  Úrequestc              	   Ã   s  �| j  dd¡ ¡ }| j dd¡}d|› d�}||kr"tjddd�S tƒ 4 I d H š*}| tt	ƒ 
t	j |¡t	jd	kt	jd
k¡¡I d H }| ¡  ¡ }W d   ƒI d H  n1 I d H sYw   Y  |sâtƒ 4 I d H š*}| tt	ƒ 
t	j |¡t	jd	kt	jd	k¡¡I d H }| ¡  ¡ }W d   ƒI d H  n1 I d H s—w   Y  |rÛz-|  ¡ I d H }	|	 d¡rÊt|jd�}
|	d d d }|
 |d¡I d H  |
j ¡ I d H  W n	 tyÔ   Y nw tjdd�S tjddd�S z	|  ¡ I d H }	W n tyû   tjddd� Y S w t t|	|ƒ¡ tjdd�S )Nr^   rì   zX-Telegram-Bot-Api-Secret-TokenrÅ   rÆ   i“  Ú	Forbidden)rÞ   r  TFrÇ   rx  r,  rô   uV   â›” Ø§Ù„Ø¨ÙˆØª Ù…ØªÙˆÙ‚Ù� Ø­Ø§Ù„ÙŠØ§Ù‹ Ù…Ù† Ù‚Ø¨Ù„ Ø§Ù„Ø§Ø¯Ø§Ø±Ø©ØŒ Ø¹Ø¯ Ù„Ø§Ø­Ù‚Ø§Ù‹.ÚOK)r  i”  zBot not foundi�  zBad Request)Ú
match_infor›   r±   Úheadersr   ÚResponser*   rò   r   rò  ró   r¤   Úilikerÿ   Ú
is_stoppedró  r˜  r�   r   r�   r&  r    r‚  rž   ÚasyncioÚcreate_taskÚhandle_cobot_update)rõ  r^   rÓ   Úexpectedr    r—   Ú
bot_recordÚstopped_resultÚstopped_botr¢   Úcobotr#  rb   rb   rc   Úcobot_webhook_handleræ  s`   €
ý
ÿ(ø

ý
ÿ(ø	
€ÿÿr  r¢   r  c              	   Ã   sx   �|j }t |¡}|d u rt ¡ }|t|< |4 I d H š t| |ƒI d H  W d   ƒI d H  d S 1 I d H s5w   Y  d S r`   )r¥   r{   r›   rý  ÚLockÚ_handle_cobot_update_locked)r¢   r  Útype_keyÚlockrb   rb   rc   rÿ    s   €
.ÿrÿ  c                 Ã   s  �t |jd�}t}|jr(zt|jƒI d H }|r|jr|j}W n	 ty'   Y nw t |d�}d }| }| d¡rS|d  d¡rS|d d }| d¡| d¡| dd¡f}n!| d¡rt|d  d¡rt|d d }| d¡| d¡| dd¡f}|r•| di ¡ di ¡ d	¡s•t|d
 |d |d |jd�I d H  |rª|jrªt	|||d
 |ƒI d H }	|	sªd S |r¿|js¿t
|||d
 |ƒI d H }
|
s¿d S |j}�z8|tjkrÔt| |||ƒI d H  n�|tjkrät| |||ƒI d H  n“|tjkrôt| |||ƒI d H  n–|tjk�rt| |||ƒI d H  n˜|tjk�rt| |||ƒI d H  nš|tjk�r't| |||ƒI d H  nœ|tjk�r8t| |||ƒI d H  nž|tjk�rIt| |||ƒI d H  n t d|› �¡ W |j  ¡ I d H  |j  ¡ I d H  d S W |j  ¡ I d H  |j  ¡ I d H  d S W |j  ¡ I d H  |j  ¡ I d H  d S W |j  ¡ I d H  |j  ¡ I d H  d S W |j  ¡ I d H  |j  ¡ I d H  d S W |j  ¡ I d H  |j  ¡ I d H  d S W |j  ¡ I d H  |j  ¡ I d H  d S W |j  ¡ I d H  |j  ¡ I d H  d S W |j  ¡ I d H  |j  ¡ I d H  d S |j  ¡ I d H  |j  ¡ I d H  w )Nrx  rÇ   Úfromrô   r¤   rù   rì   rÈ   Úis_botr   rë   rû  ©rŒ   r¤   rù   r‚  u!   Ù†ÙˆØ¹ Ø¨ÙˆØª ØºÙŠØ± Ù…Ø¹Ø±ÙˆÙ�: )!r   r�   r   Úcreated_by_bot_idr=   rž   r›   Úregister_cobot_userrô   Úcheck_subfactory_channelsÚcheck_main_factory_channelsr¥   rJ   r§   Úhandle_communication_updater©   Úhandle_download_updaterª   Úhandle_decor_updater«   Úhandle_factory_updater¬   Úhandle_transcoding_updater­   Úhandle_translation_updater®   Úhandle_ai_updater¯   Úhandle_buttons_updater²   rn  r    r‚  )r¢   r  r  Úcreator_factory_tokenÚ_cfrƒ  r  rñ  rW  Úcan_proceedÚcan_proceed_mainr¥   rb   rb   rc   r  %  s®   €
€ÿ
 ü

ÿ

ÿ


íïñóõ
÷ùûÿr  r  rƒ  c           	      Ã   sÄ   �dd l m  m} ddlm} |j|_|j ¡ |_	|j
|_|j|_| | ¡}d }|jr5|jjr5|jj}n|jr@|jjr@|jj}|rT|jsTt|j|j|j|jd�I d H  tƒ }| ||¡I d H  d S )Nr   ©r   r  )rp   r§   ÚcomrÑ  r   r�   Ú	BOT_TOKENr¤   r±   ÚBOT_USERNAMEr¦   ÚOWNER_IDr   Úmodel_validaterÇ   rÐ  rÈ   r  r  rô   rù   rx   Úfeed_update)	r¢   r  r  rƒ  Ú
com_moduler   r.  r  ru   rb   rb   rc   r  e  s,   €


ür  c                 Ã   sh   �dd l m  m} ddlm} |j|_|j|_|j	|_
|j|_| | ¡}| ¡ }| ||¡I d H  d S ©Nr   r  )Úcobots.download.downr©   ÚdownrÑ  r   r�   r  r¤   r   r¦   r!  r   r"  Úget_down_dispatcherr#  )r¢   r  r  rƒ  Údown_moduler   r.  ru   rb   rb   rc   r  ‚  ó   €
r  c                 Ã   sh   �dd l m  m} ddlm} |j|_|j|_|j|_	|j|_
| | ¡}| ¡ }| ||¡I d H  d S r%  )Úcobots.decor.decorrª   rÑ  r   r�   r  r¤   r   r¦   r!  r   r"  Úget_decor_dispatcherr#  )r¢   r  r  rƒ  Údecor_moduler   r.  ru   rb   rb   rc   r  �  r*  r  c                 Ã   ól   �dd l m  m} ddlm} |j|_|j ¡ |_|j	|_
|j|_| | ¡}| ¡ }| ||¡I d H  d S r%  )Úcobots.transcoding.transcodingr¬   rÑ  r   r�   r  r¤   r±   r   r¦   r!  r   r"  Úget_transcoding_dispatcherr#  )r¢   r  r  rƒ  Útrans_moduler   r.  ru   rb   rb   rc   r  ž  ó   €
r  c                 Ã   r.  r%  )Úcobots.translation.translationr­   rÑ  r   r�   r  r¤   r±   r   r¦   r!  r   r"  Úget_translation_dispatcherr#  )r¢   r  r  rƒ  Ú	tr_moduler   r.  ru   rb   rb   rc   r  ¬  r2  r  c           	      Ã   óŒ   �dd l m  m} ddlm} ddlm} |j|_|j 	¡ |_
|j|_|j|_||j 	¡ ƒI d H  | | ¡}| ¡ }| ||¡I d H  d S ©Nr   r¨   r  )Úcobots.ai.air®   r¹   r"   rÑ  r   r�   r  r¤   r±   r   r¦   r!  r   r"  Úget_ai_dispatcherr#  )	r¢   r  r  rƒ  Ú	ai_modulerÁ   r   r.  ru   rb   rb   rc   r  º  ó   €
r  c           	      Ã   r6  r7  )Úcobots.buttons.buttonsr¯   rº   r"   rÑ  r   r�   r  r¤   r±   r   r¦   r!  r   r"  Úget_buttons_dispatcherr#  )	r¢   r  r  rƒ  Ú
btn_modulerÂ   r   r.  ru   rb   rb   rc   r  Ë  r;  r  rñ  c           (      Ã   s˜  �|j sdS tƒ 4 I d H š }| ttƒ tj|j k¡¡I d H }| ¡ }W d   ƒI d H  n1 I d H s3w   Y  |s<dS |j 	¡ }ddl
m}m}	m}
m}m}m}m}m}m}m} |jr^dS ||ddƒI d H }|dk�rm|	|ƒI d H }t|jd�}zÞ|D ]Å}z| t|d ƒ|¡I d H }|jdv }W n ty�   d}Y nw |�rA| d	¡p³| d
¡r²d|d
 › �nd}d }| d¡rÄ|d d d }n| d¡rÓ|d d d d }|�r | d¡dk�rddlm}m} | j |d||d| d
¡põ|d › �|d�g|ddd�ggd�d�I d H  n| j |d|› d|d › d�d dd!�I d H  |j! "¡ I d H   W z|j! "¡ I d H  W d"S  t�y@   Y d"S w q|W z
|j! "¡ I d H  W n t�yW   Y nw z
|j! "¡ I d H  W w  t�yl   Y w w ||d#dƒI d H }|dk�rÊd }| d¡�r�|d  d$¡�r�|d d$ }| d%¡| d&d'¡f}n| d¡�r¼|d  d$¡�r¼|d d$ }| d%¡| d&d'¡f}d }| d¡�rÍ|d d d }n| d¡�rÝ|d d d d }|
|ƒI d H }t|jd�} �zÉ|D �]­}z|  t|d ƒ|¡I d H }|jdv}!W n t�y   d"}!Y nw |!�s¦|||d ||jƒI d H  | d	¡�p6| d
¡�r5d|d
 › �nd}|�r…| d¡dk�rpddlm}m} | j |d||d| d
¡�pZ|d › �|d�g|ddd�ggd�d�I d H  n| j |d|› d|d › d�d dd!�I d H  | j! "¡ I d H   W z| j! "¡ I d H  W d"S  t�y¥   Y d"S w |||d ||jƒI d H }"|"�r›|||d ||jƒI d H }#|||d ||jƒI d H  |#�r›|||d ƒI d H \}$}%||d(dƒI d H }&|&dk�rN|�rN|d �rüd|d › �n|d) �pt#|ƒ}'| d	¡�p| d
¡�rd|d
 › �nt#|d ƒ}z%| j |j$d*|'› d+|j› d,|› d|d › d-|$› d.|%› d/�d dd!�I d H  W n
 t�yM   Y nw |$|%k�r›|||d ƒI d H  |||d ƒI d H  | d	¡�prt#|d ƒ}z| j |j$d0|› d|d › d1|%› d2�d dd!�I d H  W �qî t�yš   Y �qîw �qîW z| j! "¡ I d H  W dS  t�y´   Y dS w z
| j! "¡ I d H  W w  t�yÉ   Y w w dS )3NTr   )
Úget_settingÚget_cobot_mandatory_channelsÚget_cobot_funded_channelsÚrecord_cobot_funded_subÚget_cobot_funded_channel_countÚmark_cobot_funded_completeÚmark_cobot_funded_pendingÚis_cobot_funded_pendingÚclear_cobot_funded_pendingÚclear_all_cobot_funded_pendingÚcobots_sub_enabledÚ1rx  rÝ   rØ   rû   rü   rî   r	  rÇ   r,  rô   rÈ   rß   r¯   r¬  r  rí   rý   r
  r  r  r  r  r  õT   Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù… Ø§Ø´ØªØ±Ùƒ Ù�ÙŠ Ø§Ù„Ù‚Ù†Ø§Ø© Ø§Ù„ØªØ§Ù„ÙŠØ©:
- <a href='rï   r  r  r  FÚcobots_funded_enabledr
  r¤   rù   rì   Úcobots_fund_notifyrë   õd   ðŸ”” <b>Ø§Ø´ØªØ±Ø§Ùƒ Ø¬Ø¯ÙŠØ¯ Ù�ÙŠ Ù‚Ù†Ø§Ø© Ù…Ù…ÙˆÙ„Ø© (Ø¨ÙˆØªØ§Øª Ù…ØµÙ†ÙˆØ¹Ø©):</b>
Ø§Ù„Ø­Ø³Ø§Ø¨: õ   
Ø§Ù„Ø¨ÙˆØª: @õ   
Ø§Ù„Ù‚Ù†Ø§Ø©: <a href='õ#   </a>
Ø¹Ø¯Ø¯ Ø§Ù„Ù…Ø´ØªØ±ÙƒÙŠÙ†: <b>rt  rð   õ^   âœ… <b>Ø§ÙƒØªÙ…Ù„Øª Ù‚Ù†Ø§Ø© Ù…Ù…ÙˆÙ„Ø© (Ø¨ÙˆØªØ§Øª Ù…ØµÙ†ÙˆØ¹Ø©)!</b>
Ø§Ù„Ù‚Ù†Ø§Ø©: <a href='rñ   õ   </b> Ø¹Ø¶Ùˆ.)%r  r*   rò   r   rò  ró   rô   rõ   r¤   r±   r¶   r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rE  r   r�   rÜ   r\  rÞ   rž   r›   rÑ  r   r   r&  r    r‚  rú   r¦   )(r  r  rŒ   rñ  r    r—   Úsub_factoryÚfactory_usernameÚfac_get_settingÚfac_get_cobot_mandÚfac_get_cobot_fundedrB  rC  rD  rE  rF  rG  rH  Úsub_enabledÚmand_channelsÚmand_checkerrä   rå   Únot_subscribedr  r#  r   r   Úfund_enabledÚ	user_inforW  Úfund_channelsÚfactory_bot_objÚ	is_memberÚwas_requestedÚaddedÚcurrentÚtargetÚfund_notifyr  rb   rb   rc   r  Ü  s¸  €
ÿ
(ü
0
ÿ
ÿþ

þþûýÿÿüÿÚú*ÿþÿ

ÿÿþþþûýÿÿü,ÿÔ
ÿÿ*ÿ
þÿþýýüüùÿ
ÿÿþûÿ€²Qýýþÿr  c                 Ã   sˆ  �|j rdS d }| d¡r|d d d }n| d¡r%|d d d d }ztƒ I d H }W n ty8   g }Y nw ttd�}z›|D ]Ž}z| t|d ƒ|¡I d H }|jdv }	W n tyb   d}	Y nw |	rÏ| d	¡pw| d
¡rvd|d
 › �nd}
|rÃ| d¡dkr®ddl	m
}m} | j|d||d| d
¡p˜|d › �|
d�g|ddd�ggd�d�I d H  n| j|d|
› d|d › d�ddd�I d H   W |j ¡ I d H  dS qAW |j ¡ I d H  n	|j ¡ I d H  w ztƒ I d H }W n työ   g }Y nw |�rÂd  }}| d¡�r|d  d ¡�r|d d  }| d!¡| d"d#¡}}n | d¡�r?|d  d ¡�r?|d d  }| d!¡| d"d#¡}}ttd�}�zs|D �]d}z| t|d ƒ|¡I d H }|jdv}W n t�yk   d}Y nw |�sêt|d ||jƒI d H  | d	¡�p�| d
¡�rŽd|d
 › �nd}
|�rÞ| d¡dk�rÉddl	m
}m} | j|d||d| d
¡�p³|d › �|
d�g|ddd�ggd�d�I d H  n| j|d|
› d|d › d�ddd�I d H   W |j ¡ I d H  dS t|d ||jƒI d H }|�r¬t|d ||jƒI d H }t|d ||jƒI d H  |�r¬t|d ƒI d H \}}|�r'd|› �n|�p-t|ƒ}| d	¡�pF| d
¡�rAd|d
 › �nt|d ƒ}
z t|d$|› d%|j› d&|
› d|d › d'|› d(|› d)�ƒI d H  W n
 t�yq   Y nw ||k�r¬t|d ƒI d H  t|d ƒI d H  zt|d*|
› d|d › d+|› d,�ƒI d H  W �qH t�y«   Y �qHw �qHW |j ¡ I d H  dS |j ¡ I d H  w dS )-NTrÇ   r,  rô   rÈ   rx  rÝ   rØ   rû   rü   rî   r	  rß   r¯   r   r¬  r  rí   rý   r
  r  r  r  r  r  rK  rï   r  r  r  Fr
  r¤   rù   rì   rN  rO  rP  rQ  rt  rð   rR  rñ   rS  )rE  r›   r>   rž   r   r   rÜ   r\  rÞ   rÑ  r   r   r&  r    r‚  r?   rC   rô   rD   r@   rE   rA   rú   rX   r¤   rB   rF   )r  r  rŒ   rñ  r#  rá   Úfactory_checkerrä   rå   r\  r  r   r   r_  Ú
u_usernameÚu_firstÚ_uÚfund_checkerra  rb  rc  rd  re  r  rb   rb   rc   r  �	  sV  €

ÿ
ÿ
ÿþþþûýÿÿüâú$$ÿ

ÿÿþþþûýÿÿü"ßÿ
þÿþýýüüþÿ
ÿÿþþÿ€½Fþr  c              
   Ã   sL  �dd l m  m} ddlm} |j|_|j ¡ |_|j	|_
|j|_|j|_|jp*d|_zddlm}m} ||jƒI d H  ||jƒI d H  W n tyd } zt d|j› d|› �¡ W Y d }~nd }~ww | | ¡}	d }
|	jrx|	jjrx|	jj}
n|	jrƒ|	jjrƒ|	jj}
|
r—|
js—t|
j|
j|
j|jd�I d H  | ¡ }| ||	¡I d H  d S )Nr   r  )Ú_init_payment_settingsÚ_init_payment_packagesu3   Ø®Ø·Ø£ Ù�ÙŠ ØªÙ‡ÙŠØ¦Ø© Ù…Ø¯Ù�ÙˆØ¹Ø§Øª Ø§Ù„Ù…ØµÙ†Ø¹ r$  r  )Úcobots.factory.factoryr«   rÑ  r   r�   r  r¤   r±   r   r¦   r!  r   rô   ÚBOT_IDr  ÚPARENT_FACTORY_IDÚinformation.databaserl  rm  rž   r²   r»   r"  rÇ   rÐ  rÈ   r  r  rù   Úget_factory_dispatcherr#  )r¢   r  r  rƒ  Ú
fac_moduler   rl  rm  Ú_er.  r  ru   rb   rb   rc   r  0
  s@   €$€ÿ


ür  rù   c              	   Ã   s¤   �t ƒ 4 I d H š=}| ttƒ tj| ktj|k¡¡I d H }| ¡ }|s/| t| |||d�¡ nt	 
¡ |_||_||_W d   ƒI d H  d S 1 I d H sKw   Y  d S )N)rŒ   r‚  r¤   rù   )r*   rò   r   rU   ró   rŒ   r‚  rõ   rö   r   r   Úlast_activer¤   rù   )rŒ   r¤   rù   r‚  r    r—   Úcurb   rb   rc   r  W
  s(   €þ
ÿ
ü
.îr  c                 Ã   sô  �t ƒ 4 I d H šå}| ttƒ tj|jktj|ktj|jk¡¡I d H }	|	 	¡ r3	 W d   ƒI d H  d S | 
t|j||jd�¡ | ttƒ tj|jk¡¡I d H }
|
 	¡ }|sb	 W d   ƒI d H  d S | jd7  _|pl| }|jr­|rwd|› �n|p|t|ƒ}|jp�|jr‰d|j› �nt|jƒ}t|d|› d|j› d|› d|j› d	|j› d
|j› d�ƒI d H  |j|jkrâd|_t ¡ |_|jpÂt|jƒ}t|d|› d|j› d|j› d�ƒI d H  W d   ƒI d H  d S W d   ƒI d H  d S 1 I d H sów   Y  d S )N)Úcobot_funded_channel_idrŒ   r‚  rë   rí   rî   rN  rO  rP  rï   rQ  rt  rð   FrR  rñ   rS  )r*   rò   r   rQ   ró   rw  rô   rŒ   r‚  rõ   rö   rP   r÷   rM  rú   rû   rü   rÝ   rX   r¤   rý   rþ   rÿ   r   r   r  )r  rŒ   ré   r  rù   r¤   r  rƒ  r    r—   r  rä   Ú
notify_botr  r  rb   rb   rc   Ú record_cobot_funded_subscriptionm
  s€   €

ý
ÿ÷ý
ÿêÿÿþýýüü
þ	
ÿÿþþÓ).×ry  c                 Ã   s¢  �ddl m}m} tdd�I d H }|D ]|}t|jƒI d H }|jr&|j d¡nd}|jr1|j d¡nd}t	|jƒI d H  |s>qzHt
|jƒI d H }| j|jd|j› d|› d|› d	�d
d||dt|ƒ› �dd�gtdddƒI d H tdddƒI d H g|ddd�ggd�d�I d H  W q ty�   Y qw td d�I d H }	|	D ]´}|js qšt|jƒI d H }|jr±|j d¡nd}|jr¼|j d¡nd}t	|jƒI d H  |sÉqšt|jƒI d H }
|
sÔqšzpddlm} ddlm} ||
j|d
d�d�}t|jƒI d H }d|
j› �}t
|j|jƒI d H }|j|jd|j› d|› d|› d	�d
d||dt|ƒ› �dd�g|dd d�|dd!d�g|d|d�ggd�d�I d H  |j ¡ I d H  W qš t�yN   Y qšw d S )"Nr   r¬  )Úfactory_bot_idrÙ  râ  ue   Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù… ØªÙ… Ø§Ù†ØªÙ‡Ø§Ø¡ Ø§Ø´ØªØ±Ø§Ùƒ Ø§Ù„Ø¨ÙˆØª Ø§Ù„Ø®Ø§Øµ Ø¨Ùƒ.

Ø§Ù„Ø¨ÙˆØª: @rØ  u   
ØªØ§Ø±ÙŠØ® Ø§Ù„Ø§Ù†ØªÙ‡Ø§Ø¡: u�   
Ø­Ø§Ù„Ø© Ø§Ù„Ø¨ÙˆØª: ØºÙŠØ± Ù…Ø¯Ù�ÙˆØ¹ Ø­Ø§Ù„ÙŠØ§Ù‹

ÙŠÙ…ÙƒÙ†Ùƒ Ø§Ø¯Ø§Ø±Ø© Ø§Ø´ØªØ±Ø§Ùƒ Ø§Ù„Ø¨ÙˆØª Ù…Ù† Ø®Ù„Ø§Ù„ Ø§Ù„Ø§Ø²Ø±Ø§Ø±:r  Tr®  r¯  r  r³  r´  rµ  r°  r±  r²  r¹  rº  r
  r  r»  )r   )ÚDefaultBotPropertiesrÈ  )r�   r_  rî   zfac:noopzfac:subscribez	fac:topup)rÑ  r   r   r<   r=   r‚  rH  rÛ  rI  r8   r1   rŒ   r&  r¤   rÒ  r6  rž   rz  Úaiogramr   Úaiogram.client.defaultr{  r�   r    r‚  )rÖ   r   r   ÚsubsrÖ  rb  rã  rÝ  rÝ  Úall_subsÚfactory_recÚ_Botr{  Úfac_botÚ	owner_recÚsupport_urlrb   rb   rc   Ú_check_expired_subscriptions¦
  s˜   €ÿþýÿü÷ÿÿþý

ÿü÷ÿÜr…  Úappc              	   Ã   s  �| d }t ƒ I d H  tƒ }|jtdd|gd� | ¡  || d< |jttg d¢d�I d H  tƒ 4 I d H š&}| 	t
tƒ tjdktjtjk¡¡I d H }| ¡  ¡ }W d   ƒI d H  n1 I d H s`w   Y  |D ]}|j ¡ }tƒ  t d	¡ qgt d
t› �¡ d S )NrÖ   Úintervalrë   )ÚhoursrÜ  Ú	scheduler)rÇ   rÈ   rÊ   rÉ   rË   rÌ   TuE   âœ… ØªÙ… Ø¥Ù†Ø´Ø§Ø¡ Dispatcher Ù…Ø´ØªØ±Ùƒ Ù„Ø¨ÙˆØªØ§Øª Ø§Ù„ØªÙˆØ§ØµÙ„u   âœ… Webhook Ù…Ù�Ø³Ø¬ÙŽÙ‘Ù„: )r"   r   Úadd_jobr…  ÚstartÚset_webhookr   r   r*   rò   r   rò  ró   rÿ   r¥   rJ   r§   ró  rô  r¤   r±   rx   r²   r³   )r†  rÖ   r‰  r    r—   Úactive_botsr  r¤   rb   rb   rc   Ú
on_startupî
  s.   €ý
ÿ(ü
rŽ  c                 Ã   sJ   �| d }d| v r| d   ¡  | ¡ I d H  |j ¡ I d H  t d¡ d S )NrÖ   r‰  u    ðŸ›‘ ØªÙ… Ø¥ÙŠÙ‚Ø§Ù� Ø§Ù„Ø¨ÙˆØª.)ÚshutdownÚdelete_webhookr    r‚  r²   r³   )r†  rÖ   rb   rb   rc   Úon_shutdown	  s   €r‘  c                  C   s¼   t td�} ttƒ d�}| t¡ | t¡ |j t	¡ t
 ¡ }| |d< |j t¡ |j t¡ t|| td�j|td� t||| d� |j dt¡ t dt› d	t› �¡ t
j|ttd
� d S )Nrx  rg   rÖ   )Ú
dispatcherrÖ   rÎ   )rk   )rÖ   z/kodo/bots/{bot_username}u"   ðŸš€ Ø¨Ø¯Ø¡ Ø§Ù„ØªØ´ØºÙŠÙ„ Ø¹Ù„Ù‰ rú  )ÚhostÚport)r   r   r   r   rq   rW   rf   r.  Úregisterr2  r   ÚApplicationrŽ  rà   r‘  r   r   r   r   Úadd_postr  r²   r³   r   r   Úrun_app)rÖ   ru   r†  rb   rb   rc   Úmain  s(   


ýür™  Ú__main__r`   )r7  )rE  )rì   rì   )r7  rì   rì   rì   )NNN)þrý  Úloggingr™   r   r   Úapscheduler.schedulers.asyncior   r|  r   r   r   r   rÑ  r	   r
   r   r   r   r   Úaiogram.filtersr   Úaiogram.fsm.contextr   Úaiogram.fsm.stater   r   Úaiogram.fsm.storage.memoryr   Úaiogram.webhook.aiohttp_serverr   r   r   Ú
sqlalchemyr   Úurllib.parser   ri   rj   rk   ro   rl   rm   rn   r`  r   r   r   r   r   r   r    r!   rq  r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rL  rò  rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   r1  rW   rX   rY   rZ   r[   ra   r\   rÛ  rú   Ú__annotations__r]   rd   rv   rw   rx   ÚbasicConfigÚINFOÚ	getLoggerr~   r²   r{   rf   r}   rƒ   r…   rˆ   rŠ   r\  ÚboolrŽ   r£   rÄ   rÔ   rÕ   ræ   Úlistrè   r  r"  r6  r:  r\  re  rk  rp  ru  ry  r�  r’  rš  r   Útuplerª  rÇ   rç  rÈ   r¢   rì  rí  rù  r;  r  r  r  ri  r  r  r!  Úsetr"  r*  r+  r-  r2  r�   rC  rS  rM  rX  rZ  r‹   r]  r^  r_  rc  rd  rf  rk  r†   ru  rv  r‡   ry  r‰  r‹  r�  r�  r’  r„   rœ  r¢  r¥  r¨  rª  r«  rÒ  r¯  r°  r±  r²  r³  rÀ  Úpre_checkout_queryrÃ  rÉ  rÐ  rÒ  r×  rÞ  rá  rä  rÊ   rô  ÚRequestrú  r  rÿ  r  r  r  r  r  r  r  r  r  r  r  r  ry  r…  r–  rŽ  r‘  r™  rb   rb   rb   rc   Ú<module>   s6  
 (œHþ
&=<
1"	
	ÿÿÿ
ÿ
O(üÿÿþýü
û&

Mÿÿÿþ
þ:

#Z 
2
1	
<"

D1@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ Bÿÿÿÿþ ÿÿ$'ýÿÿÿþþþý9H	
ÿ