diff --git a/R/tjsp_combinar_docs.R b/R/tjsp_combinar_docs.R index ab29cc3..c637f66 100644 --- a/R/tjsp_combinar_docs.R +++ b/R/tjsp_combinar_docs.R @@ -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)){ @@ -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) @@ -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) +} + diff --git a/R/tjsp_combinar_docs_cd_processo.R b/R/tjsp_combinar_docs_cd_processo.R index f383a92..a5f42bd 100644 --- a/R/tjsp_combinar_docs_cd_processo.R +++ b/R/tjsp_combinar_docs_cd_processo.R @@ -5,6 +5,7 @@ #' 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 @@ -12,7 +13,8 @@ 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)){ @@ -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) diff --git a/man/is_pdf.Rd b/man/is_pdf.Rd new file mode 100644 index 0000000..599df29 --- /dev/null +++ b/man/is_pdf.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/tjsp_combinar_docs.R +\name{is_pdf} +\alias{is_pdf} +\title{Verifica se um arquivo é pdf (vetorizado)} +\usage{ +is_pdf(x) +} +\arguments{ +\item{x}{Vetor de arquivos} +} +\value{ +Valor lógico +} +\description{ +Verifica se um arquivo é pdf (vetorizado) +} diff --git a/man/is_pdf1.Rd b/man/is_pdf1.Rd new file mode 100644 index 0000000..987d2e1 --- /dev/null +++ b/man/is_pdf1.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/tjsp_combinar_docs.R +\name{is_pdf1} +\alias{is_pdf1} +\title{Verifica se um arquivo é pdf (não vetorizado)} +\usage{ +is_pdf1(arquivo) +} +\arguments{ +\item{arquivo}{Suposto pdf a ser verificado} +} +\value{ +Valor lógico +} +\description{ +Verifica se um arquivo é pdf (não vetorizado) +} diff --git a/man/tjsp_combinar_docs.Rd b/man/tjsp_combinar_docs.Rd index 5af023c..88c53b4 100644 --- a/man/tjsp_combinar_docs.Rd +++ b/man/tjsp_combinar_docs.Rd @@ -8,7 +8,8 @@ tjsp_combinar_docs( arquivos = NULL, dir_origem = ".", dir_destino = NULL, - nivel = c("processo", "doc") + nivel = c("processo", "doc"), + forcar = TRUE ) } \arguments{ @@ -20,9 +21,11 @@ informar arquivos} \item{dir_destino}{Diretório destino} \item{nivel}{Juntar processo inteiro ou por documento?} + +\item{forcar}{Padrão para TRUE. Documentos inválidos são excluídos} } \value{ -único pdf +Pdf(s) combinado(s) } \description{ Combina docs baixados com tjsp_baixar_docs diff --git a/man/tjsp_combinar_docs_cd_processo.Rd b/man/tjsp_combinar_docs_cd_processo.Rd index f48a5a0..027a9a9 100644 --- a/man/tjsp_combinar_docs_cd_processo.Rd +++ b/man/tjsp_combinar_docs_cd_processo.Rd @@ -8,7 +8,8 @@ tjsp_combinar_docs_cd_processo( arquivos = NULL, dir_origem = ".", dir_destino = NULL, - nivel = c("processo", "doc") + nivel = c("processo", "doc"), + forcar = TRUE ) } \arguments{ @@ -20,6 +21,8 @@ informar arquivos} \item{dir_destino}{Diretório destino} \item{nivel}{Juntar processo inteiro ou por documento?} + +\item{forcar}{Padrão para TRUE. Documentos inválidos são excluídos.} } \value{ único pdf diff --git a/man/tjsp_pet_dados.Rd b/man/tjsp_pet_dados.Rd index b19d399..5265afb 100644 --- a/man/tjsp_pet_dados.Rd +++ b/man/tjsp_pet_dados.Rd @@ -4,7 +4,7 @@ \alias{tjsp_pet_dados} \title{Baixa informações sobre as partes} \usage{ -tjsp_pet_dados(processo, instancia = "PG", diretorio = ".") +tjsp_pet_dados(processo, instancia = "pg", diretorio = ".") } \arguments{ \item{processo}{Vetor com os códigos dos processos}