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.api.binance_api import get_binance_api
|
||||||
from cryptoai.models.data_processor import DataProcessor
|
from cryptoai.models.data_processor import DataProcessor
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from cryptoai.models.token import TokenManager
|
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
from cryptoai.utils.db_manager import get_db
|
from cryptoai.utils.db_manager import get_db
|
||||||
# 创建路由
|
# 创建路由
|
||||||
@ -25,8 +24,30 @@ logger.setLevel(logging.DEBUG)
|
|||||||
|
|
||||||
@router.get("/search/{key}")
|
@router.get("/search/{key}")
|
||||||
async def search_crypto(key: str, session: Session = Depends(get_db)):
|
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
|
return result
|
||||||
|
|
||||||
class CryptoAnalysisRequest(BaseModel):
|
class CryptoAnalysisRequest(BaseModel):
|
||||||
@ -35,15 +56,19 @@ class CryptoAnalysisRequest(BaseModel):
|
|||||||
|
|
||||||
@router.get("/kline/{symbol}")
|
@router.get("/kline/{symbol}")
|
||||||
async def get_crypto_kline(symbol: str, timeframe: Optional[str] = None, limit: Optional[int] = 100, session: Session = Depends(get_db)):
|
async def get_crypto_kline(symbol: str, timeframe: Optional[str] = None, limit: Optional[int] = 100, session: Session = Depends(get_db)):
|
||||||
# 检查symbol是否存在
|
# 检查symbol是否存在 - 从币安API获取所有交易对进行验证
|
||||||
token_manager = TokenManager(session)
|
binance_api = get_binance_api()
|
||||||
tokens = token_manager.search_token(symbol)
|
all_symbols = binance_api.get_all_symbols()
|
||||||
if not tokens or len(tokens) == 0:
|
|
||||||
|
# 将输入的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="您输入的币种在币安不存在,请检查后重新输入。")
|
raise HTTPException(status_code=400, detail="您输入的币种在币安不存在,请检查后重新输入。")
|
||||||
|
|
||||||
symbol = tokens[0]["symbol"]
|
symbol = symbol_upper
|
||||||
|
|
||||||
binance_api = get_binance_api()
|
|
||||||
result = {}
|
result = {}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user