diff --git a/dag_confs/examples_and_tests/pubtype_example.yaml b/dag_confs/examples_and_tests/pubtype_example.yaml new file mode 100644 index 0000000..fbbb00a --- /dev/null +++ b/dag_confs/examples_and_tests/pubtype_example.yaml @@ -0,0 +1,21 @@ +dag: + id: pubtype_example + description: DAG de teste (filtro por tipo de publicação) + search: + sources: + - DOU + terms: + - programa + pubtype: + - Ato + - Portaria + - Edital + - Extrato + - Ratificação + - Resolução + - Retificação + - Protocolo + report: + emails: + - destination@economia.gov.br + subject: "Teste do Ro-dou" diff --git a/docs/docs/como_funciona/exemplos.md b/docs/docs/como_funciona/exemplos.md index f8fcf0a..e9b8d96 100644 --- a/docs/docs/como_funciona/exemplos.md +++ b/docs/docs/como_funciona/exemplos.md @@ -281,4 +281,32 @@ dag: emails: - destination@gestao.gov.br subject: "Teste do Ro-dou" +``` + +### Exemplo 12 +Esta configuração filtra os resultados por tipos de publicações selecionadas. +Disponível para as pesquisas no DOU e INLABS. + +```yaml +dag: + id: pubtype_example + description: DAG de teste (filtro por tipo de publicação) + search: + sources: + - DOU + terms: + - programa + pubtype: + - Ato + - Portaria + - Edital + - Extrato + - Ratificação + - Resolução + - Retificação + - Protocolo + report: + emails: + - destination@gestao.gov.br + subject: "Teste do Ro-dou" ``` \ No newline at end of file diff --git a/docs/docs/como_funciona/parametros.md b/docs/docs/como_funciona/parametros.md index 75320f0..1d09a27 100644 --- a/docs/docs/como_funciona/parametros.md +++ b/docs/docs/como_funciona/parametros.md @@ -22,6 +22,7 @@ A página abaixo lista os parâmetros configuráveis nos arquivos YAML: - **use_summary**: Define se no relatório será exibido a ementa, se existir. Valores: True ou False. Default: False. (Funcionalidade disponível apenas no INLABS) - **ignore_signature_match**: Ignora a correspondência de assinatura ao realizar a busca. Valores: True ou False. Default: False. - **is_exact_search**: Busca somente o termo exato. Valores: True ou False. Default: True. +- **pubtype**: Lista de tipos de publicações a serem filtradas na busca. Valores: [Lista de tipos de publicações](tipos_de_publicacoes.md). - **sources**: Fontes de pesquisa dos diários oficiais. Pode ser uma ou uma lista. Opções disponíveis: DOU, QD, INLABS. - **terms**: Lista de termos a serem buscados. Para o INLABS podem ser utilizados operadores avançados de busca. - **territory_id**: Lista de identificadores do id do município. Necessário para buscar no Querido Diário. diff --git a/docs/docs/como_funciona/tipos_de_publicacoes.md b/docs/docs/como_funciona/tipos_de_publicacoes.md new file mode 100644 index 0000000..2403893 --- /dev/null +++ b/docs/docs/como_funciona/tipos_de_publicacoes.md @@ -0,0 +1,230 @@ +## Tipos de publicações (parâmetro pubtype) +- Ação Direta de Inconstitucionalidade e Ação Declaratória de Constitucionalidade +- Acórdão +- Acordo Coletivo de Trabalho +- Ajuste +- Alvará +- Aresto +- Ata +- Ato +- Ato Complementar +- Ato Concessório +- Ato Declaratório +- Ato Declaratório Conjunto +- Ato Normativo +- Ato Regimental +- Ato Regulamentar +- Auto de Infração +- Autorização +- Aviso +- Aviso aos Acionistas +- Aviso de Adiamento +- Aviso de Adjudicação +- Aviso de Alienação +- Aviso de Alteração +- Aviso de Alteração de Resultado de Habilitação +- Aviso de Anulação +- Aviso de Audiência Pública +- Aviso de Cadastramento +- Aviso de Cancelamento +- Aviso de Cancelamento de Termo Aditivo +- Aviso de Chamamento Público +- Aviso de Coleta de Preços +- Aviso de Consulta Pública +- Aviso de Convalidação +- Aviso de Credenciamento +- Aviso de Dispensa de Licitação +- Aviso de Eleição +- Aviso de Extravio +- Aviso de Fato Relevante +- Aviso de Habilitação +- Aviso de Homologação +- Aviso de Homologação e Adjudicação +- Aviso de Índice Técnico +- Aviso de Inexigibilidade de Licitação +- Aviso de Julgamento +- Aviso de Licença +- Aviso de Licitação +- Aviso de Licitação-Concorrência +- Aviso de Licitação-Convite +- Aviso de Licitação Deserta +- Aviso de Licitação-Leilão +- Aviso de Licitação-Pregão +- Aviso de Licitação-RDC Eletrônico +- Aviso de Licitação-RDC Presencial +- Aviso de Licitação-Registro de Preços +- Aviso de Licitação-Tomada de Preços +- Aviso de Nota Técnica +- Aviso de Padronização +- Aviso de Penalidade +- Aviso de Preços Registrados +- Aviso de Pré-Qualificação +- Aviso de Processo Seletivo +- Aviso de Proposta Comercial +- Aviso de Proposta Técnica +- Aviso de Prorrogação +- Aviso de Reabertura de Prazo +- Aviso de Registro de Chapas +- Aviso de Registro de Diplomas +- Aviso de Registro de Preços +- Aviso de Relação de Compras +- Aviso de Rescisão +- Aviso de Retificação +- Aviso de Revogação +- Aviso de Seleção +- Aviso de Serviço e Compra +- Aviso de Sorteio +- Aviso de Suspensão +- Aviso de Tomada de Subsídios +- Balancete +- Balancete Financeiro +- Balancete Patrimonial e Financeiro +- Balanço Patrimonial +- Balanço Social +- Certidão +- Circular +- Comunicado +- Consulta Pública +- Contrato de Gestão +- Convênio +- Decisão +- Decreto de Pessoal +- Decreto Legislativo +- Decreto não numerado +- Decreto numerado +- Deliberação +- Demonstração Contábil +- Despacho +- Despacho Interministerial +- Edital +- Edital da Justiça Gratuita (Art. 32 Portaria 268/2009-IN) +- Edital de Citação +- Edital de Concurso Público +- Edital de Convocação +- Edital de Credenciamento +- Edital de Intimação +- Edital de Leilão +- Edital de Notificação +- Edital de Processo Seletivo +- Edital de Vestibular +- Emenda +- Emenda Constitucional +- Estatuto +- Extrato +- Extrato da Ata +- Extrato de Acordo de Cooperação +- Extrato de Acordo de Cooperação Federativa +- Extrato de Acordo de Cooperação Técnica +- Extrato de Adesão +- Extrato de Ajuste +- Extrato de Apostilamento +- Extrato de Autorização de Fornecimento de Material +- Extrato de Autorização de Serviço +- Extrato de Autorização de Uso +- Extrato de Carta Contrato +- Extrato de Carta Reversal +- Extrato de Cessão +- Extrato de Cessão de Uso +- Extrato de Comodato +- Extrato de Compromisso +- Extrato de Concessão de Uso +- Extrato de Contrato +- Extrato de Convênio +- Extrato de Cooperação Mútua +- Extrato de Credenciamento +- Extrato de Denúncia +- Extrato de Depósito +- Extrato de Dispensa de Chamamento Público +- Extrato de Dispensa de Licitação +- Extrato de Distrato +- Extrato de Doação +- Extrato de Escritura de Compra e Venda +- Extrato de Extinção (Lei nº 8.745 - contratação temporária) +- Extrato de Fornecimento +- Extrato de Inexigibilidade de Licitação +- Extrato de Instrumento Convocatório +- Extrato de Instrumentos Contratuais +- Extrato de Memorando de Entendimento +- Extrato de Nota de Empenho +- Extrato de Ordem de Compra +- Extrato de Ordem de Execução de Serviço +- Extrato de Ordem de Fornecimento +- Extrato de Parceria +- Extrato de Parecer Técnico +- Extrato de Permissão de Uso +- Extrato de Permuta +- Extrato de Prorrogação de Ofício +- Extrato de Protocolo de Cooperação +- Extrato de Protocolo de Intenção +- Extrato de Recolhimento +- Extrato de Reconhecimento +- Extrato de Reconhecimento de Dívida +- Extrato de Registro de Preços +- Extrato de Rerratificação +- Extrato de Rescisão +- Extrato de Rescisão Contratual +- Extrato de Resilição +- Extrato de Sub-rogação +- Extrato de Termo Aditivo +- Extrato de Termo de Ajustamento de Conduta +- Extrato de Termo de Cooperação Técnica +- Extrato de Termo de Entrega +- Extrato de Termo de Execução de Projeto +- Extrato de Termo de Execução Descentralizada +- Extrato de Termo de Fomento +- Extrato de Termo de Ocupação de Imóvel +- Extrato de Termo de Parceria +- Extrato de Transferência de Posse +- Extrato Prévio +- Fato Relevante +- Instrução +- Instrução Normativa +- Instrução Normativa Conjunta +- Lei +- Lei Complementar +- Lista de Antiguidade +- Medida Provisória +- Memorando de Entendimento +- Mensagem +- Norma Complementar +- Ofício circular +- Ordem de Serviço +- Orientação Normativa +- Pacto +- Parecer Normativo +- Pauta +- Portaria +- Portaria Conjunta +- Portaria Intergovernamental +- Portaria Interministerial +- Processo Disciplinar +- Proposta Orçamentária +- Protocolo +- Protocolo de Intenções +- Provimento +- Ratificação +- Recomendação +- Recurso Disciplinar +- Relatórios +- Republicação +- Resolução +- Resolução do Senado Federal +- Resultado de Análise +- Resultado de Avaliação Técnica +- Resultado de Cadastramento +- Resultado de Concurso Público +- Resultado de Eleição +- Resultado de Habilitação +- Resultado de Índice Técnico +- Resultado de Julgamento +- Resultado de Julgamento de Licitação +- Resultado de Leilão +- Resultado de Proposta Técnica +- Resultado de Qualificação +- Retificação +- Retificação (de Edital) +- Solução de Consulta +- Súmula +- Súmula Administrativa +- Termo de Autorização +- Termo de Liberação de Operação diff --git a/src/dou_dag_generator.py b/src/dou_dag_generator.py index 7de77f4..8361793 100755 --- a/src/dou_dag_generator.py +++ b/src/dou_dag_generator.py @@ -280,6 +280,7 @@ def perform_searches( use_summary: Optional[bool], result_as_email: Optional[bool], department: List[str], + pubtype: List[str], **context, ) -> dict: """Performs the search in each source and merge the results""" @@ -296,6 +297,7 @@ def perform_searches( ignore_signature_match=ignore_signature_match, force_rematch=force_rematch, department=department, + pubtype=pubtype, reference_date=get_trigger_date(context, local_time=True), ) elif "INLABS" in sources: @@ -307,6 +309,7 @@ def perform_searches( ignore_signature_match=ignore_signature_match, full_text=full_text, use_summary=use_summary, + pubtype=pubtype, reference_date=get_trigger_date(context, local_time=True), ) @@ -340,6 +343,7 @@ def perform_searches( search_dict["result"] = result search_dict["header"] = header search_dict["department"] = department + search_dict["pubtype"] = pubtype return search_dict @@ -490,6 +494,7 @@ def create_dag(self, specs: DAGConfig, config_file: str) -> DAG: "full_text": subsearch.full_text, "use_summary": subsearch.use_summary, "department": subsearch.department, + "pubtype": subsearch.pubtype, "result_as_email": result_as_html(specs), }, ) diff --git a/src/hooks/dou_hook.py b/src/hooks/dou_hook.py index c3ea23a..3c0b98f 100644 --- a/src/hooks/dou_hook.py +++ b/src/hooks/dou_hook.py @@ -19,8 +19,8 @@ class DOUHook(BaseHook): - IN_WEB_BASE_URL = "https://www.in.gov.br/web/dou/-/" - IN_API_BASE_URL = "https://www.in.gov.br/consulta/-/buscar/dou" + IN_WEB_BASE_URL = "http://www.in.gov.br/web/dou/-/" + IN_API_BASE_URL = "http://www.in.gov.br/consulta/-/buscar/dou" SEC_DESCRIPTION = { Section.SECAO_1.value: "Seção 1", Section.SECAO_2.value: "Seção 2", @@ -158,6 +158,7 @@ def search_text( item["id"] = content["classPK"] item["display_date_sortable"] = content["displayDateSortable"] item["hierarchyList"] = content["hierarchyList"] + item["arttype"] = content["artType"] all_results.append(item) diff --git a/src/hooks/inlabs_hook.py b/src/hooks/inlabs_hook.py index 1bb8145..b6e1bde 100644 --- a/src/hooks/inlabs_hook.py +++ b/src/hooks/inlabs_hook.py @@ -123,6 +123,7 @@ def _generate_sql(payload: dict) -> str: "name", "pubname", "artcategory", + "arttype", "identifica", "titulo", "subtitulo", diff --git a/src/notification/email_sender.py b/src/notification/email_sender.py index 95edaa9..e463c67 100644 --- a/src/notification/email_sender.py +++ b/src/notification/email_sender.py @@ -92,14 +92,23 @@ def generate_email_content(self) -> str: blocks.append(f"
Filtrando resultados somente para:
""" ) - blocks.append("