Skip to content

Commit

Permalink
Fix: Controla pdfs válidos em tjsp_combinar_docs...
Browse files Browse the repository at this point in the history
  • Loading branch information
jjesusfilho committed Aug 14, 2024
1 parent 9350d93 commit 74f093f
Show file tree
Hide file tree
Showing 7 changed files with 94 additions and 7 deletions.
42 changes: 40 additions & 2 deletions R/tjsp_combinar_docs.R
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@
#' informar arquivos
#' @param dir_destino Diretório destino
#' @param nivel Juntar processo inteiro ou por documento?
#' @param forcar Padrão para TRUE. Documentos inválidos são excluídos
#'
#' @return único pdf
#' @return Pdf(s) combinado(s)
#' @export
#'
tjsp_combinar_docs <- function(arquivos = NULL,
dir_origem = ".",
dir_destino = NULL,
nivel = c("processo", "doc")){
nivel = c("processo", "doc"),
forcar = TRUE){

if (is.null(dir_destino) || !dir.exists(dir_destino)){

Expand All @@ -29,12 +31,19 @@ tjsp_combinar_docs <- function(arquivos = NULL,
nivel = nivel[1]



lista <- tibble::tibble(arquivos) |>
dplyr::mutate(processo = stringr::str_extract(arquivos,"\\d{20}"),
id_doc = stringr::str_extract(arquivos,'(?<=id_doc_)\\d+') |> as.integer(),
pagina_inicial = stringr::str_extract(arquivos, '(?<=inicial_)\\d+') |> as.integer()) |> # nolint
dplyr::arrange(processo,id_doc,pagina_inicial)

if (forcar){

lista <- lista |>
dplyr::filter(is_pdf(arquivos))
}

if (nivel == "processo"){

lista <- dplyr::group_split(lista, processo)
Expand Down Expand Up @@ -68,3 +77,32 @@ tjsp_combinar_docs <- function(arquivos = NULL,

}


#' Verifica se um arquivo é pdf (vetorizado)
#'
#' @param x Vetor de arquivos
#'
#' @return Valor lógico
#'
is_pdf <- function(x) {
purrr::map_lgl(x, is_pdf1)
}

#' Verifica se um arquivo é pdf (não vetorizado)
#'
#' @param arquivo Suposto pdf a ser verificado
#'
#' @return Valor lógico
#'
is_pdf1 <- function(arquivo) {
if(file.exists(arquivo)) {
res <- suppressMessages(try(pdftools::pdf_info(arquivo),
silent = TRUE))
if(class(res) != "try-error") return(TRUE)
warning(paste(arquivo, "Parece n\u00E3o se tratar de um pdf."))
return(FALSE)
}
warning(paste(arquivo, "n\u00E3o existe."))
return(FALSE)
}

11 changes: 10 additions & 1 deletion R/tjsp_combinar_docs_cd_processo.R
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@
#' informar arquivos
#' @param dir_destino Diretório destino
#' @param nivel Juntar processo inteiro ou por documento?
#' @param forcar Padrão para TRUE. Documentos inválidos são excluídos.
#'
#' @return único pdf
#' @export
#'
tjsp_combinar_docs_cd_processo <- function(arquivos = NULL,
dir_origem = ".",
dir_destino = NULL,
nivel = c("processo", "doc")){
nivel = c("processo", "doc"),
forcar = TRUE){

if (is.null(dir_destino) || !dir.exists(dir_destino)){

Expand All @@ -35,6 +37,13 @@ tjsp_combinar_docs_cd_processo <- function(arquivos = NULL,
pagina_inicial = stringr::str_extract(arquivos, '(?<=inicial_)\\d+') |> as.integer()) |> # nolint
dplyr::arrange(cd_processo,id_doc,pagina_inicial)


if (forcar){

lista <- lista |>
dplyr::filter(is_pdf(arquivos))
}

if (nivel == "processo"){

lista <- dplyr::group_split(lista, cd_processo)
Expand Down
17 changes: 17 additions & 0 deletions man/is_pdf.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions man/is_pdf1.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 5 additions & 2 deletions man/tjsp_combinar_docs.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion man/tjsp_combinar_docs_cd_processo.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion man/tjsp_pet_dados.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 74f093f

Please sign in to comment.