updater
This commit is contained in:
parent
fe9c4e31b0
commit
c2d19c0435
@ -14,7 +14,6 @@ import requests
|
||||
from cryptoai.api.binance_api import get_binance_api
|
||||
from cryptoai.models.data_processor import DataProcessor
|
||||
from datetime import timedelta
|
||||
from cryptoai.models.token import TokenManager
|
||||
from sqlalchemy.orm import Session
|
||||
from cryptoai.utils.db_manager import get_db
|
||||
# 创建路由
|
||||
@ -25,8 +24,30 @@ logger.setLevel(logging.DEBUG)
|
||||
|
||||
@router.get("/search/{key}")
|
||||
async def search_crypto(key: str, session: Session = Depends(get_db)):
|
||||
manager = TokenManager(session)
|
||||
result = manager.search_token(key)
|
||||
"""
|
||||
搜索加密货币交易对
|
||||
从币安API获取所有USDT交易对,然后根据关键字过滤
|
||||
"""
|
||||
binance_api = get_binance_api()
|
||||
all_symbols = binance_api.get_all_symbols()
|
||||
|
||||
# 将搜索关键字转换为大写
|
||||
key_upper = key.upper()
|
||||
|
||||
# 过滤包含关键字的交易对
|
||||
filtered_symbols = [symbol for symbol in all_symbols if key_upper in symbol]
|
||||
|
||||
# 构建返回结果,格式与原来保持一致
|
||||
result = []
|
||||
for symbol in filtered_symbols[:20]: # 限制返回前20个结果
|
||||
# 从symbol中提取基础资产名称 (如BTCUSDT -> BTC)
|
||||
base_asset = symbol.replace('USDT', '') if symbol.endswith('USDT') else symbol
|
||||
result.append({
|
||||
"symbol": symbol,
|
||||
"base_asset": base_asset,
|
||||
"quote_asset": "USDT"
|
||||
})
|
||||
|
||||
return result
|
||||
|
||||
class CryptoAnalysisRequest(BaseModel):
|
||||
@ -35,15 +56,19 @@ class CryptoAnalysisRequest(BaseModel):
|
||||
|
||||
@router.get("/kline/{symbol}")
|
||||
async def get_crypto_kline(symbol: str, timeframe: Optional[str] = None, limit: Optional[int] = 100, session: Session = Depends(get_db)):
|
||||
# 检查symbol是否存在
|
||||
token_manager = TokenManager(session)
|
||||
tokens = token_manager.search_token(symbol)
|
||||
if not tokens or len(tokens) == 0:
|
||||
# 检查symbol是否存在 - 从币安API获取所有交易对进行验证
|
||||
binance_api = get_binance_api()
|
||||
all_symbols = binance_api.get_all_symbols()
|
||||
|
||||
# 将输入的symbol转换为大写并确保以USDT结尾
|
||||
symbol_upper = symbol.upper()
|
||||
if not symbol_upper.endswith('USDT'):
|
||||
symbol_upper += 'USDT'
|
||||
|
||||
if symbol_upper not in all_symbols:
|
||||
raise HTTPException(status_code=400, detail="您输入的币种在币安不存在,请检查后重新输入。")
|
||||
|
||||
symbol = tokens[0]["symbol"]
|
||||
|
||||
binance_api = get_binance_api()
|
||||
symbol = symbol_upper
|
||||
result = {}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user