o
    ƹe@                     @   s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
m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 d dlZd dlmZ ed G dd dZG dd dZG dd deZdS )    )Any)render)View)JsonResponse)FirebaseManager)pushNotificationView)BackgroundScheduler)DateTrigger)DjangoJobStoreregister_eventsregister_job)datetime	timedeltaN)SCHEDULE_TIMEzsched startedc                   @   s>   e Zd Zedd Zedd ZedddZedd	 Zd
S )TimeManagerc                 C   s\   t tt| d}t|dd t|dd  g}|dd dkr*|d d |d< || S )	N-r      u   오후   )listmapintsplit)datetime	date_list	time_list r   1/home/api_server/kakao_chatbot/scheduler/views.pyparsingDatetime   s     zTimeManager.parsingDatetimec                 C   s   | d d | dd  }}d\}}|D ]
}|t |d 7 }q|d dkr2dt |d d d }ndt |d d }|d d	 |d
 t |d d }}||fS )N   ) r#   r   r   r   u   오후 r   u   오전 :   )strzfill)date_time_listr   r   r   r   tmpr   r   r    formattingDatetime   s   ((zTimeManager.formattingDatetimer   c                 C   sX   ddl m } | }t|t| d d t|t| d t|t| d d dS )Nr   )r      minutes)min_timenow_timemax_time)r   nowr   convertDatetimeTolistr   )schedule_timer   r2   r   r   r    getCurrentTime$   s   zTimeManager.getCurrentTimec                 C   s   | j | j| j| j| jgS N)yearmonthdayhourminute)	datetime_r   r   r    r3   +   s   z!TimeManager.convertDatetimeTolistN)r   )__name__
__module____qualname__staticmethodr!   r+   r5   r3   r   r   r   r    r      s    

r   c                   @   s.   e Zd Zd	ddZedd Zedd ZdS )
ScheduleManagerreturnNc                 C   s   d S r6   r   )selfr   r   r    __init__0   s   zScheduleManager.__init__c                  C   s   t  } |  }i }|g krtddiS |D ]3}dt| vr'tddi  S |d }| |}t|d |d |}td|j	 |j	||d < qtd|j	iS )NmessagezNO SCHEDULE DATAfriendszNO SCHEDULE-FRIENDS DATAfcmTitlefcmContentssucess_count)
r   getScheduler   r   keysgetTokenr   multicastMessageprintsuccess_count)fmschedul_dict_listreturn_dataschedul_dictfriends_listfriends_token_dictresponser   r   r    fcmSchedule2   s   
zScheduleManager.fcmSchedulec                 C   st   t  }t| | t| |}t| ttd }td| |jtj	t
|dt|d t| |  t|  d S )Nr-   zdatetime : )run_date)triggerid)r   rN   r   r!   r   r   r   add_jobrA   rW   r	   r'   r   startget_jobs)r   r   scheddatetime_listr   r   r    updateScheduleB   s   

zScheduleManager.updateSchedule)rB   N)r=   r>   r?   rD   r@   rW   r`   r   r   r   r    rA   /   s    

rA   c                   @   s   e Zd Zdd Zdd ZdS )schedulerViewc                 C   s*   |j d|j d}}t|| d S )Nr   r   )GETgetrA   r`   )rC   requestr   r   r   r   r    rc   R   s   zschedulerView.getc                 C   s4   t |j}t|d |d  td tddiS )Nr   r   UPDATE_SCHEDULERMessage)jsonloadsbodyrA   r`   rN   r   )rC   rd   datar   r   r    postU   s   zschedulerView.postN)r=   r>   r?   rc   rk   r   r   r   r    ra   Q   s    ra   )typingr   django.shortcutsr   django.viewsr   django.httpr   userInfo.viewsr   	fcm.viewsr   !apscheduler.schedulers.backgroundr   apscheduler.triggers.dater	   django_apscheduler.jobstoresr
   r   r   r   r   rg   kakao_chatbot.settingsr   rN   r   rA   ra   r   r   r   r    <module>   s     "