Customize - Stock map list, watch list, home page
This commit is contained in:
@@ -4,24 +4,56 @@ from app.services.stock_engine import (
|
||||
get_scan, get_ribbon, get_smartmoney, get_trend, get_marketintel
|
||||
)
|
||||
|
||||
import requests
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@router.get("/scan")
|
||||
def scan(current_user = Depends(get_current_user)):
|
||||
return get_scan()
|
||||
return get_scan(current_user.sector_map or {})
|
||||
|
||||
@router.get("/ribbon")
|
||||
def ribbon(current_user = Depends(get_current_user)):
|
||||
return get_ribbon()
|
||||
return get_ribbon(current_user.sector_map or {})
|
||||
|
||||
@router.get("/smartmoney")
|
||||
def smartmoney(current_user = Depends(get_current_user)):
|
||||
return get_smartmoney()
|
||||
return get_smartmoney(current_user.sector_map or {})
|
||||
|
||||
@router.get("/trend")
|
||||
def trend(current_user = Depends(get_current_user)):
|
||||
return get_trend()
|
||||
return get_trend(current_user.sector_map or {})
|
||||
|
||||
@router.get("/marketintel")
|
||||
def marketintel(current_user = Depends(get_current_user)):
|
||||
return get_marketintel()
|
||||
|
||||
@router.get("/search")
|
||||
def search(q: str, current_user = Depends(get_current_user)):
|
||||
headers = {'User-Agent': 'Mozilla/5.0'}
|
||||
url = f"https://query2.finance.yahoo.com/v1/finance/search?q={q}"esCount=10&newsCount=0"
|
||||
res = requests.get(url, headers=headers)
|
||||
if res.status_code == 200:
|
||||
data = res.json()
|
||||
quotes = data.get("quotes", [])
|
||||
# Filter for Indian stocks (.NS or .BO)
|
||||
indian_stocks = [q for q in quotes if q.get("symbol", "").endswith((".NS", ".BO"))][:10]
|
||||
|
||||
if indian_stocks:
|
||||
import yfinance as yf
|
||||
|
||||
symbols = [q["symbol"] for q in indian_stocks]
|
||||
tickers = yf.Tickers(" ".join(symbols))
|
||||
|
||||
for stock in indian_stocks:
|
||||
try:
|
||||
info = tickers.tickers[stock["symbol"]].info
|
||||
stock["currentPrice"] = info.get("currentPrice") or info.get("regularMarketPrice")
|
||||
stock["marketCap"] = info.get("marketCap")
|
||||
except Exception as e:
|
||||
print(f"Error fetching {stock['symbol']}: {e}")
|
||||
stock["currentPrice"] = None
|
||||
stock["marketCap"] = None
|
||||
|
||||
return indian_stocks
|
||||
return []
|
||||
|
||||
Reference in New Issue
Block a user