Giter Club home page Giter Club logo

verve-robot's Introduction

Robô Verve

O robô serve para automatizar o processo de submissão de um artigo para a plataforma Wordpress. Utiliza Python, Selenium, Beautiful Soup, entre outras tecnologias.

Como funciona?

  1. O robô verifica a pasta converted
  2. O robô lê um arquivo em HTML e extrai de lá informações, como o título do artigo, os parágrafos e referências.
  3. O sistema abre o navegador e busca o vídeo do verve no Youtube relacionado ao título, extraindo dele o link, o título e a imagem de capa. A imagem é salva para a pasta images.
  4. O sistema acesa o Wikimedia Commons no navegador, busca pelo título do artigo. Caso apareça a opção "você quis dizer?", o sistema aceita a sugestão. Então, são extraídos os links das primeiras fotos da busca.
  5. O sistema faz requisições sem a utilização do navegador para buscar no site Pensador a frase mais compartilhada do autor (título do artigo). Caso haja frases cadastradas, o sistema adiciona o site como referência.
  6. O artigo é montado como um arquivo HTML que obedece a um template padronizado utilizando as informações extraídas.
  7. O sistema utiliza o navegador para entrar na plataforma do blog, faz o login, verifica a página de postagens e duplica a segunda postagem listada e faz algumas edições rápidas
  8. O sistema abre a edição do post no navegador, muda o modo de edição para o modo código, copia e cola o artigo montado, e salva pela primeira vez o rascunho. Então submete a foto do Youtube como foto de miniatura, cria um SEO, uma metadescrição e salva novamente o rascunho.
  9. O sistema processa o próximo arquivo

Atenção

Todos os scripts descritos nessa documentação presumem que serão executados na mesma pasta que está essa documentação. Recomenda-se abrir este projeto no Visual Studio Code e abrir o terminal integrado antes de se executar os comandos.

Todos os comandos foram testados no Linux, no Ubuntu.

Instalação

Robô

Antes de tudo, é preciso que o Python 3 esteja instalado. Siga esse tutorial de instalação caso não tenha instalado.

Usuários mais avançados de Python podem, opcionalmente, utilizar um ambiente virtual.

Instale as dependências do projeto, com o seguinte comando no terminal

pip3 install -r requirements.txt

ou

pip install -r requirements.txt

Como o projeto utiliza o pyperclip para copiar (equivalente ao famoso Ctrl + C), se atente à seguintes restrições:

Linux

Faz uso do xclip ou xsel. Garanta a instalação de um deles rodando no terminal (no caso do Ubuntu/Debian)

sudo apt install xclip

ou

sudo apt install xsel

Mac

Faz uso dos comandos pbcopy e pbpaste, que devem vir instalados no navegador

Windows

Não é necessário nenhum módulo adicional

Pandoc

Utilizado para converter o artigo do formato do Word para HTML.

Baixe o instalador para o seu sistema operacional e o execute para instalar.

Convertendo um único arquivo

Imagine que o arquivo de entrada se chame euclides.docx e esteja dentro da pasta input. Para converter o documento e adicioná-lo na pasta converted (que precisa existir previamente), execute o comando abaixo. Atenção:

  • Os nomes dos arquivos não devem possuir espaços
  • No Windows, as barras "/" devem estar invertidas ""
pandoc -f docx  input/euclides.docx -t html -o converted/euclides.html

Convertendo vários arquivos de uma vez

Para processar um lote de arquivos que estão dentro da pasta input para colocá-los dentro da pasta converted (que não precisa estar previamente criada), execute o script bash abaixo. Para rodar script bash no Windows, execute em um terminal que interprete bash, como o git Bash (veja Como instalar Git Bash no Windows )

mkdir -p converted #Cria pasta converted
for f in input/*; do mv "$f" "${f// /_}" 2>/dev/null; done #Troca espaços por _ em nomes de arquivos
for file in input/*; do #Itera em todos os arquivos
    name=$(echo "$file" | cut -f 1 -d '.') #Nome do arquivo sem a extensão
    cat $file | pandoc -f docx -t html > $name.html #Conversão do arquivo
done
mv input/*.html converted/. #Move arquivos gerados para pasta converted

Configurando ambiente

  • É preciso ter o Chrome instalado na máquina

  • Arquivo de ambiente

Para ser fácil alterar as senhas, caso necessário, isolamos as senhas em um arquivo que denominamos ".env" que deve ser colocado na mesma pasta que esta documentação. Deve ser preenchido desta maneira:

VERVE_LOGIN="insira o login aqui"
VERVE_PASSWORD="insira a senha aqui"
TEMPLATES="src/templates"
IMAGES="images"

As pastas templates e images são configuráveis, podendo ser configuradas nesse arquivo .env

  • Criação da pasta de imagens

Crie a pasta de imagens, onde serão baixadas as imagens da thumbnail dos vídeos. O nome desta pasta deverá ser images, e deverá estar na mesma pasta que esta documentação. No terminal shell, essa criação pode ser feita através do seguinte comando

mkdir -p images

Executando o script

Rode o seguinte comando:

python3 src/robot.py

ou

python src/robot.py

verve-robot's People

Contributors

til-gsouza avatar

Watchers

James Cloos avatar Gustavo Souza 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.