import random from datetime import datetime class SentimentAnalyzer: def __init__(self): self.gold_sources = [ "Federal Reserve hints at rate pause - positive for gold", "Inflation data higher than expected - gold demand rising", "Dollar strength weighs on precious metals", "Central banks continue gold accumulation", "Geopolitical tensions support safe-haven demand", "Gold ETFs see outflows amid risk-on sentiment", "Technical breakout above resistance level", "Profit-taking observed after recent rally" ] self.bitcoin_sources = [ "Institutional adoption of Bitcoin accelerates", "Regulatory clarity improves - positive for crypto", "Bitcoin halving event supports price", "Macro uncertainty drives Bitcoin demand", "Spot ETF inflows reach record highs", "Network hash rate reaches new ATH", "Whale accumulation detected on-chain", "DeFi TVL growth supports crypto market" ] def analyze_sentiment(self, asset_name): """Analyze sentiment for selected asset""" try: # Select appropriate news sources if "Bitcoin" in asset_name: sources = self.bitcoin_sources else: sources = self.gold_sources # Generate random sentiment around current market conditions base_sentiment = random.uniform(-0.5, 0.5) # Add some realistic variation if random.random() > 0.7: # Strong sentiment event sentiment = base_sentiment + random.uniform(-0.5, 0.5) else: sentiment = base_sentiment # Clamp between -1 and 1 sentiment = max(-1, min(1, sentiment)) # Generate news summary num_news = random.randint(3, 6) selected_news = random.sample(sources, num_news) news_html = f"
{sentiment_label} {news}
" news_html += "Error analyzing sentiment: {str(e)}
"