quarta-feira, 30 de maio de 2007

Usando Scribus+MySQL

Quero buscar meus artigos de sites internet e publicar em papel. Com a evolução das ferramentas de código aberto, é possível hoje o casamento entre um Content Management System (CMS) -- como WordPress ou Joomla -- e um Desktop Publisher como Scribus, através de banco de dados MySQL. Estou estudando e desenvolvendo projetos nesta área. Aqui relato como venho fazendo.

  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.
O arranjo ainda está sendo testado. Mas, dando certo, permitirá que scripts automatizados diagramem grosseiramente as páginas de jornais. Todo o trabalho chato será feito por scripts. Depois, os diagramadores farão pequenos ou grandes ajustes nas páginas.

Carregando o módulo para acessar MySQL

Se as instalações estiverem corretas, é possível controlar o banco de dados pelo console do Scripter 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. Não houve mensagem de erro, mas sei que tudo correu bem porque não aconteceu nada na tela de retorno do console Python. O que indica que foram carregadas sem problemas as bibliotecas para o Python acessar o MySQL.

Para receber mais informações sobre o módulo MySQLdb, digitei help("MySQLdb"), selecionei só este trecho e usei a tecla F9. O interpretador Python executou somente este trecho selecionado. No caso, o comando help listou a documentação completa do módulo.

Usando o MySQLdb

Eu tenho um servidor WAMP rodando com um "espelho" do meu site com Moodle, WordPress, osCommerce. Portanto, tenho um banco de dados MySQL com a cópia do conteúdo de meu site. 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.

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 ver que funciona a conexão Scribus-MySQL.

Então, vi 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 montados em um CMS que já é o próprio site do veículo. O diagramador faz uma consulta no Scribus, e o script já 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.

Bibliografia

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

Um comentário:

Macunix disse...

Oi estou querendo fazer um sistema parecido, mas que o diagramador nao precise fazer nenhum tipo de ajuste, vc acha isto possivel.