Introdução ao clib (Command Line Book)

Criado por mrxrobot, membro do VOL, o clib (Command Line Book) é um software livre lançado sob a CC0 (Creative Commons) cuja finalidade é realizar o download de livros no formato PDF. Tento como base a linguagem Python, o clib é uma excelente ferramenta para quem tem o hábito da leitura e gosta de livros digitais, uma vez que usando o clib, será prático e fácil baixar livros da internet.

[ Hits: 11.521 ]

Por: mrxrobot em 01/11/2017 | Blog: https://notabug.org/mrxrobot_


Como o projeto tomou forma



Conversando com um grande amigo no IRC, inclusive foi no canal do #vivaolinux na Freenode, sobre livros que já havíamos lido e se o livro era bom ou não, dentre os livros mencionados falei sobre o símbolo perdigo - Dan Brown e meu amigo falou sobre o livro "O hobbit".

Conversa vai, conversa vem, acabei por perguntar se ele conhecia algum site bom onde eu pudesse fazer o download de livros. Logo de cara ele me respondeu: eu gosto do site lelivros.bid, além de poder baixar o livro, o site oferece outros formatos para download, porém você encontrará alguns incômodos na hora de baixar um livro, mas tirando isso, é um bom site.

De imediato acessei o tal lelivros e realmente, o conteúdo do site me surpreendeu. Lá encontrei diversos livros para baixar gratuitamente com várias classificações etc. Mas, havia um grande problema, os malditos anúncios, então percebi sobre os tais incômodos que meu amigo me falou pelo IRC.

Baixar um livro, dependendo da hora em que você estivesse logado no site era um trabalho muito chato. Além dos anúncios, ao clicar no link de download, o site estabelecia uma trava de 1 minuto e, após esse tempo, você era redirecionado para outra página com inúmeros anúncios e propagandas e aí sim o link estava liberado.

E foi aí que a história começou, a partir desse dia, fiquei 2 belíssimas semanas sem dormir direito, era desenvolvimento full, resumindo, uma junção perfeita entre muito código e boas xícaras de café.

Acessei o lelivros novamente, porém, desta vez eu queria descobrir o que estava por debaixo dos panos, isto é, como o lelivros funcionava, ou ainda, onde os livros ficavam armazenados e como acessá-los sem esse incômodo de propagandas e travamentos.

Foi aí que tomei a grande iniciativa de desenvolver um Software Livre, cuja função seria pesquisar por livros no site lelivros e realizar o download desses livros de forma prática e eficiente, garantindo a comodidade do usuário e acima de tudo, à moda antiga, ou seja, o software foi feito para rodar em modo texto.

Antes que comecem os choros e reclamações: por que você não fez com interface gráfica?

Bom, fiz esse software destinado a todos, no entanto, meu público-alvo são os amantes do Unix-like, ou seja, a galera que gosta do modo texto, pessoas no qual abrem um terminal e fazem milagre, ou aquelas que simplesmente executam "ping google.com" e se denominam hackers.

Enfim, brincadeiras à parte, o clib não tem preconceitos, foi feito carinhosamente para toda a comunidade sem exceções.

Por isso, meninos e meninas, muita calma, pois ainda assim, o script não agradará a todos, mas tratando-se de uma comunidade adepta ao Linux, o VOL, acredito que todos curtirão.

Depois de 2 semanas trabalhando freneticamente, publiquei o projeto que aparentemente encontra-se livre de bugs, no notabug, que é uma excelente plataforma livre, muito similar ao GitHub, porém 100% voltada ao Software Livre. Eu adorei e recomendo muito o uso do NotABug.org.

Detalhes importantes sobre o clib

Quando iniciei o desenvolvimento, uma das principais funcionalidades que desenvolvi através da lógica de programação, foi que, a cada pesquisa/acesso ao site lelivros, o clib usaria um user-agent aleatório, desse modo, evitando que algum mecanismo do site impedisse o acesso às informações.

Trechos do código que usa um user-agent aleatório:

# modulo para escolher algo aleatório, no caso, o user-agent
from random import choice

user_agents = [
        'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',
        'Opera/9.25 (Windows NT 5.1; U; en)',
        'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
        'Mozilla/5.0 (compatible; explorer/3.5; Win7) KHTML/3.5.5 (like Gecko) (windows 7)',
        'Mozilla/5.0 (X11; U; unknow i686; en-US; rv:1.8.0.12) Gecko/20070731 unknow/dapper-security Firefox/1.5.0.12',
        'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
]

self.req = Request(
                self.url,
                data=None,
                headers={'User-Agent': choice(user_agents)})

O clib não faz nada ilegal ou comprometedor ao site lelivros e sim uma análise de código fonte buscando pelo link que leva ao download do livro pesquisado.

Um dos principais módulos do Python que permitiu essa tarefa foi o BeautifulSoup, conhecido por bs4.

Sem mais delongas, abaixo estão algumas imagens que descrevem o funcionamento do software e a página do projeto. Eu espero que esse software venha ajudar a comunidade e aos interessados, o projeto estará de braços abertos para receber contribuições como dicas, reclamações, contribuições com código etc.

E que a força esteja com vocês!
#vivaolinux

Página do projeto:
Imagens:
    Próxima página

Páginas do artigo
   1. Como o projeto tomou forma
   2. Instalação
Outros artigos deste autor

LibreOffice no Slackware - Edição 2017

Controlando Arduino via IRC

Leitura recomendada

Como baixar fotos e vídeos do Instagram com Python

Gerar Códigos QRCode com Python

Sockets em Python

PEP 8 - Guia de estilo para código Python

Alimentando Desktopcouch com Zeitgeist

  
Comentários
[1] Comentário enviado por removido em 09/11/2017 - 08:10h

Prevejo que esse programa vai precisar de bastante manutenção.
O Lelivros é um site com conteúdo pirata, volta e meia troca de servidor. Houve um momento em que apenas em uma semana o site mudou de servidor três vezes.

[2] Comentário enviado por removido em 12/11/2017 - 17:48h

muito bom irei testar, parabéns!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts