26 lines
871 B
Python
26 lines
871 B
Python
# backend/news_fetcher.py
|
|
from datetime import datetime
|
|
import feedparser
|
|
|
|
def fetch_news(rss_url):
|
|
feed = feedparser.parse(rss_url)
|
|
articles = []
|
|
for entry in feed.entries:
|
|
try:
|
|
# Try parsing with timezone first
|
|
pub_date = datetime.strptime(entry.published, "%a, %d %b %Y %H:%M:%S %z")
|
|
except ValueError:
|
|
try:
|
|
# Fallback to GMT format without timezone
|
|
pub_date = datetime.strptime(entry.published, "%a, %d %b %Y %H:%M:%S %Z")
|
|
except ValueError:
|
|
# Final fallback - use current time if parsing fails
|
|
pub_date = datetime.now()
|
|
|
|
articles.append({
|
|
"title": entry.title,
|
|
"content": entry.description,
|
|
"published": pub_date,
|
|
"source": rss_url
|
|
})
|
|
return articles |