o
    {g$                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dlm	Z	 d dl
mZ d dlmZmZmZ ddlmZmZmZ ddlmZ dd	lmZ G d
d de	ZG dd deZe ZdS )    N)Path)Client)	ParseMode)InlineKeyboardButtonInlineKeyboardMarkupMessage   )ENVConfigSymbols)db)LOGSc                   @   st   e Zd ZdddZdddZdddZdd	d
ZdedefddZ	dedefddZ
deddfddZdddZdS )
HellClientreturnNc                 C   s*   g | _ tdtjtjtjtddd| _d S )NHellBotzHellbot.plugins.bot)root)nameapi_idapi_hash	bot_tokenplugins)usersr   r
   API_IDAPI_HASH	BOT_TOKENdictbotself r   O/var/www/bot.gig.net.ua/public_html/telegram/P1/HellBot/Hellbot/core/clients.py__init__   s   zHellClient.__init__c                    s2  t  I d H }t|D ]\}}zhtd|d  tjtj|d d}| I d H  | I d H }| j	
| ttjd  d|d  d|j dtjd   | |I d H }|shtd	|d  d|j d
 z
|dI d H  W n   Y W q ty } zt|d  d|  W Y d }~qd }~ww d S )Nz	HellUser#r   session)r   r   r   session_string   z Started User z: '' zClient #zH' is not in Logger Group! Check and add manually for proper functioning.zhttps://t.me/+wQyUMn4891Q2OTVhz: )r   get_all_sessions	enumerater   r
   r   r   startget_mer   appendr   infor   arrow_right
first_name
arrow_leftvalidate_loggerwarning	join_chat	Exceptionerror)r   sessionsir"   clientmeis_in_loggerer   r   r    
start_user   s@   *zHellClient.start_userc                    sN   | j  I d H  | j  I d H }ttjd  d|j dtjd   d S )Nr$   z Started HellBot Client: 'r%   )	r   r(   r)   r   r+   r   r,   usernamer.   )r   r7   r   r   r    	start_bot>   s    zHellClient.start_botc              	      sH  d}t  d}ttjI d H pd}|d}|D ]t}t|b}t|j}|j	
dd}||v rDttd| d 	 W d    q|drQ	 W d    qtd| d}d| }	tj|	|}
tj|
}|
j| |tjd| < |d	7 }W d    n1 sw   Y  |  qttjd
  d| dtjd
   d S )Nr   zHellbot/plugins/user/*.py  z.pyzHellbot/plugins/user/__zHellbot.plugins.user.r      z Loaded User Plugin: 'r%   )globr   get_envr	   unload_pluginssplitopenr   r   stemreplaceosremove
startswith	importlibutilspec_from_file_locationmodule_from_specloaderexec_modulesysmodulescloser   r+   r   bullet)r   countfilesunloadfilefpath	shortnamefpathr   specloadr   r   r    load_pluginE   s8   






zHellClient.load_pluginr6   c                    s@   z| tjdI d H  W dS  ty   | |I d H  Y S w )Nr7   T)get_chat_memberr
   	LOGGER_IDr2   join_logger)r   r6   r   r   r    r/   _   s   zHellClient.validate_loggerc                    sB   z| j tjI d H }||I d H  W dS  ty    Y dS w )NTF)r   export_chat_invite_linkr
   ra   r1   r2   )r   r6   invite_linkr   r   r    rb   f   s   zHellClient.join_loggerversionc                    sL  | j jtjddg dtj dtj dt| j	 dtj dttj
 dtj dttj dtj d	ttj dtj d
ttj dtj d|d  dtj d|d  dtj d|d  dtjdttdd| j jj ddtdddgtdddggdI d H  d S )Nz2https://te.legra.ph/file/8deca5343c64d9db9401f.mp4r=   z**uS    𝖧𝖾𝗅𝗅𝖡𝗈𝗍 𝗂𝗌 𝗇𝗈𝗐 𝖮𝗇𝗅𝗂𝗇𝖾!**

**u"    𝖢𝗅𝗂𝖾𝗇𝗍𝗌:** `z`
**u"    𝖯𝗅𝗎𝗀𝗂𝗇𝗌:** `u&    𝖢𝗈𝗆𝗆𝖺𝗇𝖽𝗌:** `u+    𝖲𝗍𝖺𝗇 𝖴𝗌𝖾𝗋𝗌:** `u+    𝖠𝗎𝗍𝗁 𝖴𝗌𝖾𝗋𝗌:** `z`

**u?    𝖧𝖾𝗅𝗅𝖡𝗈𝗍 𝖵𝖾𝗋𝗌𝗂𝗈𝗇:** `hellbotuC    𝖯𝗒𝗋𝗈𝗀𝗋𝖺𝗆 𝖵𝖾𝗋𝗌𝗂𝗈𝗇:** `pyrogramu;    𝖯𝗒𝗍𝗁𝗈𝗇 𝖵𝖾𝗋𝗌𝗂𝗈𝗇:** `pythonz`

**</> @HellBot_Networks**Tu   💫 Start Mezhttps://t.me/z?start=start)urlu	   💖 Repoz&https://github.com/The-HellBot/HellBotu   🍀 HellBot Networks 🍀zhttps://t.me/hellbot_networks)
parse_modedisable_notificationreply_markup)r   send_animationr
   ra   joinr   
check_marktriangle_rightlenr   CMD_MENUCMD_INFO
STAN_USERS
AUTH_USERSr   MARKDOWNr   r   r7   r;   )r   re   r   r   r    start_messagen   s`   



zHellClient.start_messagec                    sP   t tjd  dtjd   |  I d H  |  I d H  |  I d H  d S )Nr@   z  Starting HellBot Client & User )r   r+   r   rT   r<   r:   r_   r   r   r   r    startup   s   zHellClient.startup)r   N)__name__
__module____qualname__r!   r:   r<   r_   r   boolr/   rb   r   rw   rx   r   r   r   r    r      s    



!
r   c                   @   s   e Zd ZdedefddZejdfdededededef
d	d
Z	ddede
ddfddZ	ddedede
deddf
ddZddedede
ddfddZd dedededdfddZd dedededdfddZdS )!CustomMethodsmessager   c                    sR   t |jdk rd}|S z|jddd  pd}W |S  ty(   d}Y |S w )zGet the input from the userr$   r=   r>   r   )rq   commandtextrD   strip
IndexError)r   r~   outputr   r   r    input   s   zCustomMethods.inputTr   rj   no_link_previewc                    s`   |j r%|j jtjv r%|jr|jj|||dI dH S |j|||dI dH S |j|||dI dH S )z'Edit or Reply to a message, if possible)rj   disable_web_page_previewN)	from_useridr
   rt   reply_to_message
reply_text	edit_text)r   r~   r   rj   r   r   r   r    edit   s   zCustomMethods.editr   delayNc                    s$   t |I dH  | I dH  dS )z/Delete a message after a certain period of timeN)asynciosleepdelete)r   r~   r   r   r   r    _delete   s   zCustomMethods._delete
   r   in_backgroundc                    sD   |  ||I dH }|rt| || dS | ||I dH  dS )z;Edit a message and delete it after a certain period of timeN)r   r   create_taskr   )r   r~   r   r   r   to_delr   r   r    r      s
   zCustomMethods.deletec                    s>   |  |tj d| I dH }|rt| || dS dS )zOEdit an error message and delete it after a certain period of time if mentionedz **Error:** 

N)r   r   
cross_markr   r   r   )r   r~   r   r   r   r   r   r    r3      s
   zCustomMethods.errortagrX   c              
      s   d|   d| }z8|r4z| jjtj||dI dH  W W dS    | jjtj|ddI dH  Y W dS | jjtj|ddI dH  W dS  tyY } z
ttj d| d}~ww )z!Log a message to the Logger Groupz**#z**

)captionNT)r   z	 LogErr: )	upperr   send_documentr
   ra   send_messager2   r   r   )r   r   r   rX   msgr9   r   r   r    _log   s"   "zCustomMethods._logc                    sD   t tjI dH }|r| dkr | |||I dH  dS dS dS )zWCheck if :
        
-> the Logger Group is available
        
-> the logging is enabledNtrue)r   rB   r	   	is_loggerlowerr   )r   r   r   rX   statusr   r   r    check_and_log   s
   zCustomMethods.check_and_log)r   )r   T)r   )N)ry   rz   r{   r   strr   r   DEFAULTr|   r   intr   r   r3   r   r   r   r   r   r    r}      s>    


 r}   )r   rA   rK   rH   rQ   pathlibr   	pyroaddonrg   r   pyrogram.enumsr   pyrogram.typesr   r   r   configr	   r
   r   databaser   loggerr   r   r}   rf   r   r   r   r    <module>   s"     
T