Quero pegar meus artigos de blogs internet e publicar em papel. Ou, mais pretenciosamente ainda, quero um completo sistema editorial para jornais e revistas. Que permita à redação trabalhar num CMS e pegue o material automaticamente para montar as páginas. Em código aberto como uma latinha de cerveja gelada…
Pois hoje, 2007, é possível o casamento entre um Content Management System (CMS) como WordPress e um Desktop Publisher como Scribus, através de linguagem Python e banco de dados MySQL.
O programa open source de editoração Scribus tem um módulo de linguagem script, ou seja, permite que o usuário crie e rede programas dentro do Scribus que operam elementos de páginas de jornal. A linguagem script do Scribus é Python, uma das mais usadas e poderosas linguagens-cola, atualmente.
Com muitos usuários e desenvolvedores, Python tem módulos prontos para fazer tudo o que se imagina. Por exemplo, módulos para acesso a banco de dados MySQL.
Para ter meu sistema Scribus+Python funcionando legal para um sistema editorial, eu precisava aprender a procurar e instalar novos módulos. Fiz isso, então:
- Baixei e instalei o Scribus.
- Baixei os arquivos do MySQLdb, o módulos Python 2.4 para acessar MySQL.
- Descomprimi dentro desta pasta do Scribus: \lib\site-packages\.
- Pronto. Reiniciei o Scribus para acessar banco de dados do WordPress ou de qualquer outro gerenciador de conteúdo ou blog.
Eu preciso também de módulos para o Python operar imagens, fotos etc. Procurei um módulo de manipulaçã de imagem e achei o PIL, Python Imaging Library. Baixei uma versão indicada para o interpretrador Python 2.4 do Scribus 1.3.3. Abri o executável zipado e extraí os arquivos para os diretórios \lib\site-packages e \scripts, dentro do diretório do Scribus.
O arranjo ainda esta sendo testado. Mas, dando certo, permitiria que scripts automatizados diagramassem grosseiramente as páginas de jornais. Todo o trabalho chato será feito por scripts. Depois, os diagramadores fariam pequenos ou grandes ajustes nas páginas.
Carregando o módulo para acessar MySQL
Se as instalações estivessem corretas, seria possível controlar o banco de dados pelo console do Scriper Scribus, que nada mais é do que um console Python. Abri o console pelo menu “Script > Mostrar console”. Digitei o código:
Import MySQLdb
E usei a tecla F9 pra rodar este pedaço de programa. Quando tudo deu certo, não há mensagem de erro, apenas não acontece nada na tela de retorno do console. O que indica que foram carregadas sem problemas as bibliotecas para o Python acessar o MySQL.
Usando o MySQLdb
Eu tenho um servidor WAMP rodando com um “espelho” do meu site WordPress. Portanto, tenho um banco de dados MySQL com a cópia do conteúdo de meu site WordPress. Eu posso acessar esse banco de dados e editá-lo pelo OpenOffice Base. Ou posso acessar pelo Scribus e usar o texto para diagramar o jornal de papel. Isso é feito através da linguagem script do Scribus. Um exemplo de script assim vem no próprio Scribus, no arquivo \share\samples\sample_db_usage.py .
Uso código Python como este:
db=MySQLdb.connect(host="localhost", user="root", passwd="********", db="wordpress_database") cursor=db.cursor() cursor.execute("select * from wp_posts")# Pega o total de linhas da tabela numrows = int(cursor.rowcount) # Pega e mostra uma linha por vez for x in range(0,numrows): row = cursor.fetchone() print row[0], "-->", row[1]
Isto imprimiu duas colunas de números no console. Não serviu para nada, apenas para eu confirmar que funciona a conexão Scribus-MySQL.
Então, tive a comprovação que um script Scribus pode acessar um banco de dados MySQL e pegar material, textos, links de imagens, e montar páginas “sozinho”! Pode até gerar o PDF.
Agora, todo um mundo novo à frente!
Eu já imagino um sistema editorial montado em um CMS que já é o próprio site do veículo. O diagramador faz uma consulta no Scribus, e o script puxa as matérias e entrega pré-diagramadas. Cada página é montada on the fly apenas para visualização ou é montada definitivamente, depois que esgotou o prazo de fechamento.
O departamento comercial de um veículo pode usar um blog para recepção de anúncios destacados e classificados. Scripts da diagramação lêem as informações de anúncios diretamente do banco de dados do comercial. Tudo em tempo real.
[Atualização 2012-08-29: Não tive tempo para desenolver isto, mas ha projetos em http://www.mediabistro.com/10000words/how-to-run-a-news-site-and-newspaper-using-wordpress-and-google-docs_b4781]
a ideia é excelente ! E mais excelente ainda se funcionasse.
Como correram os testes ?
Conseguiu fazer alguma automação.
Para quem nao percebe nada programaçao mas lida com dados e sites era excelente se desse mais informaçoes sobre este assunto.
Obrigado pela ideia e pelas dicas…
Olá, Eli!
Estou preparando um projeto de doutorado em cima desta ideia. Se der certo, em quatro anos poderei publicar o sistema. Em vez de acessar diretamente o MySQL, tentarei usar a API de um CMS como WordPress ou Blogger.