@[URL="http://www.subaruoutback.org/forums/member.php?u=39621"]echo[/URL] off
setlocal enabledelayedexpansion
rem finalidade: Baixa um Manual de Serviço Subaru (SM). A Subaru divide seus SMs em mais de 1000 peças e define um limite de 50 downloads por hora. Este script automatiza todo o download.
rem plataforma: Windows
rem depende: curl.exe precisa estar no mesmo diretório que este script.
rem autor: judoman
rem data: 23.Ago.15
rem versão: 1.0
rem //////////////////////////////////////////////////////////////
rem // D E F I N I R E S T E S A B A I X O //
rem //////////////////////////////////
set cookie=SetMe!
rem
rem Copie seu cookie JSESSIONID ativo acima.
rem Obtenha isso usando seu navegador para fazer login no site [URL]http://techinfo.subaru.com/[/URL]. Assinatura necessária, é claro.
rem Depois de fazer login, use este outro site para aprender como obter o valor JSESSIONID do seu navegador: [URL]http://www.wikihow.com/View-Cookies[/URL]
rem O valor JSESSIONID se parece com isto: FCAA09AD1154D2F6AD34434173908734
rem Não saia do site techinfo.subaru.com com seu navegador até que o download seja concluído. Fazer isso invalidará seu cookie.
rem
rem NOTA: Se você vir cookies techinfo.subaru.com começando com _utm<x>, ignore-os. Eles vêm do uso do Google Analytics pela Subaru.
set last_booklet_url=http://techinfo.subaru.com/proxy/105903/pdf/serviceManual/105903_2016_Legacy/G2520BEV1_1241.pdf
rem
rem O valor acima é a URL do último "folheto" para download do Manual de Serviço. Obtenha este valor navegando até o manual de serviço Subaru desejado em [URL]http://techinfo.subaru.com/[/URL]. Por exemplo, aqui está a localização da primeira versão do SM '16 Outback/Legacy:
rem [URL]http://techinfo.subaru.com/search/listResults.html?searchLit=Search&litNum=G2520BE[/URL]
rem Role até a parte inferior e, como mencionado, copie a URL do último "folheto" SM na variável last_booklet_url acima.
rem Isso ensina ao script duas coisas: qual SM pegar e quantos folhetos pegar.
rem
rem Finalmente: o valor acima está correto em 23.Ago.15. No entanto, ele será interrompido quando a Subaru lançar SMs revisados no futuro.
rem \\\\\\\\\\\\\\\\\\\\\\\\\
rem \ N Ã O M E X A C O M O R E S T O ;) \\
rem \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
rem Remova a extensão da URL (por exemplo, remova .pdf do final)
set download_url=%last_booklet_url:~0,-4%
rem Colha o número de "folhetos" que precisamos baixar. Assumindo um número de quatro dígitos...
set /a maxbooklet=%download_url:~-4%
rem Finalize a URL de download base removendo o número (suposto) de quatro dígitos...
set download_url=%download_url:~0,-4%
rem Obtenha o nome do arquivo base para salvar localmente. Adicionaremos o número mais tarde.
for %%A in ("%download_url%") do set filename_base=%%~nA
rem Certifique-se de que o curl esteja presente
if not exist .\curl.exe goto :no_curl
:download_SM
for /l %%x in (1, 1, %maxbooklet%) do (
set file_to_save=.\%filename_base%%%x.pdf
curl --header "Cookie: JSESSIONID=%cookie%;" "%download_url%%%x.pdf" > !file_to_save!
rem Se o cookie estiver errado ou a URL do SM estiver errada, obteremos arquivos vazios. Vamos verificar...
for %%A in (!file_to_save!) do if %%~zA equ 0 goto :abort_empty_download
rem Verificação do módulo. Ergo, se dividirmos por 50 e não houver resto, dormiremos por uma hora de acordo com a política da Subaru de 50 downloads/hr no máximo. Caso contrário, obteremos vazios...
SET /A VAR=%%x %% 50
if !VAR! equ 0 (
echo.
echo ~Dormindo por uma hora~
echo.
sleep 3601
)
)
goto :exit
:no_curl
echo.
echo ERRO: Sem cURL
echo.
echo curl.exe deve ser colocado aqui: %~dp0
echo Se você não o tiver, obtenha a versão 'Win32 - Generic' do curl gratuitamente em [URL]http://curl.haxx.se/download.html[/URL]
rem Claro que a versão x64 funcionará para caixas x64
goto :exit
:abort_empty_download
echo ERRO: Arquivo vazio baixado
echo Verifique se o cookie está definido corretamente e tente novamente. Se ainda não funcionar, certifique-se de que last_booklet_url está correto.
goto :exit
:exit
endlocal