wuhp commited on
Commit
141207b
·
verified ·
1 Parent(s): def69f7

Update extensions/finance.py

Browse files
Files changed (1) hide show
  1. extensions/finance.py +1 -75
extensions/finance.py CHANGED
@@ -552,81 +552,7 @@ The data is already formatted and ready - just follow the auto-execution!
552
  "error": f"Error searching for ticker: {str(e)}"
553
  }
554
 
555
- elif tool_name == "remove_from_watchlist":
556
- ticker = args["ticker"].upper()
557
- watchlist = state.get("watchlist", [])
558
-
559
- if ticker in watchlist:
560
- watchlist.remove(ticker)
561
- state["watchlist"] = watchlist
562
- self.update_state(user_id, state)
563
- self.log_activity(user_id, "watchlist_remove", {"ticker": ticker})
564
- return {"success": True, "message": f"Removed {ticker}", "watchlist": watchlist}
565
- else:
566
- return {"success": False, "message": f"{ticker} not in watchlist", "watchlist": watchlist}
567
-
568
- elif tool_name == "get_watchlist":
569
- watchlist = state.get("watchlist", [])
570
-
571
- if not watchlist:
572
- return {"success": True, "message": "Watchlist empty", "watchlist": []}
573
-
574
- try:
575
- print(f"📋 Getting watchlist ({len(watchlist)} stocks)")
576
-
577
- watchlist_data = []
578
- for ticker in watchlist:
579
- stock = yf.Ticker(ticker)
580
- info = stock.info
581
-
582
- current_price = info.get('currentPrice') or info.get('regularMarketPrice')
583
- previous_close = info.get('previousClose')
584
- change = current_price - previous_close if current_price and previous_close else None
585
- percent_change = (change / previous_close * 100) if change and previous_close else None
586
-
587
- watchlist_data.append({
588
- "ticker": ticker,
589
- "company_name": info.get('longName', ticker),
590
- "current_price": current_price,
591
- "change": change,
592
- "percent_change": percent_change
593
- })
594
-
595
- return {"success": True, "watchlist": watchlist_data, "count": len(watchlist_data)}
596
-
597
- except Exception as e:
598
- print(f"❌ Error: {e}")
599
- return {"success": False, "error": str(e)}
600
-
601
- return {"error": f"Unknown tool: {tool_name}"}
602
-
603
- def on_enable(self, user_id: str) -> str:
604
- self.initialize_state(user_id)
605
- return "📈 Yahoo Finance enabled! Get real-time stock data with intelligent ticker search. Automatic chart creation!"
606
-
607
- def on_disable(self, user_id: str) -> str:
608
- state = self.get_state(user_id)
609
- total = state.get("total_queries", 0)
610
- return f"📈 Yahoo Finance disabled. {total} queries this session."
611
-
612
- def health_check(self, user_id: str) -> Dict[str, Any]:
613
- try:
614
- import yfinance
615
- import requests
616
- return {
617
- "healthy": True,
618
- "extension": self.name,
619
- "version": self.version,
620
- "yfinance_available": True,
621
- "requests_available": True
622
- }
623
- except ImportError as e:
624
- return {
625
- "healthy": False,
626
- "extension": self.name,
627
- "version": self.version,
628
- "issues": [f"Missing library: {str(e)}"]
629
- elif tool_name == "get_stock_price":
630
  ticker = args["ticker"].upper()
631
 
632
  try:
 
552
  "error": f"Error searching for ticker: {str(e)}"
553
  }
554
 
555
+ elif tool_name == "get_stock_price":
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
556
  ticker = args["ticker"].upper()
557
 
558
  try: