Widget do IMDb para o WordPress

Após o widget para o HackerRank, estava na altura de fazer uso do conhecimento adquirido para criar mais widgets. Desta vez, eu e o Henrique Dias, decidimos criar um widget que exibe um perfil do IMDb no blog WordPress. 

O widget tem as seguintes funcionalidades relativas a um perfil IMDb:

  • Informação geral (username, bio., badges);
  • Os últimos votos (com gráficos);
  • A watchlist;
  • As listas;
  • As críticas (reviews);
  • As entradas nos fóruns.

Para que funcione, basta instalar, adicionar o widget e inserir o username!

Vamos à implementação… Para além de reforçar e melhorar os conhecimentos previamente adquiridos, há que assinalar os seguintes pontos, que, de certa forma, foram novidade:

  • Web scrapping: foi necessário explorar conceitos de web scraping, pois o IMDb não fornece uma API. Para tal, usou-se a biblioteca Goutte. Isolámos o seu uso numa biblioteca nossa (smart-scraper), de mais alto nível, com uma API fluente. Vejamos um exemplo que mostra como é fácil sacar informação de um perfil IMDb com o mínimo de dependências:
    hOBTMK9[1]
    O código acima coloca dentro de $info a variável $watchlist sacada com o seletor CSS .watchlist .item o qual dá origem a uma listagem. Dessa listagem queremos 3 valores (title, link e logo, cada um conseguido com o seu subseletor).
  • Gestão de dependências: neste caso, o sistema escolhido foi o Composer (equivalente ao Maven para Java). Este utilitário funciona em complemento com o Packagist, um repositório para as dependências, onde alojámos o nosso “smart-scraper”.
  • Organização: melhorámos a organização dos ficheiros, tentando seguir as normas dos plugins WordPress (inspiração num boilerplate e num gerador).
  • CSS transversal: para evitar repetição de código, foi criado um CSS que agrega as regras em comum nos widgets criados por nós.
  • Sincronização de repositórios: o Henrique aproveitou para criar um utilitário para simplificar o processo de commit (wpsync), já que temos o código no GitHub, mas há que fazer commit para o WordPress em paralelo (e aumentar a versão do widget, para desencadear as atualizações).

Planeamos criar mais widgets… Stay tuned!

Recursos

Anúncios

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s

Create your website at WordPress.com
Get started
%d bloggers like this:
search previous next tag category expand menu location phone mail time cart zoom edit close