sexta-feira, 17 de maio de 2013

Criando um Planet

Introdução:
Um planet é um concentrador de artigos relacionados a determinado assunto, no mundo do Software Livre, existem muitos Planets famosos: Planet Apache, Planet Debian, Planet Gnome, Planet KDE e etc.

Como funciona?

Basicamente você configura seu planet para ler os feed rss de determinados sites/blogs, na maioria das vezes essa configuração é feita para pegar apenas o rss de determinadas categorias/tags. Com isso os usuários fazem os posts em seus sites/blogs e automaticamente isso é publicado no planet, a vantagem para os que acessam o planet é que todas as informações estão concentradas em um único lugar.

Configuração nos sites/blogs que irão alimentar o Planet:
A única coisa que o site/blog precisa fazer é habilitar o rss das notícias, porém duas ações são fortemente recomendadas:
  • Utilizar categorias/tags nas postagens;
  • Alterar o feed do rss para mostrar apenas o resumo (sinopse).
Suprindo as dependências de instalação:
A única dependência é a instalação do Python 2.2 (ou superior) no sistema.

Instalação do Planet:
Baixe a última versão estável do pacote no site Planet Planet. Por exemplo, para a versão no momento em que escrevo esse post, usei os comandos:
# cd /var/www/html
# wget http://www.planetplanet.org/download/planet-2.0.zip


Descompacte o pacote e renomeie o diretório:
# unzip planet-2.0.zip
# mv planet-2.0 planetzabbixbrasil


Torne o script executável, acesse o diretório de exemplos, e copie o diretório fancy para o nome que você quer dar ao planet, vou usar como exemplo o zabbix:
# cd planetzabbixbrasil
# chmod 755 planet.py
# cd examples
# cp -rv fancy zabbix


Configurando o planet:
As configurações são bem simples e com exemplos, vou comentar apenas alguns trechos, uma versão traduzida do arquivo pode ser encontrada no Viva o Linux
# cd zabbix/
# vi config.ini
[Planet]
name = Planet Zabbix Brasil
link = http://planet.zabbixbrasil.org
owner_name = Zabbix Brasil
owner_email = zabbixbr@zabbixbrasil.org

cache_directory = examples/cache
new_feed_items = 2
log_level = DEBUG
feed_timeout = 20

template_files = examples/fancy/index.html.tmpl examples/atom.xml.tmpl examples/rss20.xml.tmpl examples/rss10.xml.tmpl examples/opml.xml.tmpl examples/foafroll.xml.tmpl

output_dir = examples/output
items_per_page = 60
date_format = %d de %B de %Y, %H:%M
new_date_format = %d de %B de %Y
encoding = utf-8
locale = pt_BR.UTF-8

days_per_page = 7

activity_threshold = 0

[DEFAULT]
facewidth = 65
faceheight = 85

#Entrada dos blogs:
[http://andredeo.blogspot.com.br/feeds/posts/default/-/Zabbix?alt=rss]
name = André Déo
face = deo.png

O parâmetro face serve para mostrar uma miniatura do logo do blog/site ou rosto do autor, ele é opcional e a imagem deve estar dentro da pasta examples/output/images.

Colocando o endereço dos rss:

Wordpress:
[http://nome-do-blog.wordpress.com/categoria/nome-da-categoria/feed/]
[http://spinola.net.br/blog/?cat=3/zabbix/feed/]
[http://gutocarvalho.net/octopress/categories/zabbix/atom.xml]
[http://www.helviojunior.com.br/category/it/monitoramento/zabbix/feed/]

Blogger:
[http://nome-usuario-blog.blogspot.com/feeds/posts/default/-/nome-da-categoria]
[http://andredeo.blogspot.com.br/feeds/posts/default/-/Zabbix?alt=rss]

Serendipity:
[http://url-principal-blog/index.php?/feeds/categorias/numerocategoria-nomecategoria]
[http://www.jacksonheraldtoday.com/index.php?/feeds/categories/9-Education-Stories]
[https://www.globalways.net/blog/index.php?/feeds/categories/2-Linux]

Populando o planet com as informações dos blogs:
# cd /var/www/html/planetzabbix
# ./planet.py examples/zabbix/config.ini


Configure o apache para apontar para o diretório:
/var/www/html/planetzabbix/examples/output/

Automatizando o processo de coleta dos dados:
# crontab -e
# Roda a atualização do Planet Zabbix Brasil a cada 10 minutos
*/10    *       *       *       *       /var/www/html/planetzabbix/planet.py /var/www/html/planetzabbix/examples/zabbix/config.ini

Referências:
http://teachingopensource.org/index.php/Planet_Feed_List
https://library.linode.com/web-applications/social-networking/planet/ubuntu-12.04-precise-pangolin
https://github.com/GNOME/planet-web/blob/master/config/gnome-br/config.ini

Nenhum comentário: