o
    ;Gh                     @   s(  d dl mZmZmZ d dlmZ d dl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mZ d dlm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eddZe ZeeedZ ej!ej"d dZ#i Z$G dd deZ%G dd deZ&e j'dgddej(fddZ)e j'ej*j+ddej(fddZ,e -dd dej	fdd Z.e -d!d dej	fd"d#Z/e j'd$gd%d&d;dej(fd(d)Z0e j'd*gd%d&d;dej(fd+d,Z1e j'e&j2d-dej(d.efd/d0Z3e j'e&j4d-dej(d.efd1d2Z5d3efd4d5Z6d6efd7d8Z7d9d: Z8d
S )<    )Bot
Dispatchertypes)executor)InlineKeyboardButtonInlineKeyboardMarkupCallbackQuery)MemoryStorage)
FSMContext)StateStatesGroup)fmt_maintain_paramsfmt_type)ask)call_maintain_apiNz.7542850818:AAEvT7wQOTRmJm5m_3Td3CS_GLcR0nPdY6Q)token)storage)levell#+ c                   @   s   e Zd Ze ZdS )FormN)__name__
__module____qualname__r   waiting_for_confirm r   r   3/var/www/html/tg_maintain_bot/bot/tg_bot_aiogram.pyr      s    
r   c                   @   s   e Zd Ze Ze ZdS )StopMaintenanceN)r   r   r   r   waiting_for_platform_namewaiting_for_platform_name_testr   r   r   r   r   !   s    
r   start)commandsmessagec                    s   |  dI d H  d S )NzHello! I'm a bot!)reply)r    r   r   r   send_welcome&   s   r"   )content_typesc                    sh  | j j}t| j |dv rt| jd}t|}|d dkr\t|}tt	 }|t
|< tdd}|tdd| d	d
tdd| dd
tdd| d
 tjt||dI d H  d S | jdksf| jdkrot| I d H  d S | jdksy| jdkrt| I d H  d S d S | jdks| jdkrt| I d H  d S | jdks| jdkrt| I d H  d S | dI d H  d S )N)group
supergroup)querytypeu   維護訊息   )	row_widthu+   ✅✅ 開啟我方“正式”平台維護confirm|u   |正式)callback_datau(   ✅ 開啟我方“測試”平台維護u   |測試u   ❌ 取消指令cancel|)chat_idtextreply_markup/stopz/stop@wsky_maintain_bot
/stop_testz/stop_test@wsky_maintain_botu   我不提供私訊功能 📨)chatr'   printr.   r   r   r   struuiduuid4pending_confirmationsr   addr   botsend_messageGROUP_IDhandle_stophandle_stop_testr!   )r    	chat_typeresponser'   fmt_datauidkeyboardr   r   r   handle_group_text*   s6   

rC   c                 C      | j dS )Nr*   data
startswithcr   r   r   <lambda>P       rJ   callback_queryc                    s   |  dI d H  | jdd }t|}| jdd dk}t|r'g dng d|| jdI d H  |sCt| jj	j
d	I d H  d S tj| jj	j
| jjd d
I d H  t| jj	j
dI d H  d S )Nu   ✅ 維護流程已確認|r(      u   測試u   911機台測試站u   飛龍測試站u   魔方測試站u   馬上發測試站u   馬上發測試站VNu   911機台正式站u   飛龍正式站u   魔方正式站u   馬上發正式站u   馬上發正式站VN)maintain_platformr@   r9   u   ⚠️ 無效或過期的資料r-   
message_idr/   u   完成指令)answerrF   splitr7   getr   r    r9   r:   r2   idedit_message_reply_markuprS   )rL   rA   r@   is_testr   r   r   handle_confirmP   s&   
rZ   c                 C   rD   )Nr,   rE   rH   r   r   r   rJ   n   rK   c                    sN   |  dI d H  tj| jjj| jjd dI d H  t| jjjdI d H  d S )Nu   ❌ 已取消rR   u   ❌ 指令已取消)rT   r9   rX   r    r2   rW   rS   r:   )rL   r   r   r   handle_canceln   s   r[   stop/)r   commands_prefixFc                    &   |  dI d H  tj I d H  d S )Nu?   請輸入欲取消維護的“”“正式”“”平台名稱)r!   r   r   setr    rY   r   r   r   r<   |      r<   	stop_testc                    r_   )NuB   請輸入欲取消維護的“”“測試站”“”平台名稱)r!   r   r   r`   ra   r   r   r   r=      rb   r=   )staterd   c                    `   | j  }tg d| dddddd| dI d H  | d| dI d H  | I d H  d S )NrP    platforms_dates_timee_datee_timeTrQ   r@   cancel_maintainr9      ✅ 已成功取消     的維護！r.   stripr   upperr!   finishr    rd   platform_namer   r   r   handle_platform_name   s   
rw   c                    re   )NrO   rf   rg   Trm   ro   rp   rq   ru   r   r   r   handle_platform_name_test   s   
rx   r9   c                    s2   t jdddt jdddg}| |I d H  d S )Nr0   u*   取消“正式正式正式”平台維護)commanddescriptionr1   )r   
BotCommandset_my_commands)r9   r   r   r   r   set_commands   s
   r}   dpc                    s   t | jI d H  d S )N)r}   r9   )r~   r   r   r   
on_startup   s   r   c                   C   s   t d tjtdtd d S )NzBot is runningT)skip_updatesr   )r3   r   start_pollingr~   r   r   r   r   r   init_bot_aiogram   s   r   )F)9aiogramr   r   r   aiogram.utilsr   aiogram.typesr   r   r   "aiogram.contrib.fsm_storage.memoryr	   aiogram.dispatcherr
    aiogram.dispatcher.filters.stater   r   utils.fmt_maintain_paramsr   r   openai_config.openai_utilsr   api.apir   sysospandaspdloggingr5   r9   r   r~   basicConfigINFOr;   r7   r   r   message_handlerMessager"   ContentTypeTEXTrC   callback_query_handlerrZ   r[   r<   r=   r   rw   r   rx   r}   r   r   r   r   r   r   <module>   sR    
%