File size: 1,793 Bytes
3f20343 957913b 6277d1f 957913b 0822123 957913b 6277d1f 957913b 6277d1f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
import requests
import feedparser
import gradio as gr
API_KEY = "A3WuGPFo3tqoY2CDWs1JP27K1nrtx8nWdi4053Jt"
def get_combined_news():
result = "\n\n"
index = 1
try:
vnexpress_url = "https://vnexpress.net/rss/kinh-doanh.rss"
vn_feed = feedparser.parse(vnexpress_url)
for entry in vn_feed.entries[:5]:
result += f"**{index}. [{entry.title}]({entry.link})** \n<sub>{entry.published}</sub>\n\n"
index += 1
except:
result += "*Lỗi khi lấy tin từ VnExpress*\n\n"
try:
url = f"https://api.marketaux.com/v1/news/all?language=en&limit=3&api_token={API_KEY}"
data = requests.get(url).json()
for article in data.get("data", []):
title = article.get("title", "No title")
link = article.get("url", "#")
source = article.get("source", "Unknown")
published = article.get("published_at", "")
result += f"**{index}. [{title}]({link})** \n<sub>{source} – {published}</sub>\n\n"
index += 1
except:
result += "*Lỗi khi lấy từ Marketaux*\n\n"
try:
feed_url = "https://news.google.com/rss/search?q=site:finance.yahoo.com&hl=en-US&gl=US&ceid=US:en"
feed = feedparser.parse(feed_url)
for entry in feed.entries[:10]:
result += f"**{index}. [{entry.title}]({entry.link})** \n<sub>{entry.published}</sub>\n\n"
index += 1
except:
result += "*Lỗi khi lấy từ Google RSS*\n\n"
return result
# Dùng dark theme chuẩn trong Gradio mới
dark_theme = gr.themes.Soft(primary_hue="blue", neutral_hue="gray")
gr.Interface(
fn=get_combined_news,
inputs=None,
outputs="markdown",
live=True,
theme=dark_theme,
).launch(share=True) |