
    -bhr              	          d dl Z d dlZd dlZd dlZd dlmZmZ ej                  j                  e j                  j                  e j                  j                  e j                  j                  e      d                   d dlmZ d dlmZ d dl d dl ddlmZ d	 Zdd
ZddZedk(  r ej.                   ed             yy)    N)datetimetimezonez..)BonkAPI)JupAPI)*   )ClickHouseManagerc           
         g }t        dt        |               t        |       D ]  \  }}|dkD  rt        j                  d       t        |t              r|j                  d      }n|}d|i}|sLt               j                  |      }|st        j                  d|        |j                  d      }|st        j                  d|        |j                  d      xs |}|j                  d	      xs |j                  d
      }t        j                  |t        j                        j!                  d      }	|j                  d      xs |j                  d      }
|j                  d      xs |j                  d      }|j                  d      }|j#                  |||
|	||d       t        j%                  d|dz    dt        |        d|
xs |         |S )u   
    Получает время миграций и создателей токенов.
    Комбинирует данные из get_recent_tokens_from_raydium_2() и JupAPI().get_token_pool_info()
    zLen of r   g      ?mintzNo JupAPI info for token migration_startedzNo migration_started for token 
token_hashcreator_hashcreator)tzN)tzinfosymboliconimgUrlname)r   r   r   r   r   r   zProcessed token r   /z: )printlen	enumeratetimesleep
isinstancedictgetr   get_token_pool_infobonk_loggerwarningr   fromtimestampr   utcreplaceappendinfo)
token_listmigratedi
token_data
token_mintjup_infotsr   r   r   r   r   r   s                </home/ubuntu/SOL_API/sol_API/src/v3/utils/bonk_migrations.pyget_tokens_infor/      s   
 H	GC
O$
%&":. .]:q5JJsO j$'#/J $J *-J 8//
;";J< HI\\-."A* NO \\,/=:
||N3Pz~~i7P$222(,,GOOW[O\ h'C:>>(+C||F#?z~~h'?~~f%$!2(
 	 	+AaC5#j/1B"VEYzDZ[\].]` O    c                    | st         j                  d       y	 t               }| D cg c]  }|j                  dd       }}t	               }|rqdj                  |D cg c]  }d| d
 c}      }d| d}	 |j                  |      }	|	r4|	D 
ch c]  }
|
d	   	 }}
t         j                  d
t        |       d       g }t        t        j                               }d	}| D ]  }|j                  dd      }||v rt         j                  d|        |dz  }7|j                  dd      }|j                  d      }t        |t              rt        |j                               }n|}|}d	}d}|j                  dd      }|j                  dd      }|j                  |||||||||f	        |st         j                  d| d       yg d}|j!                  d||      }|r&t         j                  dt        |       d| d       yt         j#                  d       yc c}w c c}w c c}
w # t        $ r#}t         j                  d|        Y d}~d}~ww xY w# t        $ r"}t         j#                  d|        Y d}~yd}~ww xY w)zB
    Insert migrated tokens to the ClickHouse tokens database
    z!No tokens to insert into databaseFr    ,'zESELECT token_address FROM tokens_info.tokens WHERE token_address IN ()r   zFound z existing tokens in databasez%Could not check for existing tokens: NzSkipping existing token: r   r   r   unsortedr   r   z!No new tokens to insert. Skipped z existing tokensT)	token_addressr   poolr(   processed_date	processedquality	shortNameimageztokens_info.tokensu   ✅ Successfully inserted z, new migrated tokens into database (skipped z
 existing)u)   ❌ Failed to insert tokens into databaseu(   ❌ Error inserting tokens to database: )pump_loggerr!   r	   r   setjoinexecute_queryr&   r   	Exceptionintr   r   r   	timestampr%   execute_inserterror)migrated_tokensr8   
db_managertokentoken_addressesexisting_tokensaddrplaceholderscheck_queryresultrowedata_to_insertcurrent_timeskipped_countr7   r   migration_timer(   r9   r:   r;   r<   r=   columnssuccesss                             r.   insert_tokens_to_databaserX   N   s    ?@[&(
 ETT5599\26TT%88_$MTqa[$MNLabnaoopqKQ#11+>9?&@#s1v&@O&@$$vc/.B-CC_%`a
 499;'$ "	E!IIlB7M /  #<]O!LM"ii3G #YY':;N.(3~779:')NI G		(B/IIIfb)E!!
# 
1"	H @O_`a

 ++,@'>Z9#n:M9NNz  |I  {J  JT  U  VIJe U
 %N 'A Q##&KA3$OPPQN  DQCHIs}   I H I H%+I 9H/ H*$H/  D
I >I 
I  
I *H/ /	I8II II 	J	'JJ	c                   K   t               j                  |       }t        j                  dt	        |       d       t        |      }t        j                  dt	        |       d       t        j                  dt	        |       d       t        |      }|rt        j                  d       y	t        j                  d       y	w)
u   
    Получает бонк токены, проверяет время миграции и создателя, заносит в базу как:
    token_hash, migration_started, creator_hash, processed=0, good=0, pool=BONK
    zBonkTokens z tokenszSuccessfully processed z tokens with migration dataz
Inserting z tokens into database...u6   ✅ All migrated tokens successfully added to databaseu0   ❌ Failed to add some or all tokens to databaseN)r    get_recent_tokens_from_raydium_2r    r&   r   r/   rX   rF   )daysbonk_tokensrG   rW   s       r.   bonk_migratedr]      s     
 )<<TBK{3{#3"4G<= &k2O.s?/C.DD_`a z#o"6!77OPQ'8GQRLMs   CC__main__   )BONK)   )ossysr   asyncior   r   pathr%   abspathr@   dirname__file__API.bonkAPIr   
API.jupAPIr   utils.loggerutils.configr	   r/   rX   r]   __name__run r0   r.   <module>rp      s    
 
   ' RWW__X-F MN O     09vcJN, zGKKa ! r0   