diario-da-justica-eletronico-tjms

1.0.1 • Public • Published

API - Diário da Justiça Eletrônico - TJMS

Este projeto usa como base o Puppeteer, um navegador virtual sem interface gráfica que abre o site do Diário da Justiça Eletrônico - TJMS e executa todos os comandos via código possibilitando assim a automação de todas as funções.

Nota

ATENÇÃO: A Lei nº 11.419/06, em seu artigo 4º, §3º, alterou a forma de contagem dos prazos processuais referentes aos atos judiciais e administrativos publicados em Diários Eletrônicos, estabelecendo que se considera como data da publicação o primeiro dia útil seguinte ao da disponibilização da informação no Diário da Justiça eletrônico. Assim, os prazos processuais terão início no primeiro dia útil que seguir ao considerado como data da publicação.

Dependências Debian (e.g. Ubuntu) 64bits

sudo apt update && \
apt upgrade -y && \
apt install -y \
git \
curl \
yarn \
gcc \
g++ \
make \
libgbm-dev \
wget \
unzip \
fontconfig \
locales \
gconf-service \
libasound2 \
libatk1.0-0 \
libc6 \
libcairo2 \
libcups2 \
libdbus-1-3 \
libexpat1 \
libfontconfig1 \
libgconf-2-4 \
libgdk-pixbuf2.0-0 \
libglib2.0-0 \
libgtk-3-0 \
libnspr4 \
libpango-1.0-0 \
libpangocairo-1.0-0 \
libstdc++6 \
libx11-6 \
libx11-xcb1 \
libxcb1 \
libxcomposite1 \
libxcursor1 \
libxdamage1 \
libxext6 \
libxfixes3 \
libxi6 \
libxrandr2 \
libxrender1 \
libxss1 \
libxtst6 \
ca-certificates \
fonts-liberation \
libnss3 \
lsb-release \
xdg-utils \
libatk-bridge2.0-0 \
libgbm1 \
libgcc1 \
build-essential \
nodejs \
libappindicator1 \
sudo

Dependências CentOS 7/8 64bits (Validar)

sudo yum install -y \
alsa-lib.x86_64 \
atk.x86_64 \
cups-libs.x86_64 \
gtk3.x86_64 \
ipa-gothic-fonts \
libXcomposite.x86_64 \
libXcursor.x86_64 \
libXdamage.x86_64 \
libXext.x86_64 \
libXi.x86_64 \
libXrandr.x86_64 \
libXScrnSaver.x86_64 \
libXtst.x86_64 \
pango.x86_64 \
xorg-x11-fonts-100dpi \
xorg-x11-fonts-75dpi \
xorg-x11-fonts-cyrillic \
xorg-x11-fonts-misc \
xorg-x11-fonts-Type1 \
xorg-x11-utils

Dependências Alpine 64bits (Validar)

# replacing default repositories with edge ones
echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" > /etc/apk/repositories && \
echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories && \
echo "http://dl-cdn.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories && \
echo "http://dl-cdn.alpinelinux.org/alpine/v3.9/main" >> /etc/apk/repositories && \
echo "http://dl-cdn.alpinelinux.org/alpine/v3.9/community" >> /etc/apk/repositories && \
apk update && \
apk upgrade && \
apk add --update --no-cache dumb-init curl make gcc g++ linux-headers binutils-gold gnupg \
libstdc++ nss chromium chromium-chromedriver git vim curl yarn nodejs nodejs-npm npm python \
python3 dpkg wget

Instale o Google Chrome Debian (e.g. Ubuntu) 64bits

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

sudo apt install ./google-chrome-stable_current_amd64.deb

Instale o Google Chrome CentOS 7/8 64bits

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

sudo yum install ./google-chrome-stable_current_*.rpm

Instale o Google Chrome Alpine 64bits

apk add chromium chromium-chromedriver

Instale o NodeJs Debian (e.g. Ubuntu)

Instalar
# Ir para seu diretório home
cd ~

# Recuperar o script de instalação para sua versão de preferência
curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -

# Instalar o pacote Node.js
sudo apt install -y git nodejs yarn gcc g++ make vim curl python3

# Remover pacotes que não são mais necessários
sudo apt autoremove -y

Instale o NodeJs CentOS 7/8 64bits

Instalar
# Ir para seu diretório home
cd ~

# Recuperar o script de instalação para sua versão de preferência
curl -sL https://rpm.nodesource.com/setup_16.x | sudo -E bash -

# Instalar o pacote Node.js
sudo yum install -y git nodejs yarn gcc g++ tar make vim curl python3

# Remover pacotes que não são mais necessários
sudo yum autoremove -y

Gerar SECRET_KEY para uso local de validação

node -e "console.log(require('crypto').randomBytes(45).toString('base64').slice(0, 60));"

Configuração inicial do arquivo ".env-example"

NODE_EN=production
#
# Defina o HOST aqui caso voce utilize uma VPS deve ser colocado o IP da VPS
# Exemplos:
# HOST=204.202.54.2 => IP da VPS, caso esteja usando virtualização via hospedagem
# HOST=10.0.0.10 => IP da VM, caso esteja usando virtualização
# HOST=localhost => caso esteja usando na sua proprima maquina local
# HOST=.0.0.0.0 => caso esteja usando em um cotainer
HOST=localhost
#
# Defina o numero da porta a ser usada pela API.
PORT=8009
#
# CASO UTILIZE CERTIFICADO SSL COM REDIRECIONAMENTO DE PORTA, DEVE PREENCHER A VARIAVEL DOMAIN_SSL
# CASO DE NÃO SER CONFIGURADO UM DOMÍNIO MATENHA A VARIAVEL DOMAIN_SSL VAZIA
# Exemplos:
# DOMAIN_SSL=api.meudomai.com.br ou meudomai.com.br
# DOMAIN_SSL=
DOMAIN_SSL=
#
# Chave de segurança para validação
SECRET_KEY=
#
# Caminho para o binário do Chrome a ser utilizado durante a execução 
CHROME_BIN=
#
# Url WebSocket para se comunicar com navegador
WSENDPOINT=
#

Rodando a aplicação

# Ir para seu diretório home
cd ~

# Clone este repositório
git clone https://github.com/AlanMartines/diario-da-justica-eletronico-tjms.git ApiTJMS

# Acesse a pasta do projeto no terminal/cmd
cd ApiTJMS

# Instale as dependências
npm install --allow-root --unsafe-perm=true

# Configuração inicial
cp .env-example .env

# Execute a aplicação
node server.js

# Manter os processos ativos a cada reinicialização do servidor
npm install pm2 -g

pm2 start server.js --name ApiTJMS --watch

pm2 save

pm2 startup

# Para remover do init script
pm2 unstartup systemd

# O servidor iniciará na porta 8009

# Pronto, escaneie o código QR-Code do Whatsapp e aproveite!

Rota - Caderno unificado

Json (POST)

{
  "dtDiario": "01/01/2019",
  "nuDiarioCadUnificado": 5179
}

Rota - Consulta dos cadernos

Json (POST)

{
  "dtDiario": "01/01/2019",
  "nuDiario": 5179,
  "cdCaderno": 0,
  "cdSecoes": 0
}
Cadernos

0 - Caderno 1 - Administrativo

1 - Caderno 2 - Judicial - 2ª Instância

2 - Caderno 3 - Judicial - 1ª Instância

3 - Caderno 4 - Editais

Seção

0 - TRIBUNAL DE JUSTIÇA

1 - Presidência

2 - Secretaria da Magistratura

3 - Secretaria de Gestão de Pessoas

4 - Escola Judicial do Estado de Mato Grosso do Sul

5 - Corregedoria-Geral da Justiça

6 - Secretaria da Corregedoria-Geral da Justiça

7 - Secretaria de Bens e Serviços

8 - Departamento de Compras, Licitações e Contratos

9 - Extrajudicial

Rota - Download dos cadernos

Json (POST)

{
  "dtDiarioCad": "01/01/2019",
  "cadernosCad": "-1",
}
Cadernos

-1 - Cadernos unificados

1 - Caderno 1 - Administrativo

2 - Caderno 2 - Judicial - 2ª Instância

3 - Caderno 3 - Judicial - 1ª Instância

4 - Caderno 4 - Editais

Rota - Pesquisa avançada

Json (POST)

{
  "dtInicio": "01/01/2019",
  "dtFim": "31/12/2019",
  "cdCaderno": "-11",
  "pesquisaLivre": "\"Palavras-chave aqui\""
}
Cadernos

-11 - Pesquisar em todos os cadernos

1 - Caderno 1 - Administrativo

2 - Caderno 2 - Judicial - 2ª Instância

3 - Caderno 3 - Judicial - 1ª Instância

4 - Caderno 4 - Editais

Palavras-chave
E
Busca todas as palavras desejadas. Quando nenhum
operador é indicado, o “E” é utilizado por padrão.
Exemplo: furto E carro E estacionamento

OU
Busca alguma(s) ou todas as palavras desejadas.
Exemplo: bicicleta OU carro OU motocicleta

NÃO
Busca uma palavra e não outra.
Exemplo: corrupção NÃO passiva

?
Busca palavras com um caractere qualquer substituindo o ?.
Exemplo: vici? - vicio, vicia, vicie

*
Busca palavras com um conjunto qualquer
de caracteres substituindo o *.
Exemplo: vici* - viciado, viciada, vicioso

" "
Busca uma frase completa que esteja entre as aspas.
Exemplo: "mandado de segurança"

Caderno unificado (POST method)

Visualiza o caderno unificado das edições do Diário da Justiça Eletrônico.
await fetch("http://localhost:8009/instance/downloadCaderno", {
  method: "POST",
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
		"dtDiario": "01/01/2019",
		"nuDiarioCadUnificado": "5179"
  }),
})
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error(error));

Download dos cadernos (POST method)

Download dos cadernos do Diário da Justiça Eletrônico na íntegra. Opção disponível de segunda a sexta-feira, das 00:01 às 23:59 horas; sábado, domingo e nos dias em que, mediante divulgação, não houver expediente ficará disponível 24 horas.
await fetch("http://localhost:8009/instance/downloadCaderno", {
  method: "POST",
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
		"dtDiarioCad": "01/01/2019",
		"cadernosCad": "-1",
  }),
})
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error(error));

Pesquisa avançada (POST method)

Consulta avançada aos cadernos das edições do Diário da Justiça Eletrônico.
await fetch("http://localhost:8009/instance/searchAdvanced", {
  method: "POST",
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
		"dtInicio": "01/01/2019",
		"dtFim": "31/12/2019",
		"cdCaderno": "-11",
		"pesquisaLivre": "\"Palavras-chave aqui\""
  }),
})
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error(error));

Reflexão

O conhecimento que adquirimos não merece ficar parado. Compartilhar tudo o que sabemos e gerar valor na vida de outras pessoas pode ter efeitos incríveis. Viver em constante compartilhamento de informações ajuda nossa comunidade profissional a evoluir cada vez mais.

Todos nós, independente do nível de conhecimento técnico, temos algum tipo de diferencial a oferecer para o próximo.

Já que temos a incrível capacidade de oferecer algo diferente para o próximo, devemos aproveitar isso para compartilhar todo esse nosso conhecimento.

Às vezes temos o sentimento de que aquilo que estamos fazendo de tão especial merece ser compartilhado, a internet está aí para nos possibilitar isso.

Temos a chance de buscar um conhecimento hoje e amanhã criar um artigo, vídeo ou qualquer outro tipo de material para compartilhar com as pessoas esse conhecimento que adquirimos.

Muitas pessoas, e talvez você se inclua nesse grupo, ainda têm aquele sentimento forte de mudar o próximo. Um sentimento que a faz ter um propósito de vida para buscar algo a mais, algo que possa contribuir para as gerações que por aqui estão e que ainda virá a passar.

Isso fica ainda mais expressivo quando se trata da comunidade específica de seu campo de estudo ou trabalho, pois deixar algum “legado” para sua área de conhecimento é algo que chama atenção de profissionais, pesquisadores e estudantes do mundo todo.

Muitos são movidos exatamente por essa energia de deixar seu nome registrado para o mundo.

A sua carreira é construída ao longo do tempo com uma série de conhecimentos e habilidades que são adquiras ao longo da vida.

Mas essa tarefa não precisa ser uma ação solitária e tão complicada assim, ainda mais levando em conta que uma sede grande pela busca de conhecimento e alguns ainda mais motivados para compartilhar tudo aquilo que já aprenderam.

Em outras palavras, as pessoas acabam tendo uma certa tendência em escutar o que as outras pessoas têm a dizer e também fazer a sua voz ser ouvida.

A informação não fica parada!

Quando entendemos a força desse hábito de compartilhar conhecimento, estamos contribuindo para que as pessoas ao nosso redor, que também precisam desse conhecimento, não parem de aprender.

Informação que fica parada, se perde! Tudo está na rede, esperando por você.

Faça dessa prática um de seus hábitos também. As informações que são compartilhadas por você podem contribuir para o crescimento e ascensão de alguém, já imaginou isso?

Envolva-se com as pessoas. Isso é ter propósito!

License

MIT

Package Sidebar

Install

npm i diario-da-justica-eletronico-tjms

Weekly Downloads

0

Version

1.0.1

License

MIT

Unpacked Size

187 kB

Total Files

13

Last publish

Collaborators

  • alanmartines