Code Monkey home page Code Monkey logo

psp-utils's Introduction

PSP Utils

Descrição

Serviços utilitários para atividades da PSP.

Pré-requisitos

  • Node.js (preferencialmente v18.20.2+)
  • Yarn (preferencialmente v1.22.19+)

Instalação

  1. Clone este repositório:

    git clone https://github.com/phmachado/psp-utils.git
  2. Navegue até o diretório do projeto:

    cd psp-utils
  3. Instale as dependências:

    yarn
  4. Inicie o servidor:

    yarn start

Usos

1. Listagem de serviços por secretaria

Fazer uma requisição GET para localhost:3000/list-servicos-from-all-secretarias?site={URL}

  • {URL}: URL da página que contém a lista com todas as secretarias

A requisição irá retornar uma resposta da seguinte forma:

[
   {
      "secretaria": "Casa Civil",
      "url": "https://www.prefeitura.sp.gov.br/cidade/secretarias/casa_civil/",
      "servicos": [
         {
            "url": "http://transparencia.prefeitura.sp.gov.br/funcionalismo/",
            "img": {
               "src": "https://www.prefeitura.sp.gov.br/cidade/secretarias/upload/chamadas/whatsapp_image_2023-04-28_at_12_1682706045.51",
               "alt": "Fundo azul com imagem transparente, à frente os dizeres Portal da Transparência e logo da Prefeitura de São Paulo acima"
            },
            "titulo": "FUNCIONALISMO",
            "descricao": "Página com dados sobre os funcionários da Prefeitura extraídos do SIGPEC (Sistema Integrado de Gestão de Pessoas e Competências) e que têm como referência o mês anterior ao corrente"
         },
         ...
      ]
   },
   ...
]

2. Verificar se existe carrossel no site da PSP mas ainda não no atual

Fazer uma requisição GET para localhost:3000/has-carrossel

O serviço verifica os portais listados no arquivo src/json/sites.json

A requisição irá retornar uma resposta da seguinte forma:

[
    {
        "id": 1,
        "infoDaPagina": "Controladoria Geral do Municipio - Home",
        "temCarrosselNaPrefeitura": true,
        "temCarrosselNoAtual": true,
        "temNaPrefeituraMasNaoTemNoAtual": false
    },
   ...
]

3. Listar informações sobre os serviços de uma página

Fazer uma requisição GET para localhost:3000/get-carrossel-info?site={URL}

  • {URL}: URL da página que contém os carrosséis

A requisição irá retornar uma resposta da seguinte forma:

[
   {
      "id": 1,
      "href": "https://www.prefeitura.sp.gov.br/cidade/secretarias/upload/Imgens%20portal%202%20semestre/portaria_sms_G%202427-%2012_12_2013.pdf",
      "imgSrc": "https://www.prefeitura.sp.gov.br/cidade/secretarias/upload/chamadas/Botao_comite_etica_em_pesquisa_2_1646321997.png",
      "imgAlt": "Fundo branco e detalhe nas laterais formando uma moldura na cor verde. No canto superior esquerdo está escrito em letras verdes Comitê de Ética em Pesquisa. À direita, logo da área Comitê de Ética em Pesquisa.",
      "titulo": "",
      "descricao": ""
   },
   ...
]

4. Listar informações sobre os carrosséis de uma página

Fazer uma requisição GET para localhost:3000/get-servicos-info?site={URL}

  • {URL}: URL da página que contém os serviços

A requisição irá retornar uma resposta da seguinte forma:

[
   {
      "id": 1,
      "url": "http://www.prefeitura.sp.gov.br/cidade/secretarias/saude/noticias/?p=166187",
      "img": {
         "src": "",
         "alt": ""
      },
      "titulo": "Chá verde faz bem para a saúde",
      "descricao": "É conhecido por ajudar na queima de gordura corporal"
   },
   ...
]

5. Fazer upload das imagens dos serviços de uma página

Fazer uma requisição POST para http://localhost:3000/upload-servicos-images?site={URL}&folderId={FOLDER_ID}&login={LOGIN}&password={SENHA}

  • {URL}: URL da página que contém os serviços
  • {FOLDER_ID}: ID da pasta em que as imagens serão salvas no 'Documentos e Mídia'
    • Para encontrar o ID, é necessário verificar a URL da pasta e procurar pelo query param que termina com _folderId (usar o freeformatter pode facilitar essa procura)
  • {LOGIN}: Login de acesso ao portal
  • {SENHA}: Senha de acesso ao portal

A requisição irá retornar uma reposta da seguinte forma: "Images uploaded successfully"

6. Fazer upload das imagens dos carrosséis de uma página

Fazer uma requisição POST para http://localhost:3000/upload-carrossel-images?site={URL}&folderId={FOLDER_ID}&login={LOGIN}&password={SENHA}

  • {URL}: URL da página que contém os carrosséis
  • {FOLDER_ID}: ID da pasta em que as imagens serão salvas no 'Documentos e Mídia'
    • Para encontrar o ID, é necessário verificar a URL da pasta e procurar pelo query param que termina com _folderId (usar o freeformatter pode facilitar essa procura)
  • {LOGIN}: Login de acesso ao portal
  • {SENHA}: Senha de acesso ao portal

A requisição irá retornar uma reposta da seguinte forma: "Images uploaded successfully"

7. Gerar arquivo txt com queries para atualizar informações sobre os cards

Fazer uma requisição POST para localhost:3000/create-cards-queries-file

O serviço varre as páginas listadas no arquivo src/json/cards.json

A requisição irá retornar uma resposta da seguinte forma: "File created successfully"

Um arquivo com todas as queries será criado em ./queries.txt

8. Gerar arquivo txt com os tipos de cada site de uma secretaria

Fazer uma requisição POST para localhost:3000/create-site-types-file

O serviço varre as páginas listadas no arquivo src/files/txt/urls-da-secretaria.txt

A requisição irá retornar uma resposta da seguinte forma:

[
    {
        "url": "https://www.prefeitura.sp.gov.br/cidade/secretarias/mobilidade/",
        "hasCarrossel": true,
        "hasServicos": true,
        "isNoticia": false,
        "isCard": true,
        "isConteudo": false
    },
    ...
]

Um arquivo com todos os tipos será criado em ./secretaria-site-types.txt

9. Listar informações sobre serviços, notícias e acesso rápido de uma secretaria

Fazer uma requisição GET para localhost:3000/get-home-data

O serviço varre as páginas listadas no arquivo src/files/txt/urls-da-secretaria.txt, inclua aqui as urls que deseja listar as informações (1 url por linha)

A requisição irá retornar uma resposta da seguinte forma:

[
    {
        "idWaram": "",
        "secao": "topo-de-pagina",
        "titulo": "Acesso à Informação",
        "descricao": "Esta seção reúne e divulga, de forma espontânea, dados da Casa Civil do Gabinete do Prefeito que são de interesse coletivo ou geral com o objetivo de facilitar o acesso à informação pública, conforme determinação da Lei Federal nº 12.527, de 18/11/2011 (LAI), e o Decreto Municipal nº 53.623/2012. Na Casa Civil do Gabinete do Prefeito a autoridade de monitoramento da LAI pode ser contatada no endereço eletrônico: [email protected]. Informações adicionais podem ser obtidas no Portal da Transparência.",
        "urlImg": "https://www.prefeitura.sp.gov.br/cidade/secretarias/upload/chamadas/acesso_informacao_1510324640.png",
        "altImg": "Imagem com um balão e uma letra i dentro, onde o fundo é a cidade. Está escrito do lado inferior esquerdo Acesso à informação.",
        "path": "casa_civil/acesso_a_informacao/",
        "isLinkExterno": false,
        "link": "",
        "tipoLink": "link"
    },
    ...
]
  • idWaram: id presente na url
  • secao: seção da página
    • valores possíveis: acesso-rapido, servicos, noticias, saiba-mais, imagens-em-destaque, carrossel, videos, capas ou topo-de-pagina
  • titulo: título do conteúdo
  • descricao: descrição do conteúdo
  • urlImg: url da imagem
  • altImg: alt da imagem
  • path: caminho referente ao conteúdo, extraído da url da página
  • isLinkExterno: boolean indicando se é ou não um link externo
  • link: link do conteúdo
  • tipoLink: tipo do link do conteúdo
    • valores possíveis: imagem, documento ou link

Caso alguma key não encontre um resultado, o serviço enviará uma string vazia ("") como value.

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para abrir uma issue ou enviar um pull request.

psp-utils's People

Contributors

phmachado avatar vallegabrielle avatar lhine avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.