Spaces:
Sleeping
Sleeping
Update extensions/finance.py
Browse files- 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 == "
|
| 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:
|