Spaces:
Paused
Paused
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.",
|