R/oscn_docket.R

Defines functions oscn_docket

oscn_docket <- function(courts, casetypes, start_ymd, end_ymd) {
  
  docket_dates <- ymd(start_ymd):ymd(end_ymd)
  
  ctlist <- casetype_codes %>%
    filter(casetype %in% str_to_upper(casetypes))
  
  casetype_ids <- ctlist$casetype_id
  
  for (court_tmp in courts) {
    for (casetype_id_tmp in casetype_ids) {
      for (docket_date_tmp in docket_dates) {
        
        docket_date_tmp <- as_date(docket_date_tmp, origin = ymd("1970-01-01"))
        
        message(paste("Retrieving", docket_date_tmp, "docket"))
        
        url <- paste0("https://www.oscn.net/applications/oscn/report.asp?report=WebJudicialDocketCaseTypeAll&errorcheck=true&database=&db=",
                      court_tmp, "&CaseTypeID=",
                      casetype_id_tmp, "&StartDate=",
                      month(docket_date_tmp),"%2F",
                      day(docket_date_tmp),"%2F",
                      year(docket_date_tmp), "&GeneralNumber=1&generalnumber1=1")
        
        ht <- read_html(httr::GET(url,
                                  config = httr::config(ssl_verifypeer = FALSE)))
        
        d <- ht %>%
          html_nodes("table") %>%
          html_text() %>% 
          str_extract_all("[[:alpha:]]{2}-\\d{4}-\\d{1,5}") %>% 
          enframe() %>% 
          filter(!str_detect(value, "char|NA"))
        
        docket_tmp <- d %>%
          mutate(court = court_tmp,
                 casetype = str_sub(value, 1, 2),
                 casenum = paste0(str_sub(value, 1, 8),
                                  str_pad(str_extract(value, "\\d{1,5}$"), 
                                          5, "left", 0)),
                 docket_date = docket_date_tmp) %>% 
          select(-name, -value)  %>% 
          filter(!str_detect(casenum, "char|NA"))
        
        if (!exists("docket")) {
          docket <- docket_tmp 
        } else {
          docket <- bind_rows(docket,
                               docket_tmp)
        }
      }
    }
  }
  
  connect_ojo()
  
  dbWriteTable(ojo_db, "oscn_dockets", docket,
               row.names = FALSE,
               append = TRUE)
  
  ojo_disconnect_all()
  
  return(docket)
}
openjusticeok/ojo documentation built on Feb. 2, 2021, 5:47 a.m.