Sistema editorial com Scribus+Python+MySQL

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:

  1. Baixei e instalei o Scribus.
  2. Baixei os arquivos do MySQLdb, o módulos Python 2.4 para acessar MySQL.
  3. Descomprimi dentro desta pasta do Scribus: \lib\site-packages\.
  4. 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]

Bibliografia

  1. Python Database modules.
  2. Database Programming in Python: Accessing MySQL

About José Antonio Meira da Rocha

Jornalista, professor das áreas de Editoração e de Mídias Digitais na Universidade Federal de Santa Maria, campus cidade de Frederico Westphalen, Rio Grande do Sul, Brasil. Doutor em Design pelo Programa de Pós-Graduação em Design (PGDesign)/Universidade Federal do Rio Grande do Sul (UFRGS), Porto Alegre, Brasil, 2023. Mestre em Mídias pela UNISINOS, São Leopoldo, RS, Brasil, 2003. Especialista em Informática na Educação, Unisinos, 1976.