seawolf2357 commited on
Commit
d0b4b99
·
verified ·
1 Parent(s): d36b7a7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -18
app.py CHANGED
@@ -59,25 +59,22 @@ 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 in ['day', 'days']:
63
- return value <= 2
64
  except ValueError:
65
  return False
66
  return False
67
 
68
  def format_results(results):
69
- markdown_output = "## Recent News Results\n\n"
 
70
 
71
  try:
72
  if isinstance(results, dict) and "results" in results and "news" in results["results"]:
73
  news_results = results["results"]["news"]
74
- filtered_results = [result for result in news_results if is_recent_news(result.get("time", ""))]
75
 
76
- if not filtered_results:
77
- markdown_output += "*No recent news results found.*\n\n"
78
- else:
79
- for result in filtered_results:
80
- markdown_output += f"""
81
  ### [{result.get('title', 'No Title')}]({result.get('url', '#')})
82
 
83
  {result.get('snippet', 'No Snippet')}
@@ -87,19 +84,33 @@ def format_results(results):
87
  ---
88
 
89
  """
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  else:
91
- markdown_output += "*No valid news results found in the API response.*\n\n"
 
92
  except Exception as e:
93
- markdown_output += f"*Error processing results: {str(e)}*\n\n"
 
94
 
95
- return markdown_output
96
 
97
  def serphouse_search(query, country, page, num_result):
98
  results = search_serphouse(query, country, page, num_result)
99
- print("Raw results:", results) # 콘솔에 원본 결과 출력
100
- formatted_results = format_results(results)
101
- print("Formatted results:", formatted_results) # 콘솔에 포맷된 결과 출력
102
- return f"Raw Results:\n\n```json\n{json.dumps(results, indent=2)}\n```\n\nFormatted Results:\n\n{formatted_results}"
103
 
104
  css = """
105
  footer {
@@ -115,9 +126,12 @@ iface = gr.Interface(
115
  gr.Slider(1, 10, 1, label="Page"),
116
  gr.Slider(1, 100, 10, label="Number of Results")
117
  ],
118
- outputs=gr.Textbox(label="Results", lines=20),
 
 
 
119
  title="SERPHouse News Search Interface",
120
- description="Enter your search query and select a country to get recent news results from the SERPHouse API.",
121
  theme="Nymbo/Nymbo_Theme",
122
  css=css
123
  )
 
59
  unit = time_parts[1]
60
  if unit in ['minute', 'minutes', 'hour', 'hours']:
61
  return True
62
+ elif unit == 'day':
63
+ return value < 1
64
  except ValueError:
65
  return False
66
  return False
67
 
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')}
 
84
  ---
85
 
86
  """
87
+ if is_recent_news(result.get("time", "")):
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')} - {result.get('time', 'Unknown time')}
94
+
95
+ ---
96
+
97
+ """
98
+
99
+ if recent_results == "## Recent News Results (Within 1 Day)\n\n":
100
+ recent_results += "*No recent news results found within 1 day.*\n\n"
101
  else:
102
+ all_results += "*No valid news results found in the API response.*\n\n"
103
+ recent_results += "*No valid news results found in the API response.*\n\n"
104
  except Exception as e:
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 {
 
126
  gr.Slider(1, 10, 1, label="Page"),
127
  gr.Slider(1, 100, 10, label="Number of Results")
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.",
135
  theme="Nymbo/Nymbo_Theme",
136
  css=css
137
  )