
    t^jp                         d Z ddlZddlZddlmZ ddlmZ  ed          Z ed          Zd Zd Z	e
d	k    rD ed
            ede             e              e	              e              ed           dS dS )zP
Extract latest order book data from database and save as JSON for the 3D city.
    N)Path)datetimezT/home/ubuntu/.hermes/workspace/projects/ORDER_FLOW_GRAPH/data/binance_multi_asset.dbzE/home/ubuntu/.hermes/workspace/projects/ORDER_FLOW_GRAPH/outputs/datac           
         	 t          j        t          d          }t          |_        |                                }|                    d|                                 f           |                                }|st          d|             dS |\  }}|                    d|f           |
                                }|                                 i }i }|D ]!\  }	}
}|	d}|dk    r|
||<   |d	k    r|
||<   "t          d
|  dt          |           dt          |           d           |                                 ||||dS # t          $ r }t          d|  d|            Y d}~dS d}~ww xY w)z5Get the latest order book snapshot from the database.g      @)timeoutz
            SELECT id, timestamp
            FROM order_book_snapshots
            WHERE symbol = ?
            ORDER BY id DESC
            LIMIT 1
        u   ⚠️  No snapshot found for Nz
            SELECT price, volume, side
            FROM order_book_levels
            WHERE snapshot_id = ?
            ORDER BY price
        .2fbidasku   ✅ z: z bids, z asks)symbol	timestampbidsaskssnapshot_idu"   ❌ Error fetching order book for )sqlite3connectDATABASEstrtext_factorycursorexecuteupperfetchoneprintfetchallcloselen	Exception)r
   connr   snapshotr   r   levelsr   r   pricevolumeside	price_keyes                 U/home/ubuntu/.hermes/workspace/projects/ORDER_FLOW_GRAPH/scripts/extract_orderbook.pyget_latest_order_bookr&      s   7x555 	  llnn	  	  	  ??$$ 	;6;;<<<4!)Y 	 
 ^	 	 	 ""

 #) 	) 	)E64 Iu}}"(Y"(YAVAAs4yyAATAAABBB llnn"&
 
 	
    @6@@Q@@AAAttttts   BE	 B8E	 	
E3E..E3c                  :   g d} | D ]}t          |          }|rvt          d|                                 dz  }t          |d          5 }t	          j        ||d           ddd           n# 1 swxY w Y   t          d|j                    |rB|d	         r:t          |d	         	                                          }t          d
|d           |rB|d         r:t          |d         	                                          }t          d|d           dS )z0Extract and save order book data for all assets.)XAUTUSDTBTCUSDTETHUSDT
orderbook_z.jsonw   )indentNu   💾 Saved to r   z   Total bid volume: r   r   z   Total ask volume: )
r&   
OUTPUT_DIRloweropenjsondumpr   namesumvalues)symbolsr
   dataoutput_fileftotal_bid_voltotal_ask_vols          r%   mainr=   I   s   000G ? ?$V,, 	7$'IFLLNN'I'I'IIKk3'' -1	$!,,,,- - - - - - - - - - - - - - - 5;#355666  	?DL 	?V 3 3 5 566M=-===>>> 	?DL 	?V 3 3 5 566M=-===>>>%? ?s   A//A3	6A3	__main__u,   📊 Extracting real-time order book data...u   🗄️  Database: u,   ✅ Done! Order book data ready for 3D city.)__doc__r   r2   pathlibr   r   r   r/   r&   r=   __name__r        r%   <module>rD      s                  4fggTYZZ
9 9 9v? ? ?0 z	E
8999	E
*
*
*+++	EGGGDFFF	EGGG	E
899999 rC   