Beispiel #1
0
class DistrictCourtReader:
    def __init__(self):
        self.fips_code = ''
        self.opener = DistrictCourtOpener()
    
    def connect(self):
        soup = self.opener.open_welcome_page()
        self.court_names = districtcourtparser.parse_court_names(soup)
    
    def change_court(self, fips_code):
        if fips_code != self.fips_code:
            name = self.court_names[fips_code]
            self.opener.change_court(name, fips_code)
            self.fips_code = fips_code
    
    def get_cases_by_date(self, fips_code, date):
        self.change_court(fips_code)
        self.opener.open_hearing_date_search(fips_code)
        sleep(1)
        
        date = date.strftime('%m/%d/%Y')
        print '\tSearching ' + self.court_names[fips_code] + \
              ' for cases on ' + date
        soup = self.opener.do_hearing_date_search(fips_code, date, True)
        sleep(1)
        
        cases = []
        while True:
            cases.extend(districtcourtparser.parse_hearing_date_search(soup))
            print '\tFound ' + str(len(cases)) + ' cases\r',
            sys.stdout.flush()
            if not districtcourtparser.next_button_found(soup):
                break
            sleep(1)
            soup = self.opener.do_hearing_date_search(fips_code, date, False)
        return cases
    
    def get_case_details(self, case):
        sleep(1)
        soup = self.opener.open_case_details(case)
        return districtcourtparser.parse_case_details(soup)
Beispiel #2
0
class DistrictCourtReader:
    def __init__(self):
        self.fips_code = ''
        self.opener = DistrictCourtOpener()

    def connect(self):
        soup = self.opener.open_welcome_page()
        self.court_names = districtcourtparser.parse_court_names(soup)

    def change_court(self, fips_code):
        if fips_code != self.fips_code:
            name = self.court_names[fips_code]
            self.opener.change_court(name, fips_code)
            self.fips_code = fips_code

    def get_cases_by_date(self, fips_code, date):
        self.change_court(fips_code)
        self.opener.open_hearing_date_search(fips_code)
        sleep(1)

        date = date.strftime('%m/%d/%Y')
        print '\tSearching ' + self.court_names[fips_code] + \
              ' for cases on ' + date
        soup = self.opener.do_hearing_date_search(fips_code, date, True)
        sleep(1)

        cases = []
        while True:
            cases.extend(districtcourtparser.parse_hearing_date_search(soup))
            print '\tFound ' + str(len(cases)) + ' cases\r',
            sys.stdout.flush()
            if not districtcourtparser.next_button_found(soup):
                break
            sleep(1)
            soup = self.opener.do_hearing_date_search(fips_code, date, False)
        return cases

    def get_case_details(self, case):
        sleep(1)
        soup = self.opener.open_case_details(case)
        return districtcourtparser.parse_case_details(soup)
Beispiel #3
0
 def __init__(self):
     self.fips_code = ''
     self.opener = DistrictCourtOpener()
Beispiel #4
0
 def __init__(self):
     self.searches_on_session = 0
     self.fips_code = ''
     self.case_type = ''
     self.opener = DistrictCourtOpener()
Beispiel #5
0
class DistrictCourtReader:
    def __init__(self):
        self.searches_on_session = 0
        self.fips_code = ''
        self.case_type = ''
        self.opener = DistrictCourtOpener()

    def connect(self):
        soup = self.opener.open_welcome_page()
        self.court_names = districtcourtparser.parse_court_names(soup)
        return self.court_names

    def manage_opener(self):
        self.searches_on_session += 1
        if self.searches_on_session > 10000:
            print 'RESETTING OPENER'
            self.log_off()
            sleep(2)
            self.connect()
            self.searches_on_session = 0
            self.fips_code = ''
            print 'RESET SUCCESSFUL'

    def change_court(self, fips_code, case_type):
        if fips_code != self.fips_code or case_type != self.case_type:
            print 'CHANGING COURT TO', fips_code
            name = self.court_names[fips_code]
            self.opener.change_court(name, fips_code)
            self.fips_code = fips_code
            self.case_type = case_type
            sleep(1)

    def log_off(self):
        self.opener.log_off()

    def get_case_details_by_number(self,
                                   fips_code,
                                   case_type,
                                   case_number,
                                   case_details_url=None):
        self.manage_opener()
        self.change_court(fips_code, case_type)
        sleep(1)
        search_division = 'T'
        if case_type == 'civil':
            search_division = 'V'
        soup = self.opener.do_case_number_search(fips_code, case_number, search_division) \
            if case_details_url is None else self.opener.open_case_details(case_details_url)
        return districtcourtparser.parse_case_details(soup, case_type)

    def get_cases_by_date(self, fips_code, case_type, date):
        self.manage_opener()
        self.change_court(fips_code, case_type)
        search_division = 'T'
        if case_type == 'civil':
            search_division = 'V'
        self.opener.open_hearing_date_search(fips_code, search_division)
        sleep(1)

        #date = date.strftime('%m/%d/%Y')
        print '\tSearching ' + self.court_names[fips_code] + \
              ' for cases on ' + date
        soup = self.opener.do_hearing_date_search(fips_code, date, True)
        sleep(1)

        cases = []
        while True:
            cases.extend(
                districtcourtparser.parse_hearing_date_search(soup, case_type))
            print '\tFound ' + str(len(cases)) + ' cases\r',
            sys.stdout.flush()
            if not districtcourtparser.next_button_found(soup):
                break
            sleep(1)
            soup = self.opener.do_hearing_date_search(fips_code, date, False)
        return cases

    def get_case_details(self, case):
        self.manage_opener()
        sleep(1)
        soup = self.opener.open_case_details(case)
        return districtcourtparser.parse_case_details(soup, None)

    def get_cases_by_name(self, fips_code, case_type, name):
        self.manage_opener()
        self.change_court(fips_code, case_type)
        search_division = 'T'
        if case_type == 'civil':
            search_division = 'V'
        self.opener.open_name_search(fips_code, search_division)
        sleep(1)
        cases = []
        count = 0
        found_cases = None
        while True:
            soup = self.opener.do_name_search(fips_code, search_division, name,
                                              count, found_cases)
            found_cases = districtcourtparser.parse_name_search(soup)
            cases.extend(found_cases)
            if not districtcourtparser.next_names_button_found(soup):
                break
            log.info('Next Names Page')
            print 'Next Names Page'
            count += 1
            sleep(2)
        return cases
Beispiel #6
0
 def __init__(self):
     self.fips_code = ''
     self.opener = DistrictCourtOpener()
class DistrictCourtReader:
    def __init__(self):
        self.fips_code = ''
        self.opener = DistrictCourtOpener()

    def connect(self):
        soup = self.opener.open_welcome_page()
        self.court_names = districtcourtparser.parse_court_names(soup)
        return self.court_names

    def change_court(self, fips_code):
        if fips_code != self.fips_code:
            name = self.court_names[fips_code]
            self.opener.change_court(name, fips_code)
            self.fips_code = fips_code
            sleep(1)

    def log_off(self):
        self.opener.log_off()

    def get_case_details_by_number(self, fips_code, case_type, case_number, case_details_url=None):
        self.change_court(fips_code)
        sleep(1)
        soup = self.opener.do_case_number_search(fips_code, case_number) \
            if case_details_url is None else self.opener.open_case_details(case_details_url)
        return districtcourtparser.parse_case_details(soup)

    def get_cases_by_date(self, fips_code, case_type, date):
        self.change_court(fips_code)
        self.opener.open_hearing_date_search(fips_code)
        sleep(1)

        #date = date.strftime('%m/%d/%Y')
        print '\tSearching ' + self.court_names[fips_code] + \
              ' for cases on ' + date
        soup = self.opener.do_hearing_date_search(fips_code, date, True)
        sleep(1)

        cases = []
        while True:
            cases.extend(districtcourtparser.parse_hearing_date_search(soup))
            print '\tFound ' + str(len(cases)) + ' cases\r',
            sys.stdout.flush()
            if not districtcourtparser.next_button_found(soup):
                break
            sleep(1)
            soup = self.opener.do_hearing_date_search(fips_code, date, False)
        return cases

    def get_case_details(self, case):
        sleep(1)
        soup = self.opener.open_case_details(case)
        return districtcourtparser.parse_case_details(soup)

    def get_cases_by_name(self, fips_code, case_type, name):
        self.change_court(fips_code)
        self.opener.open_name_search(fips_code)
        sleep(1)
        cases = []
        count = 0
        found_cases = None
        while True:
            soup = self.opener.do_name_search(fips_code, name, count, found_cases)
            found_cases = districtcourtparser.parse_name_search(soup)
            cases.extend(found_cases)
            if not districtcourtparser.next_names_button_found(soup):
                break
            log.info('Next Names Page')
            print 'Next Names Page'
            count += 1
            sleep(2)
        return cases