#' Download de PDF do TJSP
#'
#' @export
download_pdfs <- function(path, d = NULL) {
if(is.null(d)) {
d <- monta_foro_ano_mes()
}
d <- dplyr::group_by(d, ano, mes, foro, value)
l <- gsub('_[^_]+\\.pdf', '', list.files(path))
d <- dplyr::do(d, arq = download_pdfs_ano_mes_foro(., path, l))
d <- dplyr::ungroup(d)
d <- tidyr::unnest(d, arq)
d
}
#' @export
download_pdfs_ano_mes_foro <- function(x, path, l) {
try({
ano <- x$ano
mes <- x$mes
foro <- x$foro
foro_cod <- x$value
# l <- list.files(path)
#a <- sprintf('%s_%s_%s',
# ano, sprintf('%02d', as.numeric(mes)),
# gsub(' +', '-', tolower(foro)))
#if(!any(stringr::str_detect(l, a))) {
r <- lista_ano(ano)
r <- lista_mes(r, ano, mes)
r <- lista_foro(r, ano, mes, foro_cod, foro)
nm <- rvest::html_text(rvest::html_nodes(rvest::html(r), '.rcbList > li'))[-1]
arqs <- sapply(nm, download_pdf_ano_mes_foro, ano, mes, foro, path, r, l)
return(arqs)
#}
#return('ja foi')
})
return('erro')
}
#' @export
download_pdf_ano_mes_foro <- function(unid, ano, mes, foro, path, r, l) {
#cat('\n', ano, mes, foro, unid, '\n')
u <- stringr::str_trim(tolower(gsub(' +', ' ', gsub('[^A-Z0-9 ]', ' ', unid))))
u <- gsub(' +', '-', u)
arq <- sprintf('%s/%s_%s_%s_%s_%s.pdf',
path, ano,
sprintf('%02d', as.numeric(mes)),
gsub(' +', '-', tolower(foro)),
u,
sprintf('%08d', as.integer(runif(1, 0, 99999999))))
aux <- gsub('.+//|_[^_]+\\.pdf', '', arq)
if(!aux %in% l) {
cat('\n', aux, '\n')
r <- lista_unid(r, ano, mes, foro, unid)
r <- baixa_pdf(r, ano, mes, foro, unid)
writeBin(httr::content(r, 'raw'), arq)
}
return(arq)
}
#' @export
pega_foro <- function(n, full = FALSE) {
link2 <- 'http://www.tjsp.jus.br/Institucional/CanaisComunicacao/Transparencia/Produtividade/WebServices/Foro.asmx/ListarForosParaRadComboBox'
nomes <- httr::POST(link2, httr::content_type_json(), httr::accept_json(),
body = sprintf('{context: {Text: "", NumberOfItems: %d}}', n))
l <- jsonlite::fromJSON(httr::content(nomes, 'text'))
if(full) return(l)
d <- l$d$Items
d$Attributes <- NULL
return(d)
}
#' @export
pega_foros <- function() {
maximo <- lista_comarca(0, TRUE)$d$Message
maximo <- as.numeric(gsub('[^0-9]', '', strsplit(maximo, 'total de ')[[1]][2]))
d <- dplyr::bind_rows(lapply(seq(0, maximo, 10), lista_comarca))
d
}
#' @export
pega_magistrado <- function(n, full = FALSE) {
link2 <- 'http://www.tjsp.jus.br/Institucional/CanaisComunicacao/Transparencia/Produtividade/WebServices/Magistrado.asmx/ListarMagistradosParaRadComboBox'
nomes <- httr::POST(link2, httr::content_type_json(), httr::accept_json(),
body = sprintf('{context: {Text: "", NumberOfItems: %d}}', n))
l <- jsonlite::fromJSON(httr::content(nomes, 'text'))
if(full) return(l)
d <- l$d$Items
d$Attributes <- NULL
return(d)
}
#' @export
pega_magistrados <- function() {
maximo <- lista_magistrado(0, TRUE)$d$Message
maximo <- as.numeric(gsub('[^0-9]', '', strsplit(maximo, 'total de ')[[1]][2]))
d <- dplyr::bind_rows(lapply(seq(0, maximo, 10), lista_magistrado))
d
}
#' Lista todos os foros, anos, e meses do TJSP
#'
#' @export
monta_foro_ano_mes <- function() {
data(foros)
m <- expand.grid(2011:2015, 1:12, foros$Text)
names(m) <- c('ano', 'mes', 'foro')
m <- dplyr::filter(m, (ano %in% 2012:2014) |
(ano == 2011 & mes >= 09) |
(ano == 2015 & mes <= 02))
m <- dplyr::arrange(m, ano, mes, foro)
d <- data.frame(lapply(m, as.character), stringsAsFactors = FALSE)
names(d) <- c('ano', 'mes', 'foro')
d <- dplyr::inner_join(d, foros, c('foro' = 'Text'))
names(d) <- tolower(names(d))
d <- dplyr::tbl_df(d)
d
}
#' @export
lista_mes <- function(r, ano, mes) {
link <- 'http://www.tjsp.jus.br/Institucional/CanaisComunicacao/Transparencia/Produtividade/Default.aspx'
vs <- rvest::html_attr(rvest::html_node(rvest::html(r), '#__VIEWSTATE'), 'value')
ev <- rvest::html_attr(rvest::html_node(rvest::html(r), '#__EVENTVALIDATION'), 'value')
vg <- rvest::html_attr(rvest::html_node(rvest::html(r), '#__VIEWSTATEGENERATOR'), 'value')
dados <- list(
'__EVENTTARGET' = 'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$ddlMes',
'__EVENTARGUMENT' = '',
'__LASTFOCUS' = '',
'__VIEWSTATE' = vs,
'__VIEWSTATEGENERATOR' = vg,
'__EVENTVALIDATION' = ev,
'ctl00$ctl00$Buscador1$txtCampoBusca_text' = 'Pesquisar',
'ctl00$ctl00$Buscador1$txtCampoBusca' = '',
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$ddlAno' = ano,
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$ddlMes' = mes,
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_btnMagistrados_ClientState' = '',
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_btnUnidades_ClientState' = '',
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$rcbForoOuMagistrado' = 'Digite o nome do Foro...',
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_rcbForoOuMagistrado_ClientState' = '')
r <- httr::POST(link, body = dados)
return(r)
}
#' @export
lista_ano <- function(ano) {
link <- 'http://www.tjsp.jus.br/Institucional/CanaisComunicacao/Transparencia/Produtividade/Default.aspx'
r0 <- httr::GET(link)
vs <- rvest::html_attr(rvest::html_node(rvest::html(r0), '#__VIEWSTATE'), 'value')
ev <- rvest::html_attr(rvest::html_node(rvest::html(r0), '#__EVENTVALIDATION'), 'value')
vg <- rvest::html_attr(rvest::html_node(rvest::html(r0), '#__VIEWSTATEGENERATOR'), 'value')
dados <- list(
'__EVENTTARGET' = 'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$ddlAno',
'__EVENTARGUMENT' = '',
'__LASTFOCUS' = '',
'__VIEWSTATE' = vs,
'__VIEWSTATEGENERATOR' = vg,
'__EVENTVALIDATION' = ev,
'ctl00$ctl00$Buscador1$txtCampoBusca_text' = 'Pesquisar',
'ctl00$ctl00$Buscador1$txtCampoBusca' = '',
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$ddlAno' = ano,
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$ddlMes' = '0',
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_btnMagistrados_ClientState' = '',
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_btnUnidades_ClientState' = '',
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_rcbForoOuMagistrado_ClientState' = '')
r <- httr::POST(link, body = dados)
return(r)
}
#' @export
lista_foro <- function(r, ano, mes, cod, comarca) {
link <- 'http://www.tjsp.jus.br/Institucional/CanaisComunicacao/Transparencia/Produtividade/Default.aspx'
vs <- rvest::html_attr(rvest::html_node(rvest::html(r), '#__VIEWSTATE'), 'value')
ev <- rvest::html_attr(rvest::html_node(rvest::html(r), '#__EVENTVALIDATION'), 'value')
vg <- rvest::html_attr(rvest::html_node(rvest::html(r), '#__VIEWSTATEGENERATOR'), 'value')
arg <- sprintf('{"logEntries":[],"value":"%s","text":"%s","enabled":true,"checkedIndices":[],"checkedItemsTextOverflows":false}',
cod, comarca)
dados <- list(
'__EVENTTARGET' = 'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$rcbForoOuMagistrado',
'__EVENTARGUMENT' = '{"Command":"Select","Index":1}',
'__LASTFOCUS' = '',
'__VIEWSTATE' = vs,
'__VIEWSTATEGENERATOR' = vg,
'__EVENTVALIDATION' = ev,
'ctl00$ctl00$Buscador1$txtCampoBusca_text' = 'Pesquisar',
'ctl00$ctl00$Buscador1$txtCampoBusca' = '',
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$ddlAno' = ano,
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$ddlMes' = mes,
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_btnMagistrados_ClientState' = '',
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_btnUnidades_ClientState' = '',
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$rcbForoOuMagistrado' = comarca,
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_rcbForoOuMagistrado_ClientState' = arg,
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$rcbUnidade' = 'Selecione a unidade...',
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_rcbUnidade_ClientState' = '')
r <- httr::POST(link, body = dados)
return(r)
}
#' @export
lista_unid <- function(r, ano, mes, comarca, unid) {
link <- 'http://www.tjsp.jus.br/Institucional/CanaisComunicacao/Transparencia/Produtividade/Default.aspx'
vs <- rvest::html_attr(rvest::html_node(rvest::html(r), '#__VIEWSTATE'), 'value')
ev <- rvest::html_attr(rvest::html_node(rvest::html(r), '#__EVENTVALIDATION'), 'value')
vg <- rvest::html_attr(rvest::html_node(rvest::html(r), '#__VIEWSTATEGENERATOR'), 'value')
arg <- sprintf('{"logEntries":[],"value":"","text":"%s","enabled":true,"checkedIndices":[],"checkedItemsTextOverflows":false}',
unid)
dados <- list(
'__EVENTTARGET' = 'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$rcbUnidade',
'__EVENTARGUMENT' = '{"Command":"Select","Index":1}',
'__LASTFOCUS' = '',
'__VIEWSTATE' = vs,
'__VIEWSTATEGENERATOR' = vg,
'__EVENTVALIDATION' = ev,
'ctl00$ctl00$Buscador1$txtCampoBusca_text' = 'Pesquisar',
'ctl00$ctl00$Buscador1$txtCampoBusca' = '',
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$ddlAno' = ano,
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$ddlMes' = mes,
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_btnMagistrados_ClientState' = '',
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_btnUnidades_ClientState' = '',
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$rcbForoOuMagistrado' = comarca,
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_rcbForoOuMagistrado_ClientState' = '',
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$rcbUnidade' = unid,
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_rcbUnidade_ClientState' = arg)
r <- httr::POST(link, body = dados)
return(r)
}
#' @export
baixa_pdf <- function(r, ano, mes, comarca, unid) {
link <- 'http://www.tjsp.jus.br/Institucional/CanaisComunicacao/Transparencia/Produtividade/Default.aspx'
vs <- rvest::html_attr(rvest::html_node(rvest::html(r), '#__VIEWSTATE'), 'value')
ev <- rvest::html_attr(rvest::html_node(rvest::html(r), '#__EVENTVALIDATION'), 'value')
vg <- rvest::html_attr(rvest::html_node(rvest::html(r), '#__VIEWSTATEGENERATOR'), 'value')
arg <- sprintf('{"logEntries":[],"value":"","text":"%s","enabled":true,"checkedIndices":[],"checkedItemsTextOverflows":false}',
unid)
dados <- list(
'__EVENTTARGET' = 'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$rcbUnidade',
'__EVENTARGUMENT' = '{"Command":"Select","Index":1}',
'__LASTFOCUS' = '',
'__VIEWSTATE' = vs,
'__VIEWSTATEGENERATOR' = vg,
'__EVENTVALIDATION' = ev,
'ctl00$ctl00$Buscador1$txtCampoBusca_text' = 'Pesquisar',
'ctl00$ctl00$Buscador1$txtCampoBusca' = '',
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$ddlAno' = ano,
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$ddlMes' = mes,
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_btnMagistrados_ClientState' = '',
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_btnUnidades_ClientState' = '',
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$rcbForoOuMagistrado' = comarca,
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_rcbForoOuMagistrado_ClientState' = '',
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$rcbUnidade' = unid,
'ctl00_ctl00_cphConteudoGeral_ContentPlaceHolder1_rcbUnidade_ClientState' = '',
'ctl00$ctl00$cphConteudoGeral$ContentPlaceHolder1$btnClicar' = 'Gerar relatório')
r <- httr::POST(link, body = dados, httr::accept('application/pdf'))
return(r)
}
#' PDF para texto
#'
#' @export
pdf2txt <- function() {
}
#' Parse produtividade vara
#'
#' @export
parse_prod_vara <- function(a) {
}
#' Parse produtividade varas
#'
#' @export
parse_prod_varas <- function(l) {
}
#' Parse produtividade magistrado
#'
#' @export
parse_prod_mag <- function(a) {
}
#' Parse produtividade magistrados
#'
#' @export
parse_prod_mags <- function(l) {
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.