R/stj_ler_cjsg_acor.R

Defines functions stj_ler_cjsg_acor

Documented in stj_ler_cjsg_acor

#' Lê metadados de decisões colegiadas do STJ
#'
#' @param arquivos Vetor de arquivos
#' @param diretorio Se não informar arquivos, informar diretório
#'
#' @return Tibble
#' @export
#'
stj_ler_cjsg_acor <- function(arquivos = NULL, diretorio =  "."){

  if (is.null(arquivos)){

    arquivos <- list.files(diretorio, pattern = "acor", full.names = TRUE)

  }

  pb <- progress::progress_bar$new(total = length(arquivos))

  purrr::map_dfr(arquivos, purrr::possibly(~{

    pb$tick()

    x <- xml2::read_html(.x)

    pagina <- stringr::str_extract(.x, "(?<=pagina_)\\d+")

    processo <- x |>
      xml2::xml_find_all("//div[@class='docTexto']/text()[following-sibling::br][1]") |>
      xml2::xml_text(trim = TRUE)


    origem <- processo |>
      stringr::str_extract("\\w{2}$")

    classe <- x |>
      xml2::xml_find_all("//div[@class='docTexto']/text()[following-sibling::br][2]") |>
      xml2::xml_text(trim = TRUE)

    registro_stj <- x |>
      xml2::xml_find_all("//div[@class='docTexto']/text()[preceding-sibling::br][2]") |>
      xml2::xml_text(trim = TRUE)

    relator <- x |>
      xml2::xml_find_all("//div[@class='docTitulo'][contains(text(),'Relator')]/following-sibling::div[@class='docTexto']") |>
      xml2::xml_text() |>
      stringr::str_extract("(?<=Ministr[ao]\\s).*(?=\\s\\()")

    orgao_julgador <- x |>
      xml2::xml_find_all("//div[text()='\u00D3rg\u00E3o Julgador']/following-sibling::div[@class='docTexto']") |>
      xml2::xml_text()

    data_julgamento <- x |>
      xml2::xml_find_all("//div[text()='Data do Julgamento']/following-sibling::div[@class='docTexto']") |>
      xml2::xml_text() |>
      lubridate::dmy()

    publicacao <- x |>
      xml2::xml_find_all("//div[text()='Data da Publica\u00E7\u00E3o/Fonte']/following-sibling::div[@class='docTexto']") |>
      xml2::xml_text()

    fonte <- publicacao |>  stringr::str_extract("\\w+")

    data_publicacao <- pt_time_extract(publicacao)

    ementa <- x |>
      xml2::xml_find_all("//div[text()='Ementa']/following-sibling::div[@class='docTexto']") |>
      xml2::xml_text(trim = TRUE)

    dispositivo <- x |>
      xml2::xml_find_all("//div[text()='Ac\u00F3rd\u00E3o']/following-sibling::div[@class='docTexto']") |>
      xml2::xml_text()

    tibble::tibble(pagina,processo,origem,classe,registro_stj,relator,orgao_julgador,data_julgamento,fonte,data_publicacao,ementa,dispositivo)

    },NULL))

}
jjesusfilho/stj documentation built on Sept. 12, 2023, 12:05 a.m.