A versão atual apenas funciona em SOs baseadas em Linux ou BSD.
- python >= 3.7.1
- pip3
Antes de iniciar, certifique-se de ter lido os requisitos.
Faça o download do repositório com:
git clone https://github.com/computacaoUnisul/u.sync.git
O projeto usa o scrapy para automatizar os processos HTTP cliente/servidor, além dos ferramentas para extrair dados de texto HTML. Também é utilizado um projeto chamado scrapy-cookies, que lida com persistência dos cookies de autenticação em memória. Para instalar, entre no diretório raiz do projeto e execute do terminal:
OBS: utilize o binário do seu sistema, no meu caso é o pip
, mas se você ter o pip instalado para python versão 2.7, provavelmente o certo para você será pip3
.
pip install -r requirements.txt
Como usamos o scrapy, este nos dá a disposição objetos chamados de Spider
para lidar com a busca que queremos fazer. Cada operação realizada para buscar os materiais na internet é feita por uma Spider diferente, afim de simplificar e especializar cada operação. Tais operações são:
- login no sistema EVA
- extrair todas as matérias do usuário
- extrair todos os materiais de cada matéria
- sincronizar todos os materiais com uma pasta local
- logout do sistema EVA
Você deve estar se perguntando o seguinte: como é possível que os Spiders de extração, que são totalmente independentes, conseguem extrair os dados sem terem feito login? Bom a resposta é simples, eles não conseguem! Como dito anteriormente, usamos cookies persistentes e assim conseguimos libertar as Spiders. Esses cookies persistentes ficam armazenados em um arquivo, assim como seu navegador também faz.
Um shell script foi criado com a finalidade de juntar a execução de cada Spider e tranformar em um programa que sincroniza todos os materiais. O script está na pasta raiz com o nome de sync.sh
. Aqui darei mais detalhes sobre como usar o script.
- -k : Induz o script a manter sua login ativo, ou seja, seus cookies permanecerão salvos, e o logout da conta não será feito. Para o sistema do EVA, existirá um login ativo para o seu usuário.
- -m : Executar o Spider especial do Max. Este não precisa de autenticação.
- -c : Remove qualquer arquivo de sincronização da última vez em que foi executado.
- -x : Especifica um arquivo com os dados de autenticação no EVA. A primeira linha deve ser o usuário e a segunda linha a senha. A principal finalidade é para simplificar testes, então use com precaução, e acima de tudo deixe esse arquivo apenas legível para o seu usuário.
- -d : Caminho para o diretório onde deve ser feita a sincronização. Por padrão sempre será salvo no caminho relativo
src/book_bot/downloads/
.
O script anteriormente citado nos limita a executar uma operação por vez, ou o EVA ou o Max, não os dois. Se este é o seu objetivo, existe um outro script que sincroniza os dois, também está na raiz com o nome de sync_all.sh
. O script apenas executa o EVA e depois chama o Max Spider, no final é apenas um helper
.
Os parâmetros são os mesmos do script sync.sh
.