Update app.py
Browse files
app.py
CHANGED
@@ -59,8 +59,8 @@ def is_recent_news(time_str):
|
|
59 |
unit = time_parts[1]
|
60 |
if unit in ['minute', 'minutes', 'hour', 'hours']:
|
61 |
return True
|
62 |
-
elif unit == 'day':
|
63 |
-
return value
|
64 |
except ValueError:
|
65 |
return False
|
66 |
return False
|
@@ -68,29 +68,34 @@ def is_recent_news(time_str):
|
|
68 |
def format_results(results):
|
69 |
all_results = "## All News Results\n\n"
|
70 |
recent_results = "## Recent News Results (Within 1 Day)\n\n"
|
|
|
71 |
|
72 |
try:
|
73 |
if isinstance(results, dict) and "results" in results and "news" in results["results"]:
|
74 |
news_results = results["results"]["news"]
|
75 |
|
76 |
for result in news_results:
|
|
|
|
|
|
|
|
|
77 |
all_results += f"""
|
78 |
### [{result.get('title', 'No Title')}]({result.get('url', '#')})
|
79 |
|
80 |
{result.get('snippet', 'No Snippet')}
|
81 |
|
82 |
-
**Source:** {result.get('channel', 'Unknown')} - {
|
83 |
|
84 |
---
|
85 |
|
86 |
"""
|
87 |
-
if
|
88 |
recent_results += f"""
|
89 |
### [{result.get('title', 'No Title')}]({result.get('url', '#')})
|
90 |
|
91 |
{result.get('snippet', 'No Snippet')}
|
92 |
|
93 |
-
**Source:** {result.get('channel', 'Unknown')} - {
|
94 |
|
95 |
---
|
96 |
|
@@ -105,12 +110,12 @@ def format_results(results):
|
|
105 |
all_results += f"*Error processing results: {str(e)}*\n\n"
|
106 |
recent_results += f"*Error processing results: {str(e)}*\n\n"
|
107 |
|
108 |
-
return all_results, recent_results
|
109 |
|
110 |
def serphouse_search(query, country, page, num_result):
|
111 |
results = search_serphouse(query, country, page, num_result)
|
112 |
-
all_results, recent_results = format_results(results)
|
113 |
-
return f"Raw Results:\n\n```json\n{json.dumps(results, indent=2)}\n```\n\n{all_results}", recent_results
|
114 |
|
115 |
css = """
|
116 |
footer {
|
@@ -128,7 +133,8 @@ iface = gr.Interface(
|
|
128 |
],
|
129 |
outputs=[
|
130 |
gr.Textbox(label="All Results", lines=20),
|
131 |
-
gr.Markdown(label="Recent Results (Within 1 Day)")
|
|
|
132 |
],
|
133 |
title="SERPHouse News Search Interface",
|
134 |
description="Enter your search query and select a country to get news results from the SERPHouse API. Recent results (within 1 day) are shown separately.",
|
|
|
59 |
unit = time_parts[1]
|
60 |
if unit in ['minute', 'minutes', 'hour', 'hours']:
|
61 |
return True
|
62 |
+
elif unit == 'day' or unit == 'days':
|
63 |
+
return value <= 1 # 1일 이하인 경우 포함
|
64 |
except ValueError:
|
65 |
return False
|
66 |
return False
|
|
|
68 |
def format_results(results):
|
69 |
all_results = "## All News Results\n\n"
|
70 |
recent_results = "## Recent News Results (Within 1 Day)\n\n"
|
71 |
+
debug_info = "## Debug Information\n\n"
|
72 |
|
73 |
try:
|
74 |
if isinstance(results, dict) and "results" in results and "news" in results["results"]:
|
75 |
news_results = results["results"]["news"]
|
76 |
|
77 |
for result in news_results:
|
78 |
+
time_str = result.get("time", "Unknown time")
|
79 |
+
is_recent = is_recent_news(time_str)
|
80 |
+
debug_info += f"Time: {time_str}, Is Recent: {is_recent}\n"
|
81 |
+
|
82 |
all_results += f"""
|
83 |
### [{result.get('title', 'No Title')}]({result.get('url', '#')})
|
84 |
|
85 |
{result.get('snippet', 'No Snippet')}
|
86 |
|
87 |
+
**Source:** {result.get('channel', 'Unknown')} - {time_str}
|
88 |
|
89 |
---
|
90 |
|
91 |
"""
|
92 |
+
if is_recent:
|
93 |
recent_results += f"""
|
94 |
### [{result.get('title', 'No Title')}]({result.get('url', '#')})
|
95 |
|
96 |
{result.get('snippet', 'No Snippet')}
|
97 |
|
98 |
+
**Source:** {result.get('channel', 'Unknown')} - {time_str}
|
99 |
|
100 |
---
|
101 |
|
|
|
110 |
all_results += f"*Error processing results: {str(e)}*\n\n"
|
111 |
recent_results += f"*Error processing results: {str(e)}*\n\n"
|
112 |
|
113 |
+
return all_results, recent_results, debug_info
|
114 |
|
115 |
def serphouse_search(query, country, page, num_result):
|
116 |
results = search_serphouse(query, country, page, num_result)
|
117 |
+
all_results, recent_results, debug_info = format_results(results)
|
118 |
+
return f"Raw Results:\n\n```json\n{json.dumps(results, indent=2)}\n```\n\n{all_results}", recent_results, debug_info
|
119 |
|
120 |
css = """
|
121 |
footer {
|
|
|
133 |
],
|
134 |
outputs=[
|
135 |
gr.Textbox(label="All Results", lines=20),
|
136 |
+
gr.Markdown(label="Recent Results (Within 1 Day)"),
|
137 |
+
gr.Markdown(label="Debug Information")
|
138 |
],
|
139 |
title="SERPHouse News Search Interface",
|
140 |
description="Enter your search query and select a country to get news results from the SERPHouse API. Recent results (within 1 day) are shown separately.",
|