# sentiment_engine.py from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer import aiohttp analyzer = SentimentIntensityAnalyzer() async def get_crypto_sentiment(symbol): API_KEY = "6388e0c06c9ea848afee62ffe6a3dc9f1022e7ad" base_coin = symbol.split('/')[0] url = f"https://cryptopanic.com/api/v1/posts/?auth_token={API_KEY}¤cies={base_coin}&filter=hot" try: async with aiohttp.ClientSession() as session: async with session.get(url, timeout=5) as resp: if resp.status == 200: data = await resp.json() all_text = "" for post in data.get('results', [])[:10]: all_text += post['title'] + " " if not all_text: return 0.5 vs = analyzer.polarity_scores(all_text) # Transformation (-1 à 1) -> (0 à 1) return (vs['compound'] + 1) / 2 return 0.5 except: return 0.5