Dmitry Beresnev
commited on
Commit
·
91b6409
1
Parent(s):
f64a105
fix requirements.txt, dates, news sample
Browse files- requirements.txt +2 -1
- src/telegram_bot/telegram_bot_service.py +10 -2
requirements.txt
CHANGED
|
@@ -5,4 +5,5 @@ uvicorn[standard]==0.24.0
|
|
| 5 |
httpx>=0.25.0
|
| 6 |
python-dotenv==1.0.0
|
| 7 |
pydantic==2.5.0
|
| 8 |
-
typing-extensions==4.8.0
|
|
|
|
|
|
| 5 |
httpx>=0.25.0
|
| 6 |
python-dotenv==1.0.0
|
| 7 |
pydantic==2.5.0
|
| 8 |
+
typing-extensions==4.8.0
|
| 9 |
+
pytz==2025.2
|
src/telegram_bot/telegram_bot_service.py
CHANGED
|
@@ -1,9 +1,11 @@
|
|
| 1 |
from typing import Any
|
| 2 |
from datetime import datetime, timedelta
|
| 3 |
import time
|
|
|
|
| 4 |
|
| 5 |
import httpx
|
| 6 |
from fastapi import HTTPException
|
|
|
|
| 7 |
|
| 8 |
from src.telegram_bot.logger import main_logger
|
| 9 |
from src.telegram_bot.config import Config
|
|
@@ -212,13 +214,19 @@ class TelegramBotService:
|
|
| 212 |
) -> None:
|
| 213 |
await self.send_message_via_proxy(chat_id, f"Fetching latest financial news for ticker {ticker} ...")
|
| 214 |
try:
|
| 215 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 216 |
feed = fetch_comp_financial_news(ticker=ticker,
|
| 217 |
date_from=current_date.strftime('%Y-%m-%d'),
|
| 218 |
date_to=current_date.strftime('%Y-%m-%d'))
|
| 219 |
main_logger.info(f"Processed: {len(feed)} news items for ticker {ticker}")
|
| 220 |
client = OpenRouterClient(api_key=Config.OPENROUTER_API_KEY)
|
| 221 |
-
sample_news = feed
|
| 222 |
for news in sample_news:
|
| 223 |
start_time = time.perf_counter()
|
| 224 |
prompt = PromptGenerator.format_prompt(news)
|
|
|
|
| 1 |
from typing import Any
|
| 2 |
from datetime import datetime, timedelta
|
| 3 |
import time
|
| 4 |
+
import random
|
| 5 |
|
| 6 |
import httpx
|
| 7 |
from fastapi import HTTPException
|
| 8 |
+
from pytz import timezone
|
| 9 |
|
| 10 |
from src.telegram_bot.logger import main_logger
|
| 11 |
from src.telegram_bot.config import Config
|
|
|
|
| 214 |
) -> None:
|
| 215 |
await self.send_message_via_proxy(chat_id, f"Fetching latest financial news for ticker {ticker} ...")
|
| 216 |
try:
|
| 217 |
+
eastern = timezone("US/Eastern")
|
| 218 |
+
now_eastern = datetime.now(eastern)
|
| 219 |
+
if now_eastern.hour < 9 or (now_eastern.hour == 9 and now_eastern.minute < 30) or now_eastern.hour >= 16:
|
| 220 |
+
# Before 9:30 AM or after 4:00 PM Eastern, use yesterday
|
| 221 |
+
current_date = (now_eastern - timedelta(days=1)).replace(hour=0, minute=0, second=0, microsecond=0)
|
| 222 |
+
else:
|
| 223 |
+
current_date = now_eastern.replace(hour=0, minute=0, second=0, microsecond=0)
|
| 224 |
feed = fetch_comp_financial_news(ticker=ticker,
|
| 225 |
date_from=current_date.strftime('%Y-%m-%d'),
|
| 226 |
date_to=current_date.strftime('%Y-%m-%d'))
|
| 227 |
main_logger.info(f"Processed: {len(feed)} news items for ticker {ticker}")
|
| 228 |
client = OpenRouterClient(api_key=Config.OPENROUTER_API_KEY)
|
| 229 |
+
sample_news = random.sample(feed, min(5, len(feed))) # Select up to 5 random news items for processing
|
| 230 |
for news in sample_news:
|
| 231 |
start_time = time.perf_counter()
|
| 232 |
prompt = PromptGenerator.format_prompt(news)
|