Spaces:
Running
Running
Update app/app.py
Browse files- app/app.py +11 -4
app/app.py
CHANGED
@@ -47,6 +47,7 @@ async def lifespan(app: FastAPI):
|
|
47 |
# Create separate queues for the two real-time feeds
|
48 |
app.state.sentiment_queue: asyncio.Queue = asyncio.Queue()
|
49 |
app.state.news_queue: asyncio.Queue = asyncio.Queue()
|
|
|
50 |
|
51 |
# Create cancellable background tasks for periodic updates.
|
52 |
price_task = asyncio.create_task(
|
@@ -173,8 +174,11 @@ async def sentiment_stream(request: Request):
|
|
173 |
while True:
|
174 |
payload = await queue.get()
|
175 |
html = render_analysis_card(payload)
|
176 |
-
#
|
177 |
-
|
|
|
|
|
|
|
178 |
return StreamingResponse(event_generator(), media_type="text/event-stream")
|
179 |
|
180 |
@app.get("/api/news/stream")
|
@@ -185,6 +189,9 @@ async def news_stream(request: Request):
|
|
185 |
while True:
|
186 |
payload = await queue.get()
|
187 |
html = render_analysis_card(payload, is_news=True)
|
188 |
-
#
|
189 |
-
|
|
|
|
|
|
|
190 |
return StreamingResponse(event_generator(), media_type="text/event-stream")
|
|
|
47 |
# Create separate queues for the two real-time feeds
|
48 |
app.state.sentiment_queue: asyncio.Queue = asyncio.Queue()
|
49 |
app.state.news_queue: asyncio.Queue = asyncio.Queue()
|
50 |
+
app.state.request_counter = 0
|
51 |
|
52 |
# Create cancellable background tasks for periodic updates.
|
53 |
price_task = asyncio.create_task(
|
|
|
174 |
while True:
|
175 |
payload = await queue.get()
|
176 |
html = render_analysis_card(payload)
|
177 |
+
# =================== FIX APPLIED HERE ===================
|
178 |
+
data_payload = html.replace('\n', '')
|
179 |
+
sse_message = f"event: sentiment_update\ndata: {data_payload}\n\n"
|
180 |
+
yield sse_message
|
181 |
+
# ========================================================
|
182 |
return StreamingResponse(event_generator(), media_type="text/event-stream")
|
183 |
|
184 |
@app.get("/api/news/stream")
|
|
|
189 |
while True:
|
190 |
payload = await queue.get()
|
191 |
html = render_analysis_card(payload, is_news=True)
|
192 |
+
# =================== FIX APPLIED HERE ===================
|
193 |
+
data_payload = html.replace('\n', '')
|
194 |
+
sse_message = f"event: news_update\ndata: {data_payload}\n\n"
|
195 |
+
yield sse_message
|
196 |
+
# ========================================================
|
197 |
return StreamingResponse(event_generator(), media_type="text/event-stream")
|