Design Gráfico, Diagramação, Editoração, Python, Scribus

Como importar posts de blogs para o Scribus

Este artigo mostra como importar texto e imagens do CMS de blogs WordPress para o programa livre de editoração Scribus.

Há tempos estou pensando sobre um sistema editorial que auxilie a produção de jornais pequenos, usando um CMS para gerar conteúdo a ser editado e diagramado. Mas eu estava pensando em soluções muito complicadas, imaginando uma interface com banco de dados e outras misturas exotéricas. Na verdade, tudo pode ser relativamente fácil graças aos padrões. Especificamente, graças ao padrão XML-RPC. E à API implementada em blogs, como a do WordPress.

Com estes padrões, basta usar o módulo Python xmlrpclib para recuperar as informações de um post a partir de seu número ID. Como no trecho de código abaixo, que busca num blog WordPress o título de um post, o nome do autor, o sumário e o restante do post, e insere tudo num quadro de texto previamente selecionado:

import xmlrpclib
loginname = 'seuloginWP'
password = 'suasenhaWP'
postID = 746   # 746 é o ID de um post WP qualquer
server = xmlrpclib.ServerProxy( "http://meiradarocha.jor.br/news/xmlrpc.php" )
post = server.metaWeblog.getPost( postID , loginname,password )
scribus.setText( ', '.join( post['categories'] )+'\n' )
scribus.insertText( post[ 'title' ]+'\n',-1)
scribus.insertText( post[ 'wp_author_display_name' ]+'\n',-1)
scribus.insertText( post[ 'description' ],-1)
scribus.insertText( post[ 'mt_text_more' ],-1)

Agora, o trabalho de criar um sistema editorial fica muito mais fácil. Para facilitar ainda mais, escrevi o script abaixo que importa não só o texto de um post, formatando negritos e itálicos (graças à dica de Aurélio A. Heckert para usar o módulo Python HTMLParser), mas também importa todas as imagens com legenda que encontrar, dentro da marcação “caption” do WordPress. A legenda da imagem fica como legenda, mesmo, e o título da imagem é importado como crédito da foto.

Depois de importar o texto e as imagens (que ficam empilhadas no canto inferior direito da página), pode-se diagramar a matéria com ajuda dos scripts que montam matérias e fotos, encontrados em outros artigos neste site.

To do

Falta fazer uma melhor interpretação de tags HTML, como criação de listas numeradas e com bolinhas, citações etc. Mas o Scripter do Scribus vai mudar na próxima versão 1.5. Então, não vale a pena investir nesta versão do script.

Download

Baixe o script, tire a terminação “.txt” e coloque “.py” (o WordPress não permite upload de programas como scripts Python, por segurança). Edite a variável wp_site para apontar ao seu site antes de usar: Revista Diagrama Post (2010-01-25a)

Caveats

Embora o conteúdo textual seja importado, pode haver problemas de formatação de itálicos e negritos e aplicação de estilos de parágrafos. Por deficiências do próprio Scribus (que é um programa jovem e ainda tem deficiência de design) e de meu próprio  algoritmo, os estilos de parágrafos são aplicados apenas nos títulos mas estes trechos não são formatados conforme o estilo aplicado. Bug do Scribus. Já o corpo do texto fica no formato de parágrafo default mas sem estilo aplicado. O usuário deve aplicar os estilos de parágrafo pelo editor de texto interno do Scribus (pela barra de ferramentas, não pela coluna de estilos à esquerda do texto, para não apagar os itálicos e negritos). Também deve, provavelmente, limpar a formatação dos títulos pela aba “Text” da paleta de controle do programa (tecla F2).

As fotos importadas devem ser desagrupadas e resselecionadas pela ordem foto-legenda-crédito antes de se aplicar o script de redimensionar fotos. Outro bug do Scribus.

Acabamento Profissional

Para quem quer uma ferramenta mais “profissional”, pode tentar o Blurb Booksmart, software que cria um livro inteiro a partir de um blog.

Bibliografia

  1. WordPress API support
  2. MovebleType API
  3. Google Data Protocol Refeference
  4. MetaBlog API


Deixe uma resposta

XHTML: Você pode usar estas tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notifique-me sem que eu precise comentar