{"id":30,"date":"2007-06-03T00:34:43","date_gmt":"2007-06-03T03:34:43","guid":{"rendered":"http:\/\/www.meiradarocha.jor.br\/news\/2007\/06\/03\/usando-scribusmysql\/"},"modified":"2012-08-29T16:05:36","modified_gmt":"2012-08-29T19:05:36","slug":"sistema-editorial-com-scribuspythonmysql","status":"publish","type":"post","link":"https:\/\/meiradarocha.jor.br\/news\/2007\/06\/03\/sistema-editorial-com-scribuspythonmysql\/","title":{"rendered":"Sistema editorial com Scribus+Python+MySQL"},"content":{"rendered":"<p>Quero pegar meus artigos de blogs internet e publicar em papel. Ou, mais pretenciosamente ainda, quero um <strong>completo sistema editorial para jornais e revistas<\/strong>. Que permita \u00e0 reda\u00e7\u00e3o trabalhar num CMS e pegue o material automaticamente para montar as p\u00e1ginas. Em c\u00f3digo aberto como uma latinha de cerveja gelada&#8230;<\/p>\n<p>Pois hoje, 2007, \u00e9 poss\u00edvel o casamento entre um <span style=\"font-weight: bold;\">Content Management System<\/span> (<span style=\"font-weight: bold;\">CMS<\/span>) como <span style=\"font-weight: bold;\">WordPress<\/span> e um Desktop Publisher como <span style=\"font-weight: bold;\">Scribus<\/span>, atrav\u00e9s de linguagem <strong>Python<\/strong> e banco de dados <strong>MySQL<\/strong>. <!--more--><\/p>\n<p>O programa open source de editora\u00e7\u00e3o <strong>Scribus<\/strong> tem um m\u00f3dulo de linguagem <em>script<\/em>, ou seja, permite que o usu\u00e1rio crie e rede programas dentro do Scribus que operam elementos de p\u00e1ginas de jornal. A linguagem <em>script <\/em>do <strong>Scribus \u00e9<\/strong> <strong>Python<\/strong>, uma das mais usadas e poderosas linguagens-cola, atualmente.<\/p>\n<p>Com muitos usu\u00e1rios e desenvolvedores, <strong>Python<\/strong> tem m\u00f3dulos prontos para fazer tudo o que se imagina. Por exemplo, m\u00f3dulos para acesso a banco de dados <strong>MySQL<\/strong>.<\/p>\n<p>Para ter meu sistema Scribus+Python funcionando legal para um sistema editorial, eu precisava aprender a procurar e instalar novos m\u00f3dulos. Fiz isso, ent\u00e3o:<\/p>\n<ol>\n<li>Baixei e instalei o <a href=\"http:\/\/scribus.net\/\">Scribus.<\/a><\/li>\n<li>Baixei os arquivos do <a href=\"http:\/\/sourceforge.net\/projects\/mysql-python\">MySQLdb<\/a>, o m\u00f3dulos <span style=\"font-weight: bold;\">Python 2.4 <\/span>para acessar <span style=\"font-weight: bold;\">MySQL<\/span>.<\/li>\n<li>Descomprimi dentro desta pasta do <span style=\"font-weight: bold;\">Scribus<\/span>: <strong>\\lib\\site-packages\\<\/strong>.<\/li>\n<li>Pronto. Reiniciei o <span style=\"font-weight: bold;\">Scribus <\/span>para acessar banco de dados do WordPress ou de qualquer outro gerenciador de conte\u00fado ou blog.<\/li>\n<\/ol>\n<p>Eu preciso tamb\u00e9m de m\u00f3dulos para o <strong>Python <\/strong>operar imagens, fotos etc. Procurei um m\u00f3dulo de manipula\u00e7\u00e3 de imagem e achei o <strong>PIL, Python Imaging Library<\/strong>. Baixei uma vers\u00e3o indicada para o interpretrador <strong>Python 2.4 <\/strong>do <strong>Scribus 1.3.3<\/strong>. Abri o execut\u00e1vel zipado e extra\u00ed os arquivos para os diret\u00f3rios <strong>\\lib\\site-packages<\/strong> e <strong>\\scripts<\/strong>, dentro do diret\u00f3rio do Scribus.<\/p>\n<p>O arranjo ainda esta sendo testado. Mas, dando certo, permitiria que scripts automatizados diagramassem grosseiramente as p\u00e1ginas de jornais. Todo o trabalho chato ser\u00e1 feito por scripts. Depois, os diagramadores fariam pequenos ou grandes ajustes nas p\u00e1ginas.<\/p>\n<h3>Carregando o m\u00f3dulo para acessar MySQL<\/h3>\n<p>Se as instala\u00e7\u00f5es estivessem corretas, seria poss\u00edvel controlar o banco de dados pelo console do Scriper Scribus, que nada mais \u00e9 do que um console Python. Abri o console pelo menu &#8220;Script &gt; Mostrar console&#8221;. Digitei o c\u00f3digo:<\/p>\n<p><code>Import MySQLdb<\/code><\/p>\n<p>E usei a tecla F9 pra rodar este peda\u00e7o de programa. Quando tudo deu certo, n\u00e3o h\u00e1 mensagem de erro, apenas n\u00e3o acontece nada na tela de retorno do console. O que indica que foram carregadas sem problemas as bibliotecas para o <span style=\"font-weight: bold;\">Python <\/span>acessar o <span style=\"font-weight: bold;\">MySQL<\/span>.<\/p>\n<h3>Usando o MySQLdb<\/h3>\n<p>Eu tenho um servidor WAMP rodando com um &#8220;espelho&#8221; do meu site WordPress. Portanto, tenho um banco de dados MySQL com a c\u00f3pia do conte\u00fado de meu site WordPress. Eu posso acessar esse banco de dados e edit\u00e1-lo pelo <strong>OpenOffice Base<\/strong>. Ou posso acessar pelo Scribus e usar o texto para diagramar o jornal de papel. Isso \u00e9 feito atrav\u00e9s da linguagem script do Scribus. Um exemplo de script assim vem no pr\u00f3prio Scribus, no arquivo \\share\\samples\\sample_db_usage.py .<\/p>\n<p>Uso c\u00f3digo Python como este:<\/p>\n<pre>db=MySQLdb.connect(host=\"localhost\", user=\"root\", passwd=\"********\", db=\"wordpress_database\")\r\ncursor=db.cursor()\r\ncursor.execute(\"select * from wp_posts\")# Pega o total de linhas da tabela\r\nnumrows = int(cursor.rowcount)\r\n# Pega e mostra uma linha por vez\r\nfor x in range(0,numrows):\r\n  row = cursor.fetchone()\r\n  print row[0], \"--&gt;\", row[1]<\/pre>\n<p>Isto imprimiu duas colunas de n\u00fameros no console. N\u00e3o serviu para nada, apenas para eu confirmar que funciona a conex\u00e3o Scribus-MySQL.<\/p>\n<p>Ent\u00e3o, tive a comprova\u00e7\u00e3o que um script Scribus pode acessar um banco de dados MySQL e pegar material, textos, links de imagens, e montar p\u00e1ginas &#8220;sozinho&#8221;! Pode at\u00e9 gerar o PDF.<\/p>\n<h3>Agora, todo um mundo novo \u00e0 frente!<\/h3>\n<p>Eu j\u00e1 imagino um <span style=\"font-weight: bold;\">sistema editorial<\/span> montado em um CMS que j\u00e1 \u00e9 o pr\u00f3prio site do ve\u00edculo. O diagramador faz uma consulta no Scribus, e o script puxa as mat\u00e9rias e entrega pr\u00e9-diagramadas. Cada p\u00e1gina \u00e9 montada <span style=\"font-style: italic;\">on the fly<\/span> apenas para visualiza\u00e7\u00e3o ou \u00e9 montada definitivamente, depois que esgotou o prazo de fechamento.<\/p>\n<p>O departamento comercial de um ve\u00edculo pode usar um <span style=\"font-weight: bold;\">blog para recep\u00e7\u00e3o de an\u00fancios destacados e classificados<\/span>. Scripts da diagrama\u00e7\u00e3o l\u00eaem as informa\u00e7\u00f5es de an\u00fancios diretamente do banco de dados do comercial. Tudo em tempo real.<\/p>\n<p>[Atualiza\u00e7\u00e3o 2012-08-29: N\u00e3o tive tempo para desenolver isto, mas ha projetos em\u00a0\u00a0<a title=\"How to run a news site and newspaper using WordPress and google Docs\" href=\"http:\/\/www.mediabistro.com\/10000words\/how-to-run-a-news-site-and-newspaper-using-wordpress-and-google-docs_b4781\"> http:\/\/www.mediabistro.com\/10000words\/how-to-run-a-news-site-and-newspaper-using-wordpress-and-google-docs_b4781<\/a>]<\/p>\n<h3>Bibliografia<\/h3>\n<ol>\n<li><a href=\"http:\/\/www.python.org\/topics\/database\/modules.html\">Python Database modules<\/a>.<\/li>\n<li><a class=\"title_readon\" href=\"http:\/\/www.devshed.com\/c\/a\/Python\/Database-Programming-in-Python-Accessing-MySQL\/1\/\" rel=\"nofollow\">Database Programming in Python: Accessing MySQL<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Quero buscar meus artigos de blogs internet e publicar em papel. \u00c9 poss\u00edvel o casament<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,14,16,4],"tags":[],"class_list":["post-30","post","type-post","status-publish","format-standard","hentry","category-jornalismo","category-python","category-scribus","category-tecnologia"],"_links":{"self":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/30","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/comments?post=30"}],"version-history":[{"count":0,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/30\/revisions"}],"wp:attachment":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/media?parent=30"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/categories?post=30"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/tags?post=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}