
    Yiz                       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 e	j.                          e	j0                  d	d
d       e	j0                  ddd
 e	j                  de      d       e	j0                  ddd
ed       e	j0                  dd
d      	 	 	 	 	 	 	 	 	 	 dd                                   Zedk(  r e        yy)u   
录制单个 LPL/LOL Polymarket 市场的完整 CLOB orderbook。

手动停止：Ctrl+C。

示例：
    python3 scripts/record_lpl_orderbook.py --slug lol-lgd-edg-2026-04-23-game1
    )annotationsN)Path)load_dotenv)logger)LplOrderbookRecorderc                     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_orderbook.py_setup_loggingr      s?    
MMO
JJ

jjnn[&1779b	r   z--slugTu)   要录制的单个 Polymarket market slug)requiredhelpz--output-rootzdata/lplF)	file_okay	path_typeu   JSONL 输出根目录)defaultshow_defaulttyper   z--snapshot-interval-secondsg      ?u&   周期完整 orderbook snapshot 间隔z--insecure-sslu>   关闭 HTTPS 证书校验，仅用于本机 CA 缺失时调试)is_flagr   c                   t                t                t        | |||      }t        j                         }t        j
                  |       t        j                  t        j                  fD ]  }|j                  ||j                           t        j                  d|         	 |j                  |j                                |j                          t        j                  d|         y # |j                          w xY w)N)slugoutput_rootsnapshot_interval_secondsinsecure_sslu!   开始录制 LPL orderbook: slug=u   录制已停止: slug=)r   r   r   asyncionew_event_loopset_event_loopsignalSIGINTSIGTERMadd_signal_handlerstopr   inforun_until_completerunclose)r#   r$   r%   r&   recorderloopsigs          r   mainr6   &   s    . M#";!	H !!#D4 v~~. 4X]]34 KK3D6:;/


KK(/0 	

s   'C/ /D__main__)returnNone)
r#   strr$   r   r%   floatr&   boolr8   r9   )__doc__
__future__r   r'   r   r*   r   pathlibr   clickdotenvr   logurur   pathdirnameabspath__file__ROOTinsertanalysis.lpl_orderbook.recorderr   r   commandoptionr;   r6   __name__r   r   r   <module>rM      s_   #  	  
    	wwrwwrwwx'@ABsxxHHOOAt @ h,WX	et	4	  !		1 3st1
11  %1 	1
 
1 u Y "18 zF r   