
    W3ix                       d 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mZ ddl	Z	ddl
mZ ddlmZ ej                  j                  ej                  j                  ej                  j!                  e                  Zeej                  vrej                  j'                  de       ddlmZ d%dZd&d	Z e	j0                          e	j2                  d
dd       e	j2                  dddd       e	j2                  ddd e	j                  de             e	j2                  ddded       e	j2                  ddd       e	j2                  ddde       e	j2                  d d!de       e	j2                  d"dde      	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d'd#                                                               Zed$k(  r e        yy)(z
Record one LoL event's main winner markets in a single CLOB orderbook session.

Default targets are inferred from the event:
    moneyline plus direct game winner markets game1 through game4.
    )annotationsN)Path)load_dotenv)logger)LplEventOrderbookRecorderc                     t        j                          t        j                  t        j                  t
        j                  j                  dd      j                         dd       y )N	LOG_LEVELINFOzQ<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level:<7}</level> | {message}T)levelformatcolorize)	r   removeaddsysstderrosenvirongetupper     %scripts/record_lpl_event_orderbook.py_setup_loggingr      s?    
MMO
JJ

jjnn[&1779b	r   c                   | j                         j                         dk(  ry | j                  d      D ch c]1  }|j                         s|j                         j                         3 }}ddd}|D ch c]  }|j                  ||       }}dht	        dd      D ch c]  }d| 	 c}}||z
  }|r0t        j                  ddj                  t        |                   |S c c}w c c}w c c}w )	Nauto,	moneyline)seriesmatch      gamezunsupported markets: )	striplowersplitr   rangeclickBadParameterjoinsorted)rawitemvaluesaliases
normalizediallowedunknowns           r   _market_setr3   $   s    
yy{f$/2yy~Ntdjjl  "NFN${;G6<=d'++dD)=J=?%1+>QQCj>?G7"G  #8&/9R8S!TUU O=>s   C+ C+7C0"C5z--event-slugTzPolymarket event slug)requiredhelpz	--marketsr   z5auto, or comma-separated target markets through game4)defaultshow_defaultr5   z--output-rootzdata/lplF)	file_okay	path_type)r6   r7   typez--snapshot-interval-secondsg      ?z*Periodic full local-book snapshot interval)r6   r7   r:   r5   z--insecure-sslz&Disable SSL verification for debugging)is_flagr5   z--status-interval-secondsg      @z--jsonl-flush-everyd   z--jsonl-flush-interval-secondsc           
     (   t                t                t        | t        |      ||||||      }t	        j
                         }	t	        j                  |	       t        j                  t        j                  fD ]  }
|	j                  |
|j                           t        j                  d|  d|        	 |	j                  |j                                |	j!                          t        j                  d|         y # |	j!                          w xY w)N)
event_slugmarketsoutput_rootsnapshot_interval_secondsinsecure_sslstatus_interval_secondsjsonl_flush_everyjsonl_flush_interval_secondsu-   开始录制 LoL event orderbook: event_slug=z	 markets=u   录制已停止: event_slug=)r   r   r   r3   asyncionew_event_loopset_event_loopsignalSIGINTSIGTERMadd_signal_handlerstopr   inforun_until_completerunclose)r>   r?   r@   rA   rB   rC   rD   rE   recorderloopsigs              r   mainrU   1   s    F M(G$";! 7+%A	H !!#D4 v~~. 4X]]34 KK?
|9U\T]^_/


KK.zl;< 	

s   7C? ?D__main__)returnNone)r+   strrW   zset[str] | None)r>   rY   r?   rY   r@   r   rA   floatrB   boolrC   rZ   rD   intrE   rZ   rW   rX   )__doc__
__future__r   rF   r   rI   r   pathlibr   r'   dotenvr   logurur   pathdirnameabspath__file__ROOTinsertanalysis.lpl_orderbook.recorderr   r   r3   commandoptionrZ   r\   rU   __name__r   r   r   <module>rl      s   #  	  
    	wwrwwrwwx'@ABsxxHHOOAt E
 nt2IJ	@	 	et	4	 !		5 3[\)3TPUV#St#N.$UZ[!=!=!= !=  %	!=
 != #!= != #(!= 
!= \ O W ] K 2!=H zF r   