Johan713 commited on
Commit
26b1e1e
·
verified ·
1 Parent(s): 5203f09

Update app2.py

Browse files
Files changed (1) hide show
  1. app2.py +31 -52
app2.py CHANGED
@@ -329,27 +329,24 @@ def query_public_case_law(query: str) -> List[Dict[str, Any]]:
329
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
330
  }
331
  try:
332
- justia_response = requests.get(justia_url, headers=justia_headers, timeout=10) # Set a timeout
333
- justia_response.raise_for_status() # Raise an exception for bad status codes
334
-
335
  justia_soup = BeautifulSoup(justia_response.text, 'html.parser')
336
  justia_results = justia_soup.find_all('div', class_='case-listing')
337
 
338
  for result in justia_results[:3]: # Limit Justia results to 3
339
- try: # Handle potential errors within each result
340
- title = result.find('h6').text.strip()
341
- citation = result.find('p', class_='citation').text.strip()
342
- summary = result.find('p', class_='summary').text.strip()
343
- url = result.find('a')['href']
344
- cases.append({
345
- "source": "Justia",
346
- "case_name": title,
347
- "citation": citation,
348
- "summary": summary,
349
- "url": url
350
- })
351
- except Exception as e:
352
- print(f"Error processing Justia result: {e}")
353
  except requests.RequestException as e:
354
  print(f"Error querying Justia: {e}")
355
 
@@ -357,51 +354,33 @@ def query_public_case_law(query: str) -> List[Dict[str, Any]]:
357
  courtlistener_url = f"https://www.courtlistener.com/api/rest/v3/search/?q={query}&type=o&format=json"
358
  for attempt in range(3): # Retry up to 3 times
359
  try:
360
- courtlistener_response = requests.get(courtlistener_url, timeout=10)
361
  courtlistener_response.raise_for_status()
362
  courtlistener_data = courtlistener_response.json()
363
- break # Exit the loop if successful
364
  except (requests.RequestException, ValueError) as e:
365
  print(f"Attempt {attempt + 1} failed: {e}")
366
  if attempt == 2:
367
- print(f"Failed to retrieve or parse data from CourtListener: {e}")
 
 
 
368
  time.sleep(2)
369
 
370
  if 'results' in courtlistener_data:
371
- for result in courtlistener_data['results'][:3]:
372
- try:
373
- case_url = f"https://www.courtlistener.com{result['absolute_url']}"
374
-
375
- # Fetch case page content to extract summary
376
- case_page_response = requests.get(case_url, timeout=10)
377
- case_page_response.raise_for_status()
378
- case_page_soup = BeautifulSoup(case_page_response.text, 'html.parser')
379
-
380
- # Extract the summary
381
- summary = extract_courtlistener_summary(case_page_soup)
382
-
383
- cases.append({
384
- "source": "CourtListener",
385
- "case_name": result['caseName'],
386
- "date_filed": result['dateFiled'],
387
- "docket_number": result.get('docketNumber', 'Not available'),
388
- "court": result['court'],
389
- "url": case_url,
390
- "summary": summary # Add the extracted summary
391
- })
392
- except Exception as e:
393
- print(f"Error processing CourtListener result: {e}")
394
 
395
  return cases
396
 
397
- def extract_courtlistener_summary(soup: BeautifulSoup) -> str:
398
- """Extracts the case summary from a CourtListener case page."""
399
- summary_element = soup.find('div', class_='summary')
400
- if summary_element:
401
- return summary_element.get_text(strip=True)
402
- else:
403
- return "Summary not available."
404
-
405
  def comprehensive_document_analysis(content: str) -> Dict[str, Any]:
406
  """Performs a comprehensive analysis of the document, including web and Wikipedia searches."""
407
  try:
@@ -1590,7 +1569,7 @@ elif feature == "Case Precedent Finder":
1590
 
1591
  st.write("### Related Cases from Public Databases")
1592
  for i, case in enumerate(precedents["public_cases"], 1):
1593
- st.write(f"**{i}. {case['case_name']} ({case['source']}) - {case.get('citation', '')}**") # Display the source
1594
  st.write(f"Summary: {case.get('summary', 'Not available')}")
1595
  st.write(f"[Read full case]({case['url']})")
1596
  st.write("---")
 
329
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
330
  }
331
  try:
332
+ justia_response = requests.get(justia_url, headers=justia_headers)
333
+ justia_response.raise_for_status()
 
334
  justia_soup = BeautifulSoup(justia_response.text, 'html.parser')
335
  justia_results = justia_soup.find_all('div', class_='case-listing')
336
 
337
  for result in justia_results[:3]: # Limit Justia results to 3
338
+ title = result.find('h6').text.strip()
339
+ citation = result.find('p', class_='citation').text.strip()
340
+ summary = result.find('p', class_='summary').text.strip()
341
+ url = result.find('a')['href']
342
+ cases.append({
343
+ "source": "Justia",
344
+ "case_name": title,
345
+ "citation": citation,
346
+ "summary": summary,
347
+ "url": url
348
+ })
349
+
 
 
350
  except requests.RequestException as e:
351
  print(f"Error querying Justia: {e}")
352
 
 
354
  courtlistener_url = f"https://www.courtlistener.com/api/rest/v3/search/?q={query}&type=o&format=json"
355
  for attempt in range(3): # Retry up to 3 times
356
  try:
357
+ courtlistener_response = requests.get(courtlistener_url)
358
  courtlistener_response.raise_for_status()
359
  courtlistener_data = courtlistener_response.json()
360
+ break
361
  except (requests.RequestException, ValueError) as e:
362
  print(f"Attempt {attempt + 1} failed: {e}")
363
  if attempt == 2:
364
+ print(
365
+ f"Failed to retrieve or parse data from CourtListener: {e}"
366
+ )
367
+ break
368
  time.sleep(2)
369
 
370
  if 'results' in courtlistener_data:
371
+ for result in courtlistener_data['results'][:3]: # Limit to 3 results
372
+ case_url = f"https://www.courtlistener.com{result['absolute_url']}"
373
+ cases.append({
374
+ "source": "CourtListener",
375
+ "case_name": result['caseName'],
376
+ "date_filed": result['dateFiled'],
377
+ "docket_number": result.get('docketNumber', 'Not available'),
378
+ "court": result['court'],
379
+ "url": case_url
380
+ })
 
 
 
 
 
 
 
 
 
 
 
 
 
381
 
382
  return cases
383
 
 
 
 
 
 
 
 
 
384
  def comprehensive_document_analysis(content: str) -> Dict[str, Any]:
385
  """Performs a comprehensive analysis of the document, including web and Wikipedia searches."""
386
  try:
 
1569
 
1570
  st.write("### Related Cases from Public Databases")
1571
  for i, case in enumerate(precedents["public_cases"], 1):
1572
+ st.write(f"**{i}. {case['case_name']} ({case['source']}) - {case.get('citation', '')}**")
1573
  st.write(f"Summary: {case.get('summary', 'Not available')}")
1574
  st.write(f"[Read full case]({case['url']})")
1575
  st.write("---")