o
    22·hò„  ã                   @   sœ   d dl Z d dlmZ d dlZ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
mZ edd� d dlZd dlZd dlZG dd„ dejƒZd	d
„ ZdS )é    N)Úcommands)Údatetime)Úload_dotenvT©Úoverridec                   @   sn  e Zd Zdd„ Zejdd�dd„ ƒZe ¡ ejdd�d	d
„ ƒƒZe ¡ ejdd�dd„ ƒƒZ	e ¡ ejdd�dd„ ƒƒZ
e ¡ ejdd�dd„ ƒƒZe ¡ dd„ ƒZe ¡ dd„ ƒZe ¡ dd„ ƒZe ¡ dd„ ƒZe ¡ dd„ ƒZe ¡ dd„ ƒZe ¡ d/dejfdd „ƒZejd!d�d/d"d#„ƒZd$ed%efd&d'„Zejd(d�dd)œd*d+„ƒZejd,d�d$efd-d.„ƒZdS )0ÚGeneralc                 C   s   || _ d| _d| _d| _d S )NiòeX z#sk-8c5fc727862e402b8ca0dcd69eccb96bzhttps://api.deepseek.com/v1)ÚbotÚdiscord_blueÚapi_keyÚapi_base)Úselfr   © r   úFC:\Users\Buzz\Documents\TitanTS\Discord\TitanBot\files\cogs\general.pyÚ__init__   s   
zGeneral.__init__Útf2)Únamec                 Ã   s   �d}|  |¡I dH  dS )u   OdeÅ¡le TF2 videoz+https://www.youtube.com/watch?v=RvVdFXOFcjwN)Úsend)r   ÚctxÚ	video_urlr   r   r   Úsend_tf2_video   s   €zGeneral.send_tf2_videoT)Úadministratorc                 Ã   ó²   �z%| j  d|› �¡I dH  tjdd|› d�| jd�}|j|d�I dH  W dS  tyX } z&tjdd	|› d
t|ƒdd… › d�| jd�}|j|d�I dH  W Y d}~dS d}~ww )u
   NaÄ�te cogúcogs.Nu   âœ… Cog naÄ�tenúModul `u   ` byl ÃºspÄ›Å¡nÄ› naÄ�ten!©ÚtitleÚdescriptionÚcolor©Úembedu   â�Œ Chyba pÅ™i naÄ�Ã­tÃ¡nÃ­u   NepodaÅ™ilo se naÄ�Ã­st `ú`:
```éô  ú```)r   Úload_extensionÚdiscordÚEmbedr	   r   Ú	ExceptionÚstr©r   r   Ú	extensionr   Úer   r   r   Úload    ó$   €
ýý €úzGeneral.loadc                 Ã   r   )u   OdpojÃ­ cogr   Nu   âœ… Cog odpojenr   u   ` byl ÃºspÄ›Å¡nÄ› odpojen!r   r   u   â�Œ Chyba pÅ™i odpojovÃ¡nÃ­u   NepodaÅ™ilo se odpojit `r    r!   r"   )r   Úunload_extensionr$   r%   r	   r   r&   r'   r(   r   r   r   Úunload4   r,   zGeneral.unloadc                 Ã   sÊ   �z1| j  d|› �¡I dH  | j  d|› �¡I dH  tjdd|› d�| jd�}|j|d�I dH  W dS  tyd } z&tjdd	|› d
t|ƒdd… › d�| jd�}|j|d�I dH  W Y d}~dS d}~ww )u   Znovu naÄ�te cogr   Nu   ðŸ”„ Cog znovu naÄ�tenr   u    ` byl ÃºspÄ›Å¡nÄ› znovu naÄ�ten!r   r   u   â�Œ Chyba pÅ™i reloaduu   NepodaÅ™ilo se znovu naÄ�Ã­st `r    r!   r"   )	r   r-   r#   r$   r%   r	   r   r&   r'   r(   r   r   r   ÚreloadH   s&   €
ýý €úzGeneral.reloadc                 Ã   sL   �t jdd| jt ¡ d�}|jdd� |j|d�I dH  | j ¡ I dH  dS )z
Vypne botau   ðŸ”Œ VypÃ­nÃ¡nÃ­ botau   Bot se vypÃ­nÃ¡... ðŸ‘‹©r   r   r   Ú	timestampu    TitanBot se bezpeÄ�nÄ› ukonÄ�uje©Útextr   N)	r$   r%   r	   r   ÚnowÚ
set_footerr   r   Úclose)r   r   r   r   r   r   Úshutdown]   s   €üzGeneral.shutdownc                 Ã   sh  �z”t jdd| jt ¡ d�}|jddt| jjƒ› dt| jj	ƒ› dt| jj
ƒ› d�d	d
� |jddd	d
� zt ¡ }t ¡ j}W n   d}d}Y |jddtjj› dtjj› dt j› d|› d|› d�dd
� |jdddd
� | jjr€| jjjr€|j| jjjjd� |jd|jjjd� |j|d�I dH  W dS  ty³ } z| d|› �¡I dH  W Y d}~dS d}~ww )zInformace o botoviu   ðŸ¤– TitanBot - Informaceu8   PokroÄ�ilÃ½ Discord bot s monitoring a sprÃ¡vou systÃ©mur0   u   ðŸ“Š Statistikyu   ðŸ�›ï¸� Servery: **u   **
ðŸ‘¥ UÅ¾ivatelÃ©: **u(   **
ðŸ“� PÅ™Ã­kazy: **30+**
ðŸ”§ Cogs: **ú**T©r   ÚvalueÚinlineu   âš™ï¸� Funkceuc   ðŸ–¥ï¸� Server Monitoring
â­� Leveling systÃ©m
ðŸ›¡ï¸� Moderace
ðŸ¤– AI asistent
ðŸŒ� Web DashboardzN/Au   ðŸ’» SystÃ©mu   ðŸ�� Python: **Ú.u   **
ðŸ“¦ Discord.py: **u   **
ðŸ’¾ RAM: **u   %**
âš¡ CPU: **z%**Fu   ðŸ”— Web DashboarduI   **[localhost:5000](http://localhost:5000)**
KomplexnÃ­ sprÃ¡va pÅ™es web!©Úurlu   Made with â�¤ï¸� by Buzz©r3   Úicon_urlr   Nu#   â�Œ Chyba pÅ™i zobrazovÃ¡nÃ­ info: )r$   r%   r	   r   r4   Ú	add_fieldÚlenr   ÚguildsÚusersÚcogsÚpsutilÚcpu_percentÚvirtual_memoryÚpercentÚsysÚversion_infoÚmajorÚminorÚ__version__ÚuserÚavatarÚset_thumbnailr>   r5   ÚauthorÚdisplay_avatarr   r&   )r   r   r   rG   Úmemory_percentr*   r   r   r   Úinfon   sh   €ü
ÿ
ýø÷ÿþýøý$€ÿzGeneral.infoc              
   Ã   s~  �zŸt jd| jt ¡ d�}g }t g d¢¡D ]$}z|j}| d¡r,|d dkr,| 	|¡ W q tj
tjfy:   Y qw |jdd„ dd	� |d
d… }d}t|dƒD ]2\}}| dd¡d
d… }	| dd¡}
| dd¡}|d|› d|	› d�7 }|d|
d›d|d›d�7 }qQ|sˆd}|d
d… |_|jdd� |j|d�I d
H  W d
S  ty¾ } z| d|› �¡I d
H  W Y d
}~d
S d
}~ww ) u   ZobrazÃ­ top procesyu   âš™ï¸� Top Procesy©r   r   r1   )Úpidr   rG   rT   rG   gš™™™™™¹?c                 S   s   |   dd¡S )NrG   r   )Úget)Úxr   r   r   Ú<lambda>È   s    z#General.processes.<locals>.<lambda>T)ÚkeyÚreverseNé
   Ú é   r   ÚUnknowné   r   rT   r8   z.** Ú
u      ðŸ”¸ CPU: ú.1fz	% | RAM: z%

u'   Å½Ã¡dnÃ© procesy s vysokÃ½m vyuÅ¾itÃ­m.i   u#   Top 10 procesÅ¯ podle CPU vyuÅ¾itÃ­r2   r   u&   â�Œ Chyba pÅ™i naÄ�Ã­tÃ¡nÃ­ procesÅ¯: )r$   r%   r	   r   r4   rF   Úprocess_iterrU   rX   ÚappendÚNoSuchProcessÚAccessDeniedÚsortÚ	enumerater   r5   r   r&   )r   r   r   Ú	processesÚprocÚ	proc_infoÚtop_processesÚprocess_textÚir   ÚcpuÚmemoryr*   r   r   r   rj   ´   sF   €ý
€ÿ$€ÿzGeneral.processesc                 Ã   sÒ  �zÉt jd| jt ¡ d�}t ¡ }tjdd�}tjdd�}zt ¡ }|r'|j	nd}|r1|j
r1|j
nd}W n   d}d}Y t ¡ rIt ¡ dd	… nd
}	|jdd|› d|› dt ¡ › d|	› d�	dd� |rkd|d›d�nd}
|ry|
d|d›d�7 }
n|
d7 }
|jdd|› d|
› �dd� z/tjddd�}d}t|dd… ƒD ]\}}|d |d › d!|› d�7 }q�|r¹|jd"|dd� W n   Y |j|d#�I dH  W dS  tyè } z| d$|› �¡I dH  W Y d}~dS d}~ww )%u   DetailnÃ­ info o CPUu   ðŸ–¥ï¸� CPU InformacerV   T)Úlogicalr_   )Úintervalr   Né2   r`   u   ðŸ“Š ZÃ¡kladnÃ­ informaceu   ðŸ”¸ FyzickÃ¡ jÃ¡dra: **u   **
ðŸ”¸ LogickÃ¡ jÃ¡dra: **u   **
ðŸ”¸ Architektura: **u   **
ðŸ”¸ Procesor: **r8   Fr9   u   ðŸ”¸ Frekvence: **z.0fz MHz**
u   ðŸ”¸ Frekvence: **N/A**
u   ðŸ”¸ Max frekvence: **z MHz**u   ðŸ”¸ Max frekvence: **N/A**u
   âš¡ VÃ½konu   ðŸ”¸ VyuÅ¾itÃ­: **z%**
)Úpercpurs   r^   é   u   JÃ¡dro z: **u   ðŸ”§ VyuÅ¾itÃ­ jaderr   u&   â�Œ Chyba pÅ™i naÄ�Ã­tÃ¡nÃ­ CPU info: )r$   r%   r	   r   r4   rF   Ú	cpu_countrG   Úcpu_freqÚcurrentÚmaxÚplatformÚ	processorrA   Úmachineri   r   r&   )r   r   r   rw   Úcpu_count_logicalrG   rx   Úfreq_currentÚfreq_maxÚprocessor_nameÚ	freq_textÚcpu_per_coreÚ
cores_textro   rI   r*   r   r   r   ÚcpuinfoÝ   sn   €ýÿþýøÿú
€$€ÿzGeneral.cpuinfoc              
   Ã   sN  �z‡t jd| jt ¡ d�}t ¡ }|jd }|jd }|j	d }d|d›d|d›d|j
d›d|d›d	�	}t|d
ƒrE|d|jd d›d	�7 }|jd|dd� z+t ¡ }|jdkrw|jd }	|jd }
|jdd|	d›d|
d›d|j
d›d�dd� W n   Y |j|d�I dH  W dS  ty¦ } z| d|› �¡I dH  W Y d}~dS d}~ww )u   Informace o pamÄ›tiu   ðŸ’¾ PamÄ›Å¥ (RAM)rV   é   @u   ðŸ”¸ Celkem: **rc   õ    GB**
ðŸ”¸ PouÅ¾ito: **ú GB** (u   %)
ðŸ”¸ DostupnÃ©: **ú GB**Úcachedu   
ðŸ”¸ Cache: **u   ðŸ“Š VirtuÃ¡lnÃ­ pamÄ›Å¥Fr9   r   u   ðŸ”„ Swap pamÄ›Å¥z%)Tr   Nu%   â�Œ Chyba pÅ™i naÄ�Ã­tÃ¡nÃ­ pamÄ›ti: )r$   r%   r	   r   r4   rF   rH   ÚtotalÚusedÚ	availablerI   ÚhasattrrŠ   rA   Úswap_memoryr   r&   )r   r   r   rq   Útotal_gbÚused_gbÚavailable_gbÚram_textÚswapÚswap_total_gbÚswap_used_gbr*   r   r   r   Úmeminfo   s`   €ý



ÿÿþÿ
ý



ÿÿú€$€ÿzGeneral.meminfoc                 Ã   s>  �zt jd| jt ¡ d�}t ¡ }|dd… D ]]}zDt |j¡}|j	d }|j
d }|jd }|dkr9|| d nd}	|jd|j› �d	|j› d
|d›d|d›d|	d›d|d›d�dd� W q ttfyt   |jd|j› �ddd� Y qw |j|d�I dH  W dS  tyž }
 z| d|
› �¡I dH  W Y d}
~
dS d}
~
ww )u   Informace o discÃ­chu
   ðŸ’¿ DiskyrV   Né   r†   r   éd   u   ðŸ’¾ u   ðŸ”¸ SystÃ©m: **u   **
ðŸ”¸ Celkem: **rc   r‡   rˆ   u   %)
ðŸ”¸ VolnÃ©: **r‰   Tr9   u   â�Œ NemÃ¡m oprÃ¡vnÄ›nÃ­r   u$   â�Œ Chyba pÅ™i naÄ�Ã­tÃ¡nÃ­ diskÅ¯: )r$   r%   r	   r   r4   rF   Údisk_partitionsÚ
disk_usageÚ
mountpointr‹   rŒ   ÚfreerA   ÚdeviceÚfstypeÚPermissionErrorÚOSErrorr   r&   )r   r   r   rš   Ú	partitionÚusager�   r‘   Úfree_gbrI   r*   r   r   r   ÚdiskinfoU  sP   €ý




ÿþþý
ø


ýÿ$€ÿzGeneral.diskinfoc                 Ã   sˆ  �z¤t jd| jt ¡ d�}t ¡ }|jd }|jd }|j	dd|d›d|d›d|j
d	›d
|jd	›d�	dd� t|dƒrWt|dƒrW|jsF|jrW|j	dd|j› d|j› d�dd� z>t ¡ }d}t| ¡ ƒdd… D ]!\}}	|	D ]}
t|
dƒrˆ|
jdkrˆ|d|› d|
j› d�7 } qhqnqh|r”|j	d|dd� W n   Y |j|d�I dH  W dS  tyÃ } z| d|› �¡I dH  W Y d}~dS d}~ww )u   SÃ­Å¥ovÃ© statistikyu
   ðŸŒ� SÃ­Å¥rV   r†   u   ðŸ“Š CelkovÃ© statistikyu   ðŸ“¤ OdeslÃ¡no: **z.2fu    GB**
ðŸ“¥ PÅ™ijato: **u    GB**
ðŸ“¦ Pakety odeslanÃ©: **ú,u   **
ðŸ“¦ Pakety pÅ™ijatÃ©: **r8   Fr9   ÚerrinÚerroutu   âš ï¸� Chybyu   â�Œ Chyby pÅ™Ã­jem: **u   **
â�Œ Chyby odeslÃ¡nÃ­: **Tr^   Né   Úfamilyé   u   ðŸ”¸ **z**: rb   u   ðŸ”Œ RozhranÃ­r   u$   â�Œ Chyba pÅ™i naÄ�Ã­tÃ¡nÃ­ sÃ­tÄ›: )r$   r%   r	   r   r4   rF   Únet_io_countersÚ
bytes_sentÚ
bytes_recvrA   Úpackets_sentÚpackets_recvrŽ   r§   r¨   Únet_if_addrsÚlistÚitemsrª   Úaddressr   r&   )r   r   r   Únet_ioÚsent_gbÚrecv_gbr±   Úinterfaces_textÚinterface_nameÚinterface_addressesr´   r*   r   r   r   Únetwork~  sd   €ý


ÿþýø
ÿú
€ý€$€ÿzGeneral.networkNrO   c              
   Ã   sd  �|du r|j }zotddƒ�}t |¡}W d  ƒ n1 sw   Y  | t|jƒddddœ¡}tjd|j	› �| j
d�}|jdd	| d
d¡› d	�dd� |jdd	| dd¡d›d	�dd� |jdd	| dd¡d›d	�dd� |j|jjd� W n/ ty‰   tjdd| j
d�}Y n ty¦ } ztjdd|› �| j
d�}W Y d}~nd}~ww |j|d�I dH  dS )u   RychlÃ© info o leveluNzleveling_data.jsonÚrr   )ÚxpÚlevelÚmessagesu   â­� Level - ©r   r   u
   ðŸ“ˆ Levelr8   r¾   Tr9   u   â­� XPr½   r¦   u   ðŸ’¬ ZprÃ¡vyr¿   r=   u   â�Œ Leveling systÃ©mu   Leveling data nejsou dostupnÃ¡.r   u	   â�Œ Chybau   Chyba pÅ™i naÄ�Ã­tÃ¡nÃ­ dat: r   )rR   ÚopenÚjsonr+   rX   r'   Úidr$   r%   Údisplay_namer	   rA   rQ   rS   r>   ÚFileNotFoundErrorr&   r   )r   r   rO   ÚfÚdataÚ	user_datar   r*   r   r   r   r¾   ¹  s>   €ÿ
þ ""
ýý€ÿzGeneral.levelÚhelpc                 Ã   sâ  �zt dd� t dd¡}W n ty   d}Y nw �z¶|du rvtjdd| jt ¡ d�}| j	j
r?| j	j
jr?|j| j	j
jjd	� |jd
d|› d|› d|› d|› d|› d�dd� |jdddd� |jdd|› d|› d|› d|› d�	dd� �n4| ¡ dkr›tjd| jd�}|jdd|› d|› d|› d |› d!�	dd� �n| ¡ d"krÇtjd#| jd�}|jd$d|› d%|› d&|› d'|› d(�	dd� |jd)d*dd� nã| ¡ d+k�rtjd,| jd�}|jd-d|› d.|› d/|› d0|› d1|› d2|› d3�dd� |jd4d|› d5|› d6|› d7�dd� |jd8d9dd� nž| ¡ d:k�rutjd;| jd�}|jd<d|› d=|› d>|› d?�dd� |jd@d|› dA|› dB|› dC|› dD|› dE�dd� |jdFd|› dG|› dH|› dI|› dJ|› dK�dd� |jdLd|› dM|› dN�dd� |jdOdPdd� n5| ¡ dQk�r•tjdR| jd�}|jdSdTdd� |jdUdVdd� ntjdWdX|› dY�| jdZ�}|jd[d\dd� |jd]|› d^�| j	j
�rÂ| j	j
j�rÂ| j	j
jjndd_� |j|d`�I dH  W dS  t�yð } z| da|› �¡I dH  W Y d}~dS d}~ww )bu#   KompletnÃ­ nÃ¡povÄ›da s kategoriemiTr   ÚPREFIXú!Nu%   ðŸ¤– TitanBot - KompletnÃ­ NÃ¡povÄ›dau9   PokroÄ�ilÃ½ Discord bot s monitoring, leveling a sprÃ¡vour0   r=   u   ðŸ“‹ Kategorie pÅ™Ã­kazÅ¯ú`u(   help general` - ðŸ”§ ObecnÃ© pÅ™Ã­kazy
`u&   help admin` - âš™ï¸� Admin & sprÃ¡va
`u.   help monitoring` - ðŸ–¥ï¸� Server monitoring
`u'   help leveling` - â­� Leveling systÃ©m
`u5   help moderation` - ðŸ›¡ï¸� Moderace (v jinÃ©m modulu)Fr9   u   ðŸŒ� Web DashboarduW   **[localhost:5000](http://localhost:5000)**
KomplexnÃ­ sprÃ¡va pÅ™es webovÃ© rozhranÃ­!u"   âš¡ NejpouÅ¾Ã­vanÄ›jÅ¡Ã­ pÅ™Ã­kazyu'   ping` - Test odezvy (v jinÃ©m modulu)
`zinfo` - Info o botovi
`zrank` - Tvoje level
`zmonitoring` - Status serveruÚgeneralu   ðŸ”§ ObecnÃ© pÅ™Ã­kazyrÀ   u   ðŸ“Š ZÃ¡kladnÃ­ pÅ™Ã­kazyzinfo` - Informace o botovi
`u    help [kategorie]` - NÃ¡povÄ›da
`u   ai <otÃ¡zka>` - AI asistent
`ztf2` - TF2 videoÚadminu   âš™ï¸� Admin pÅ™Ã­kazyu   ðŸ”§ SprÃ¡va cogÅ¯u   load <cog>` - NaÄ�te modul
`u   unload <cog>` - OdpojÃ­ modul
`u$   reload <cog>` - Znovu naÄ�te modul
`zshutdown` - Vypne botau   âš ï¸� PoznÃ¡mkyu"   Pouze pro administrÃ¡tory serveru!Ú
monitoringu   ðŸ–¥ï¸� Server Monitoringu   ðŸ“Š SystÃ©movÃ© informaceu)   monitoring` - CelkovÃ½ pÅ™ehled serveru
`u%   processes` - Top bÄ›Å¾Ã­cÃ­ procesy
`u!   cpuinfo` - DetailnÃ­ info o CPU
`u$   meminfo` - VyuÅ¾itÃ­ pamÄ›ti (RAM)
`u"   diskinfo` - Informace o discÃ­ch
`u   network` - SÃ­Å¥ovÃ© statistikyu   ðŸš¨ Alertyu"   testalert` - Test alert systÃ©mu
`u(   forcealert` - VynutÃ­ kontrolu alertÅ¯
`z&reloadmonitoring` - Reload konfiguraceu   ðŸŒ� Web interfaceuB   PokroÄ�ilÃ¡ konfigurace: **localhost:5000** â†’ ðŸ–¥ï¸� MonitoringÚlevelingu   â­� Leveling SystÃ©mu   ðŸ‘¤ UÅ¾ivatelskÃ© pÅ™Ã­kazyu%   rank [@user]` - ZobrazÃ­ rank kartu
`u0   leaderboard [strÃ¡nka]` - Å½ebÅ™Ã­Ä�ek serveru
`u&   level [@user]` - RychlÃ© info o leveluu   âš™ï¸� Admin konfiguraceu$   levelconfig` - HlavnÃ­ konfigurace
`u3   levelconfig enable/disable` - Zapne/vypne systÃ©m
`u+   levelconfig xp <Ä�Ã­slo>` - XP za zprÃ¡vu
`z,levelconfig cooldown <sekundy>` - Cooldown
`u0   levelconfig channel <#kanÃ¡l>` - Level up kanÃ¡lu   ðŸŽ­ Role & KanÃ¡lyu;   levelconfig addrole <level> <@role>` - PÅ™idÃ¡ level roli
`z0levelconfig removerole <level>` - Odebere roli
`u0   levelconfig blacklist <#kanÃ¡l>` - ZakÃ¡Å¾e XP
`uA   levelconfig multiplier <#kanÃ¡l> <Ä�Ã­slo>` - XP multiplikÃ¡tor
`u0   levelconfig reset <@user>` - Resetuje uÅ¾ivateleu   ðŸ”§ SprÃ¡va XPu'   addxp <@user> <Ä�Ã­slo>` - PÅ™idÃ¡ XP
`u(   removexp <@user> <Ä�Ã­slo>` - Odebere XPu   ðŸŒ� Web konfiguraceu;   PokroÄ�ilÃ© nastavenÃ­: **localhost:5000** â†’ â­� LevelingÚ
moderationu   ðŸ›¡ï¸� Moderaceu   â„¹ï¸� Informaceuk   Moderace pÅ™Ã­kazy jsou v samostatnÃ©m modulu `moderation.py`.
PouÅ¾ij `!help` v kanÃ¡lu kde jsou aktivnÃ­.u   ðŸ”§ ZÃ¡kladnÃ­ pÅ™Ã­kazyu±   â€¢ `clear` - MazÃ¡nÃ­ zprÃ¡v
â€¢ `purge` - MazÃ¡nÃ­ zprÃ¡v uÅ¾ivatele
â€¢ `slowmode` - NastavenÃ­ slowmode
â€¢ `ban`, `kick`, `timeout` - Sankce
â€¢ `warn` - VarovÃ¡nÃ­ systÃ©mu   â�Œ NeznÃ¡mÃ¡ kategoriezKategorie `z` neexistuje!r   u   ðŸ“‹ DostupnÃ© kategorie:zD**general**, **admin**, **monitoring**, **leveling**, **moderation**u   TitanBot â€¢ Prefix: u'    â€¢ Web: localhost:5000 â€¢ Verze: 2.1r?   r   u)   â�Œ Chyba pÅ™i zobrazovÃ¡nÃ­ nÃ¡povÄ›dy: )r   ÚosÚgetenvr&   r$   r%   r	   r   r4   r   rO   rP   rQ   r>   rA   Úlowerr5   r   )r   r   ÚcategoryÚcurrent_prefixr   r*   r   r   r   Úhelp_commandê  sx  €
ÿüÿþýü÷ýÿþý
øÿþý
øÿþýø
ýÿþýüûöÿþù	ýÿþù	ÿþýü÷ÿþýü÷ÿúýý÷
ýý
$þ$€ÿzGeneral.help_commandÚpromptÚreturnc           	   
   Ã   sX  �d}t jdd�}d|› d�}zƒt j|d�4 I d H šk}|j|d|idd	id
�4 I d H šC}|jdkrS| ¡ I d H }| dd¡W  d   ƒI d H  W  d   ƒI d H  W S d|j› �W  d   ƒI d H  W  d   ƒI d H  W S 1 I d H stw   Y  W d   ƒI d H  W d S 1 I d H s‹w   Y  W d S  ty« } zdt|ƒ› �W  Y d }~S d }~ww )Nzhttp://localhost:8000/aské   )r‹   u!   OdpovÄ›z Ä�esky na tuto otÃ¡zku: u   
OdpovÄ›Ä� v Ä�eÅ¡tinÄ›:)Útimeoutr3   úContent-Typeúapplication/json)rÂ   ÚheaderséÈ   Úansweru   Å½Ã¡dnÃ¡ odpovÄ›Ä�.u   â�Œ Chyba API: u   â�Œ Chyba pÅ™ipojenÃ­: )	ÚaiohttpÚClientTimeoutÚClientSessionÚpostÚstatusrÂ   rX   r&   r'   )	r   rØ   Úapi_urlrÛ   Úczech_promptÚsessionÚresponserÇ   r*   r   r   r   Úgenerate_answer²  s4   €ý

ùÿ

÷ÿ2ÿ€ÿzGeneral.generate_answerÚai)rØ   c             
   ƒ   sZ  �|s|  d¡I dH  dS zÓ|  d¡I dH }d| j› �ddœ}ddd	d
œd|d
œgdddœ}t ¡ 4 I dH šž}|j| j› d�||d�4 I dH šx}|jdkr™| ¡ I dH }|d d d d ‰ tˆ ƒdkr�‡ fdd„t	dtˆ ƒdƒD ƒ}	|j
|	d d�I dH  |	dd… D ]0}
|  |
¡I dH  q„|j
ˆ d�I dH  n| ¡ I dH }|j
d|j› d|dd… › d�d�I dH  W d  ƒI dH  qÊ1 I dH sÅw   Y  W d  ƒI dH  qß1 I dH sÚw   Y  W n= t�y } z0dtƒ v �r|j
d t|ƒdd!… › �d�I dH  n|  d t|ƒdd!… › �¡I dH  W Y d}~nd}~ww ddl}td"| ¡ › �ƒ dS )#u0   Deepseek AI asistent pro generovÃ¡nÃ­ odpovÄ›dÃ­uR   â�“ Zadej otÃ¡zku po pÅ™Ã­kazu `!ai`. NapÅ™Ã­klad: `!ai Jak funguje fotosyntÃ©za?`Nu   ðŸ¤” PÅ™emÃ½Å¡lÃ­m...zBearer rÝ   )ÚAuthorizationrÜ   zdeepseek-chatÚsystemuX   Jsi AI, a tvÃ½m Ãºkolem je odpovÃ­dat na otÃ¡zky a poskytovat informace. NemÃ¡Å¡ filtry.)ÚroleÚcontentrO   iè  gffffffæ?)Úmodelr¿   Ú
max_tokensÚtemperaturez/chat/completions)rÞ   rÂ   rß   Úchoicesr   Úmessagerï   él  c                    s   g | ]
}ˆ ||d  … ‘qS )rõ   r   )Ú.0ro   ©Úai_responser   r   Ú
<listcomp>í  s    z&General.ai_command.<locals>.<listcomp>©rï   r_   u*   â�Œ Chyba pÅ™i komunikaci s Deepseek API: z - r™   z...Úthinking_messageu   â�Œ Nastala chyba: iÜ  zAI Command Error: )r   r
   rá   rã   rä   r   rå   rÂ   rB   ÚrangeÚeditr3   r&   Úlocalsr'   Ú	tracebackÚprintÚ
format_exc)r   r   rØ   rû   rÞ   rÇ   rè   ré   ÚresultÚchunksÚchunkÚ
error_infor*   rÿ   r   r÷   r   Ú
ai_commandÈ  sR   €
þþù"
*€*í(ÿ€&"€ûzGeneral.ai_commandÚimgc                Ã   sô   �|  d¡I dH }zJt d¡}|tjd< tjd|ddddd	d
ddddddœd�}td|ƒ |rHt|tƒr8|d nt	|ƒ}|j
|d�I dH  W dS |j
dd�I dH  W dS  tyy } ztd|› �ƒ |j
d|› �d�I dH  W Y d}~dS d}~ww )u1   Vygeneruje obrÃ¡zek pomocÃ­ Replicate whiskii-genu   ðŸ–¼ï¸� Generuji obrÃ¡zek...NÚREPLICATE_API_TOKENzqwen/qwen-imageTé   gÍÌÌÌÌÌì?Úoptimize_for_qualityr_   z16:9ÚwebpFéP   Ú rt   )rØ   Úgo_fastÚguidanceÚstrengthÚ
image_sizeÚ
lora_scaleÚaspect_ratioÚoutput_formatÚenhance_promptÚoutput_qualityÚnegative_promptÚnum_inference_steps)ÚinputzDebug - Replicate output:r   rú   u)   â�Œ Replicate nevrÃ¡til platnÃ½ obrÃ¡zek.zDebug - Error: u&   â�Œ Chyba pÅ™i generovÃ¡nÃ­ obrÃ¡zku: )r   rÒ   rÓ   ÚenvironÚ	replicateÚrunr   Ú
isinstancer²   r'   rý   r&   )r   r   rØ   ÚmsgÚreplicate_tokenÚoutputÚ	image_urlr*   r   r   r   Úgenerate_image  s@   €

ôþ
&€þzGeneral.generate_image©N)Ú__name__Ú
__module__Ú__qualname__r   r   Úcommandr   Úhas_permissionsr+   r.   r/   r7   rU   rj   r…   r—   r¥   r»   r$   ÚMemberr¾   r×   r'   rê   r  r"  r   r   r   r   r      sL    






E
(
B
4
(
:
0 H

;r   c                 Ã   s   �|   t| ƒ¡I d H  d S r#  )Úadd_cogr   )r   r   r   r   Úsetup-  s   €r+  )r$   Údiscord.extr   rá   rÒ   rF   r{   rJ   rÂ   r   Údotenvr   Úopenair  ÚioÚCogr   r+  r   r   r   r   Ú<module>   s,    
      #