Spaces:
Building
Building
Update app.py
Browse files
app.py
CHANGED
@@ -3,7 +3,6 @@ import requests
|
|
3 |
import feedparser
|
4 |
from datetime import datetime, timedelta
|
5 |
|
6 |
-
# ์ง์๋๋ ๊ตญ๊ฐ ๋ฐ ํด๋น Google News URL
|
7 |
SUPPORTED_COUNTRIES = {
|
8 |
'United States': 'https://news.google.com/rss?hl=en-US&gl=US&ceid=US:en',
|
9 |
'United Kingdom': 'https://news.google.com/rss?hl=en-GB&gl=GB&ceid=GB:en',
|
@@ -18,24 +17,30 @@ def get_news(country, keyword):
|
|
18 |
|
19 |
url = SUPPORTED_COUNTRIES[country]
|
20 |
|
21 |
-
|
22 |
-
|
|
|
|
|
|
|
|
|
23 |
feed = feedparser.parse(response.content)
|
24 |
|
25 |
-
|
26 |
-
time_threshold = datetime.now() - timedelta(hours=24)
|
27 |
|
28 |
-
# ํค์๋์ ์ผ์นํ๊ณ 24์๊ฐ ์ด๋ด์ ๋ด์ค๋ง ํํฐ๋ง
|
29 |
filtered_news = []
|
30 |
for entry in feed.entries:
|
31 |
-
if keyword.lower() in entry.title.lower()
|
|
|
32 |
pub_date = datetime(*entry.published_parsed[:6])
|
33 |
if pub_date > time_threshold:
|
34 |
-
filtered_news.append(f"Title: {entry.title}\nLink: {entry.link}\n")
|
35 |
|
36 |
-
|
|
|
|
|
|
|
|
|
37 |
|
38 |
-
# Gradio ์ธํฐํ์ด์ค ์์ฑ
|
39 |
iface = gr.Interface(
|
40 |
fn=get_news,
|
41 |
inputs=[
|
@@ -44,8 +49,7 @@ iface = gr.Interface(
|
|
44 |
],
|
45 |
outputs="text",
|
46 |
title="Google News Search",
|
47 |
-
description="Search for news articles from the last
|
48 |
)
|
49 |
|
50 |
-
# ์ ํ๋ฆฌ์ผ์ด์
์คํ
|
51 |
iface.launch()
|
|
|
3 |
import feedparser
|
4 |
from datetime import datetime, timedelta
|
5 |
|
|
|
6 |
SUPPORTED_COUNTRIES = {
|
7 |
'United States': 'https://news.google.com/rss?hl=en-US&gl=US&ceid=US:en',
|
8 |
'United Kingdom': 'https://news.google.com/rss?hl=en-GB&gl=GB&ceid=GB:en',
|
|
|
17 |
|
18 |
url = SUPPORTED_COUNTRIES[country]
|
19 |
|
20 |
+
try:
|
21 |
+
response = requests.get(url, timeout=10)
|
22 |
+
response.raise_for_status()
|
23 |
+
except requests.RequestException as e:
|
24 |
+
return f"Error fetching news: {str(e)}"
|
25 |
+
|
26 |
feed = feedparser.parse(response.content)
|
27 |
|
28 |
+
time_threshold = datetime.now() - timedelta(hours=48) # 48์๊ฐ์ผ๋ก ํ์ฅ
|
|
|
29 |
|
|
|
30 |
filtered_news = []
|
31 |
for entry in feed.entries:
|
32 |
+
if (keyword.lower() in entry.title.lower() or
|
33 |
+
('summary' in entry and keyword.lower() in entry.summary.lower())):
|
34 |
pub_date = datetime(*entry.published_parsed[:6])
|
35 |
if pub_date > time_threshold:
|
36 |
+
filtered_news.append(f"Title: {entry.title}\nLink: {entry.link}\nDate: {pub_date}\n")
|
37 |
|
38 |
+
if filtered_news:
|
39 |
+
return "\n".join(filtered_news)
|
40 |
+
else:
|
41 |
+
return (f"No recent news found for the keyword '{keyword}' in {country} "
|
42 |
+
f"within the last 48 hours.\nTry a different keyword or check back later.")
|
43 |
|
|
|
44 |
iface = gr.Interface(
|
45 |
fn=get_news,
|
46 |
inputs=[
|
|
|
49 |
],
|
50 |
outputs="text",
|
51 |
title="Google News Search",
|
52 |
+
description="Search for news articles from the last 48 hours using Google News RSS feeds."
|
53 |
)
|
54 |
|
|
|
55 |
iface.launch()
|