eshan6704 commited on
Commit
fcdbe4f
·
verified ·
1 Parent(s): beb681c

Update stock.py

Browse files
Files changed (1) hide show
  1. stock.py +38 -21
stock.py CHANGED
@@ -66,27 +66,44 @@ from ta_indi_pat import talib_df
66
  # -------------------------- INTRADAY ------------------------------
67
 
68
  def fetch_intraday(symbol, indicators=None):
69
- if exists("intraday_"+symbol, "html"):
70
- intra_html = load("intraday_"+symbol, "html")
71
- else:
72
- try:
73
- df = intraday(symbol)
74
- if df.empty:
75
- return wrap_html(f"<h1>No intraday data for {symbol}</h1>")
76
-
77
- if isinstance(df.columns, pd.MultiIndex):
78
- df.columns = df.columns.get_level_values(0)
79
- file_name = f"intraday/{symbol}.csv"
80
- upload_file("eshanhf",file_name,df)
81
- #chart_html = build_chart(df, indicators=indicators)
82
- table_html = make_table(df.tail(50))
83
- intra_html= wrap_html(f"<h2>Last 50 Rows</h2>{table_html}",
84
- title=f"{symbol} Intraday")
85
- save("intraday_"+symbol,intra_html, "html")
86
- except Exception as e:
87
- return wrap_html(f"<h1>Error:{e}</h1>")
88
-
89
- return intra_html
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  # -------------------------- DAILY ------------------------------
91
 
92
  def fetch_daily(symbol, source="yfinance", max_rows=200):
 
66
  # -------------------------- INTRADAY ------------------------------
67
 
68
  def fetch_intraday(symbol, indicators=None):
69
+ key = f"intraday_{symbol}"
70
+
71
+ # 1️⃣ Check cache (HTML only)
72
+ if exists(key, "html"):
73
+ intra_html = load(key, "html")
74
+ if intra_html is not False:
75
+ return intra_html
76
+
77
+ # 2️⃣ Fetch fresh data
78
+ try:
79
+ df = intraday(symbol)
80
+
81
+ if df is False or df is None or df.empty:
82
+ return wrap_html(f"<h1>No intraday data for {symbol}</h1>")
83
+
84
+ # Flatten columns if MultiIndex
85
+ if isinstance(df.columns, pd.MultiIndex):
86
+ df.columns = df.columns.get_level_values(0)
87
+
88
+ # Optional upload (unchanged)
89
+ file_name = f"intraday/{symbol}.csv"
90
+ upload_file("eshanhf", file_name, df)
91
+
92
+ # Build HTML
93
+ table_html = make_table(df.tail(50))
94
+ intra_html = wrap_html(
95
+ f"<h2>Last 50 Rows</h2>{table_html}",
96
+ title=f"{symbol} Intraday"
97
+ )
98
+
99
+ # 3️⃣ Save HTML cache
100
+ save(key, intra_html, "html")
101
+
102
+ return intra_html
103
+
104
+ except Exception as e:
105
+ return wrap_html(f"<h1>Error: {e}</h1>")
106
+
107
  # -------------------------- DAILY ------------------------------
108
 
109
  def fetch_daily(symbol, source="yfinance", max_rows=200):