def update_docket_info_iquery(self, d_pk): cookies = get_or_cache_pacer_cookies( "pacer_scraper", settings.PACER_USERNAME, password=settings.PACER_PASSWORD, ) s = PacerSession( cookies=cookies, username=settings.PACER_USERNAME, password=settings.PACER_PASSWORD, ) d = Docket.objects.get(pk=d_pk) report = CaseQuery(map_cl_to_pacer_id(d.court_id), s) try: report.query(d.pacer_case_id) except (requests.Timeout, requests.RequestException) as exc: logger.warning( "Timeout or unknown RequestException on iquery crawl. " "Trying again if retries not exceeded." ) if self.request.retries == self.max_retries: return raise self.retry(exc=exc) d = update_docket_metadata(d, report.data) d.save() add_bankruptcy_data_to_docket(d, report.data) add_items_to_solr([d.pk], "search.Docket")
def validate(self, attrs): # Is it a good court value? district_court_ids = Court.objects.filter( Q(jurisdiction__in=[ Court.FEDERAL_DISTRICT, Court.FEDERAL_BANKRUPTCY, ]) | Q(pk__in=["cit", "jpml", "uscfc"]), ).values_list("pk", flat=True) if attrs.get("court") and attrs["court"].pk not in district_court_ids: raise ValidationError("Invalid court id: %s" % attrs["court"].pk) # Docket validations if attrs.get("pacer_case_id") and not attrs.get("court"): # If a pacer_case_id is included, is a court also? raise ValidationError("Cannot use 'pacer_case_id' parameter " "without 'court' parameter.") if attrs.get("docket_number") and not attrs.get("court"): # If a docket_number is included, is a court also? raise ValidationError("Cannot use 'docket_number' parameter " "without 'court' parameter.") if attrs.get("show_terminated_parties" ) and not attrs.get("show_parties_and_counsel"): raise ValidationError( "You've requested to show_terminated_parties parties while " "show_parties_and_counsel is False. To show terminated " "parties, you must also request showing parties and counsel " "generally.") # Attachment page and PDF validation if attrs["request_type"] in [ REQUEST_TYPE.PDF, REQUEST_TYPE.ATTACHMENT_PAGE, ]: if not attrs.get("recap_document"): raise ValidationError( "recap_document is a required field for attachment page " "and PDF fetches.") # PDF validations if attrs["request_type"] == REQUEST_TYPE.PDF: rd = attrs["recap_document"] if rd.is_available: raise ValidationError( "Cannot fetch a PDF for recap_document %s. That document " "is already marked as available in our database " "(is_available = True)." % rd.pk) # Do the PACER credentials work? try: _ = get_or_cache_pacer_cookies( attrs["user"].pk, username=attrs.pop("pacer_username"), password=attrs.pop("pacer_password"), ) except PacerLoginException as e: raise ValidationError("PacerLoginException: %s" % e.message) return attrs
def validate(self, attrs): # Is it a good court value? district_court_ids = Court.objects.filter( Q(jurisdiction__in=[ Court.FEDERAL_DISTRICT, Court.FEDERAL_BANKRUPTCY, ]) | Q(pk__in=['cit', 'jpml', 'uscfc']), ).values_list('pk', flat=True) if attrs.get('court') and attrs['court'].pk not in district_court_ids: raise ValidationError("Invalid court id: %s" % attrs['court'].pk) # Docket validations if attrs.get('pacer_case_id') and not attrs.get('court'): # If a pacer_case_id is included, is a court also? raise ValidationError("Cannot use 'pacer_case_id' parameter " "without 'court' parameter.") if attrs.get('docket_number') and not attrs.get('court'): # If a docket_number is included, is a court also? raise ValidationError("Cannot use 'docket_number' parameter " "without 'court' parameter.") if attrs.get('show_terminated_parties') and not \ attrs.get('show_parties_and_counsel'): raise ValidationError( "You've requested to show_terminated_parties parties while " "show_parties_and_counsel is False. To show terminated " "parties, you must also request showing parties and counsel " "generally." ) # PDF validations if attrs.get('recap_document'): rd = attrs['recap_document'] if rd.is_available: raise ValidationError( "Cannot fetch a PDF for recap_document %s. That document " "is already marked as available in our database " "(is_available = True)." % rd.pk ) # Do the PACER credentials work? try: _ = get_or_cache_pacer_cookies( attrs['user'].pk, username=attrs.pop('pacer_username'), password=attrs.pop('pacer_password'), ) except PacerLoginException as e: raise ValidationError("PacerLoginException: %s" % e.message) return attrs
def update_docket_info_iquery(self, d_pk: int, court_id: str) -> None: """Update the docket info from iquery :param self: The Celery task :param d_pk: The ID of the docket :param court_id: The court of the docket. Needed for throttling by court. :return: None """ cookies = get_or_cache_pacer_cookies( "pacer_scraper", settings.PACER_USERNAME, password=settings.PACER_PASSWORD, ) s = PacerSession( cookies=cookies, username=settings.PACER_USERNAME, password=settings.PACER_PASSWORD, ) d = Docket.objects.get(pk=d_pk, court_id=court_id) report = CaseQuery(map_cl_to_pacer_id(d.court_id), s) try: report.query(d.pacer_case_id) except (requests.Timeout, requests.RequestException) as exc: logger.warning( "Timeout or unknown RequestException on iquery crawl. " "Trying again if retries not exceeded." ) if self.request.retries == self.max_retries: return raise self.retry(exc=exc) if not report.data: return save_iquery_to_docket( self, report.data, d, tag_names=None, add_to_solr=True, )