Update app2.py
Browse files
app2.py
CHANGED
@@ -451,25 +451,41 @@ def query_public_case_law(query: str) -> List[Dict[str, Any]]:
|
|
451 |
justia_response = requests.get(justia_url, headers=justia_headers)
|
452 |
justia_response.raise_for_status()
|
453 |
justia_soup = BeautifulSoup(justia_response.text, 'html.parser')
|
|
|
454 |
justia_results = justia_soup.find_all('div', class_='g')
|
455 |
|
456 |
-
for result in justia_results[:
|
457 |
-
title_elem = result.find('h3'
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
462 |
cases.append({
|
463 |
"source": "Justia",
|
464 |
-
"case_name":
|
|
|
465 |
"summary": snippet,
|
466 |
-
"url":
|
467 |
})
|
468 |
except requests.RequestException as e:
|
469 |
print(f"Error querying Justia: {e}")
|
470 |
|
471 |
# CourtListener Search
|
472 |
courtlistener_url = f"https://www.courtlistener.com/api/rest/v3/search/?q={query}&type=o&format=json"
|
|
|
473 |
for attempt in range(3): # Retry up to 3 times
|
474 |
try:
|
475 |
courtlistener_response = requests.get(courtlistener_url)
|
@@ -480,7 +496,6 @@ def query_public_case_law(query: str) -> List[Dict[str, Any]]:
|
|
480 |
print(f"Attempt {attempt + 1} failed: {e}")
|
481 |
if attempt == 2:
|
482 |
print(f"Failed to retrieve or parse data from CourtListener: {e}")
|
483 |
-
break
|
484 |
time.sleep(2)
|
485 |
|
486 |
if 'results' in courtlistener_data:
|
|
|
451 |
justia_response = requests.get(justia_url, headers=justia_headers)
|
452 |
justia_response.raise_for_status()
|
453 |
justia_soup = BeautifulSoup(justia_response.text, 'html.parser')
|
454 |
+
|
455 |
justia_results = justia_soup.find_all('div', class_='g')
|
456 |
|
457 |
+
for result in justia_results[:5]: # Limit to top 5 results
|
458 |
+
title_elem = result.find('h3')
|
459 |
+
link_elem = result.find('a')
|
460 |
+
snippet_elem = result.find('div', class_='VwiC3b')
|
461 |
+
|
462 |
+
if title_elem and link_elem and snippet_elem:
|
463 |
+
title = title_elem.text
|
464 |
+
link = link_elem['href']
|
465 |
+
snippet = snippet_elem.text
|
466 |
+
|
467 |
+
# Extract case name and citation from the title
|
468 |
+
case_info = title.split(' - ')
|
469 |
+
if len(case_info) >= 2:
|
470 |
+
case_name = case_info[0]
|
471 |
+
citation = case_info[1]
|
472 |
+
else:
|
473 |
+
case_name = title
|
474 |
+
citation = "Citation not found"
|
475 |
+
|
476 |
cases.append({
|
477 |
"source": "Justia",
|
478 |
+
"case_name": case_name,
|
479 |
+
"citation": citation,
|
480 |
"summary": snippet,
|
481 |
+
"url": link
|
482 |
})
|
483 |
except requests.RequestException as e:
|
484 |
print(f"Error querying Justia: {e}")
|
485 |
|
486 |
# CourtListener Search
|
487 |
courtlistener_url = f"https://www.courtlistener.com/api/rest/v3/search/?q={query}&type=o&format=json"
|
488 |
+
courtlistener_data = {}
|
489 |
for attempt in range(3): # Retry up to 3 times
|
490 |
try:
|
491 |
courtlistener_response = requests.get(courtlistener_url)
|
|
|
496 |
print(f"Attempt {attempt + 1} failed: {e}")
|
497 |
if attempt == 2:
|
498 |
print(f"Failed to retrieve or parse data from CourtListener: {e}")
|
|
|
499 |
time.sleep(2)
|
500 |
|
501 |
if 'results' in courtlistener_data:
|