
    h                         d dl mZ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 ddlmZmZmZ ddlmZ ddlmZmZmZ  G d	 d
e      Zy)    )print_functionunicode_literalsN   )ANYWIN)AuthSrv)	BrokerCliExceptionalQueue
NotExQueue)HttpSrv)FAKE_MPDaemonHMaccasc                   X     e Zd ZdZ fdZd ZddZddZddZd Z	d	 Z
dd
dZ xZS )MpWorkerzone single mp instancec                 J   t         t        |           || _        || _        || _        || _        |j                  r|j                  s| j                  n| j                  | _        i | _        t        j                         | _        t        j                         | _        t"        slt$        j&                  t$        j(                  g}t*        s|j-                  t$        j.                         |D ]"  }t%        j$                  || j0                         $ t3        |d d      | _        t7        t8        j:                  j=                  | j
                  j>                  j@                  d      d      | _!        tE        | |      | _#        tI        | jJ                  d      j=                          y )NFiphash   zmpw-main)&superr   __init__q_pendq_yieldargsnqlo_log_disabled_log_enabledlogretpend	threadingLockretpend_mutexmutexr   signalSIGINTSIGTERMr   appendSIGUSR1signal_handlerr   asrvr   ospathjoinEcfgr   r   httpsrvr   main)selfr   r   r   r   sigssig	__class__s          I/jellyfin/media/venv/lib/python3.12/site-packages/copyparty/broker_mpw.pyr   zMpWorker.__init__   s$    	h&(	)-4%%TEVEV&^^-^^%
 MM6>>2DFNN+ 8c4#6#678 D$.	 bggll499;;??HEqItQ' 	tyy*%**,    c                      y N )r2   r4   frames      r6   r)   zMpWorker.signal_handler>   s    r7   r   c                 F    | j                   j                  dd|||gf       y )Nr   r   )r   putr2   srcmsgcs       r6   r   zMpWorker._log_enabledB   s!    !US#qM23r7   c                      y r9   r:   r>   s       r6   r   zMpWorker._log_disabledE   s    r7   c                 F    | j                  d| j                  fz  ||       y )Nzmp%d)r   r   )r2   r@   rA   s      r6   logwzMpWorker.logwH   s    466)#S!,r7   c                    	 | j                   j                         \  }}}|dk(  rB| j                  5  | j                  j	                  |      }d d d        j                  |       f|dk(  rA| j                  j                          | j                  d       t        j                  d       y |dk(  r=| j                  d       | j                  j                          | j                  d       |dk(  r;| j                  j                  5  | j                  j                          d d d        .| }|j                  d	      D ]  }t!        ||      }  || }|r| j#                  d||
       n# 1 sw Y   %xY w# 1 sw Y   YxY w)Nretqshutdownzok byer   reloadzmpw.asrv reloadingzmpw.asrv reloadedreload_sessions.retq_id)r   getr"   r   popr=   r0   rG   rD   sysexitr*   rH   r#   load_sessionssplitgetattrsay)r2   rL   destr   rF   objnodervs           r6   r1   zMpWorker.mainK   sV   "&++//"3GT4v~'' 5<<++G4D5 z!%%'		(#x		./		  "		-.((YY__ .II++-.C

3 )c4() dBW5E 
5 5&. .s   E0
E=0E:=Fc                     t        d      }t        |      }| j                  5  || j                  |<   d d d        | j                  j                  ||t        |      f       |S # 1 sw Y   2xY w)Nr   )r	   idr"   r   r   r=   list)r2   rU   r   rF   rL   s        r6   askzMpWorker.askp   se    "T( 	)$(DLL!	) 	'4d45		) 	)s   A$$A-rK   c                R    | j                   j                  ||t        |      f       y r9   )r   r=   r[   )r2   rU   rL   r   s       r6   rT   zMpWorker.sayy   s    '4d45r7   )r   )__name__
__module____qualname____doc__r   r)   r   r   rD   r1   r\   rT   __classcell__)r5   s   @r6   r   r      s:     '-R4-#6J *+ 6 6r7   r   )
__future__r   r   argparser+   r$   rO   r    queuer   r   authsrvr   broker_utilr   r	   r
   r0   r   utilr   r   r   r   r:   r7   r6   <module>ri      s=    7  	  
     @ @  * *h6y h6r7   