
    Cr%j                        d Z ddlmZ ddlZddlZddlZddlm	Z	  e	e
                                          j        Zedz  Zg dZg dZdddZddZddZddZd dZd!dZedk    r e e                      dS )"zKRefresh weekend/risk-on flow from free public Hyperliquid and Binance APIs.    )annotationsN)Pathzweekend_flow_state.json)RDWNASAMUMRVLAAOIAMDGNTA)BTCUSDTETHUSDTSOLUSDTBNBUSDTLINKUSDTFETUSDT
RENDERUSDTurlstrpayloaddict | Nonereturndict | listc                   d }ddi}|,t          j        |                              d          }d|d<   t          j                            | ||          }t          j                            |d          5 }t          j        |                                	                    d                    cd d d            S # 1 swxY w Y   d S )	Nz
User-Agentz#codex-personal-market-dashboard/1.0utf-8zapplication/jsonzContent-Type)dataheaders   )timeout)
jsondumpsencodeurllibrequestRequesturlopenloadsreaddecode)r   r   r   r   r#   responses         outputs/weekend_flow_tracker.pyrequest_jsonr+      s    DBCGz'""))'22"4n$$StW$EEG					4	4 ;z(--//0099::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s   89B>>CC	list[str]c                 f    t          dddi          } d |                     dg           D             S )Nz https://api.hyperliquid.xyz/infotypemetac                    g | ]?}|                     d           |                     d d                                          @S )name )getupper).0items     r*   
<listcomp>z.fetch_hyperliquid_universe.<locals>.<listcomp>    sG    bbbTQUQYQYZ`QaQabDHHVR  &&((bbb    universe)r+   r3   )r   s    r*   fetch_hyperliquid_universer:      s9    :VV<LMMDbbTXXj"5M5Mbbbbr8   
list[dict]c                 *   g } t           D ]}t          d|           }|                     |d         t          |d                   t	          t          |d                   d          t	          t          |d                             d           | S )Nz2https://api.binance.com/api/v3/ticker/24hr?symbol=symbol	lastPricepriceChangePercent   quoteVolume)r=   price
change_pctquote_volume_usd)BINANCE_PROXY_SYMBOLSr+   appendfloatround)rowsr=   r6   s      r*   fetch_binance_proxyrJ   #   s    D' 	
 	
YQWYYZZx.tK011#E$/C*D$E$EqII$)%]0C*D*D$E$E	 	
 	
 	
 	
 Kr8   proxiesintc                    | sdS d}d}| D ]+}t          |d         d          }||d         |z  z  }||z  },|r||z  nd}|dk    rdS |dk    rd	S |d
k    rdS |dk    rdS |dk    rdS |dk    rdS dS )Nr   g        rD      rC   g      @   g      ?r@   g?g      g      gɿmax)rK   weightedtotal_weightr6   weightavgs         r*   risk_on_scorerY   2   s     qHL  T,-q11D&//%1
:(\
!
!sC
czzq
czzq
czzq
d{{r
d{{r
d{{r1r8   scoredirect_coveragec                    t          |d d           }| dk    rd}n| dk     rd}nd}|rdnd}|s| d	| d
S | d	| d|d          d|d         ddS )Nc                    | d         S )NrD    )xs    r*   <lambda>zbuild_summary.<locals>.<lambda>L   s    *<(= r8   )keydefaultr   u    주말 위험선호가 우호적u   주말 위험회피가 우세u   주말 플로우는 중립u!   보유종목 직접 선물 있음u!   보유주식 직접 선물 없음z. uB   . 무료 API 응답이 제한되어 프록시 신뢰도는 낮음.u'   . 거래대금 기준 핵심 프록시 r=    rC   z+.2fz%.rS   )rZ   rK   r[   leadertonedirects         r*   build_summaryrg   K   s    ==tLLLFqyy1	.+4Cl00IlF edd&dddduufuuVHEUuuX^_kXluuuuur8   c                 P   g } g }g }	 t                      }n/# t          $ r"}|                     d|            Y d }~nd }~ww xY w	 t                      }n/# t          $ r"}|                     d|            Y d }~nd }~ww xY wt	          t          t                    t          |          z            }t          |          }t          j	        
                    t          j        j                                                                      d          | sdnd|t          |||          |t          t!          |          || dd
}t"                              t'          j        |d	d
          dz   d           t+          t"                     t+          |d                    dS )NzHyperliquid: z	Binance: seconds)timespecu   정상u   부분 갱신uI   Hyperliquid/Binance 무료 공개 API만 사용. 유료 데이터 없음.)

updated_atstatusrY   summaryr[   held_tickers_checkedhyperliquid_markets_countrK   errorssource_noteFr@   )ensure_asciiindent
r   )encodingrm   r   )r:   	ExceptionrF   rJ   sortedsetHELD_TICKERSrY   dtdatetimenowtimezoneutc
astimezone	isoformatrg   len	FLOW_PATH
write_textr   r    print)rp   hyperliquid_universerK   errorr[   rZ   states          r*   mainr   Y   s   F&(G/9;; / / /-e--......../+%'' + + +)%))********+ S..5I1J1JJKKO'""Ekoobko66AACCMMW`Maa"(=((o AA* ,%()=%>%>b E EaHHH4OZabbb	)	%	
1s*    
A>AA 
B A==B__main__)N)r   r   r   r   r   r   )r   r,   )r   r;   )rK   r;   r   rL   )rZ   rL   rK   r;   r[   r,   r   r   )r   rL   )__doc__
__future__r   r{   rz   r   urllib.requestr"   pathlibr   __file__resolveparentROOTr   ry   rE   r+   r:   rJ   rY   rg   r   __name__
SystemExitr^   r8   r*   <module>r      sA   Q Q " " " " " "                tH~~&,,	CCCiii ; ; ; ; ;c c c c
      2v v v v       F z
*TTVV

 r8   