Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the arras domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home2/meira083/public_html/news/wp-includes/functions.php on line 6121

Warning: Cannot modify header information - headers already sent by (output started at /home2/meira083/public_html/news/wp-includes/functions.php:6121) in /home2/meira083/public_html/news/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home2/meira083/public_html/news/wp-includes/functions.php:6121) in /home2/meira083/public_html/news/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home2/meira083/public_html/news/wp-includes/functions.php:6121) in /home2/meira083/public_html/news/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home2/meira083/public_html/news/wp-includes/functions.php:6121) in /home2/meira083/public_html/news/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home2/meira083/public_html/news/wp-includes/functions.php:6121) in /home2/meira083/public_html/news/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home2/meira083/public_html/news/wp-includes/functions.php:6121) in /home2/meira083/public_html/news/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home2/meira083/public_html/news/wp-includes/functions.php:6121) in /home2/meira083/public_html/news/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home2/meira083/public_html/news/wp-includes/functions.php:6121) in /home2/meira083/public_html/news/wp-includes/rest-api/class-wp-rest-server.php on line 1896
{"id":951,"date":"2010-01-16T16:51:44","date_gmt":"2010-01-16T19:51:44","guid":{"rendered":"http:\/\/meiradarocha.jor.br\/news\/?p=951"},"modified":"2010-12-30T12:31:51","modified_gmt":"2010-12-30T15:31:51","slug":"como-importar-posts-de-blogs-para-o-scribus","status":"publish","type":"post","link":"https:\/\/meiradarocha.jor.br\/news\/2010\/01\/16\/como-importar-posts-de-blogs-para-o-scribus\/","title":{"rendered":"Como importar posts de blogs para o Scribus"},"content":{"rendered":"

\"\"<\/a>Este artigo mostra como importar texto e imagens do CMS de blogs WordPress<\/strong> para o programa livre de editora\u00e7\u00e3o Scribus<\/strong>.<\/p>\n

H\u00e1 tempos estou pensando sobre um sistema editorial que auxilie a produ\u00e7\u00e3o de jornais pequenos, usando um CMS para gerar conte\u00fado a ser editado e diagramado. Mas eu estava pensando em solu\u00e7\u00f5es muito complicadas, imaginando uma interface com banco de dados e outras misturas exot\u00e9ricas. Na verdade, tudo pode ser relativamente f\u00e1cil gra\u00e7as aos padr\u00f5es. Especificamente, gra\u00e7as ao padr\u00e3o XML-RPC. E \u00e0 API implementada em blogs, como a do WordPress.<\/p>\n

Com estes padr\u00f5es, basta usar o m\u00f3dulo Python xmlrpclib <\/strong>para recuperar as informa\u00e7\u00f5es de um post a partir de seu n\u00famero ID. Como no trecho de c\u00f3digo abaixo, que busca num blog WordPress o t\u00edtulo de um post, o nome do autor, o sum\u00e1rio e o restante do post, e insere tudo num quadro de texto previamente selecionado:<\/p>\n

import xmlrpclib\r\nloginname = 'seuloginWP'\r\npassword = 'suasenhaWP'\r\npostID = 746   # 746 \u00e9 o ID de um post WP qualquer\r\nserver = xmlrpclib.ServerProxy( \"http:\/\/meiradarocha.jor.br\/news\/xmlrpc.php<\/a>\" )\r\npost = server.metaWeblog.getPost( postID , loginname,password )\r\nscribus.setText( ', '.join( post['categories'] )+'\\n' )\r\nscribus.insertText( post[ 'title' ]+'\\n',-1)\r\nscribus.insertText( post[ 'wp_author_display_name' ]+'\\n',-1)\r\nscribus.insertText( post[ 'description' ],-1)\r\nscribus.insertText( post[ 'mt_text_more' ],-1)<\/pre>\n

Agora, o trabalho de criar um sistema editorial fica muito mais f\u00e1cil. Para facilitar ainda mais, escrevi o script abaixo que importa n\u00e3o s\u00f3 o texto de um post, formatando negritos e it\u00e1licos (gra\u00e7as \u00e0 dica de Aur\u00e9lio A. Heckert para usar o m\u00f3dulo Python HTMLParser), mas tamb\u00e9m importa todas as imagens com legenda que encontrar, dentro da marca\u00e7\u00e3o “caption” do WordPress. A legenda da imagem fica como legenda, mesmo, e o t\u00edtulo da imagem \u00e9 importado como cr\u00e9dito da foto.<\/p>\n

Depois de importar o texto e as imagens (que ficam empilhadas no canto inferior direito da p\u00e1gina), pode-se diagramar a mat\u00e9ria com ajuda dos scripts que montam mat\u00e9rias e fotos, encontrados em outros artigos neste site.<\/p>\n

To do<\/h3>\n

Falta fazer uma melhor interpreta\u00e7\u00e3o de tags HTML, como cria\u00e7\u00e3o de listas numeradas e com bolinhas, cita\u00e7\u00f5es etc. Mas o Scripter do Scribus vai mudar na pr\u00f3xima vers\u00e3o 1.5. Ent\u00e3o, n\u00e3o vale a pena investir nesta vers\u00e3o do script.<\/p>\n

Download<\/h3>\n

Baixe o script, tire a termina\u00e7\u00e3o “.txt” e coloque “.py” (o WordPress n\u00e3o permite upload<\/em> de programas como scripts Python, por seguran\u00e7a). Edite a vari\u00e1vel wp_site<\/strong> para apontar ao seu site antes de usar: Revista Diagrama Post (2010-01-25a)<\/a><\/p>\n

Caveats<\/h3>\n

Embora o conte\u00fado textual seja importado, pode haver problemas de formata\u00e7\u00e3o de it\u00e1licos e negritos e aplica\u00e7\u00e3o de estilos de par\u00e1grafos. Por defici\u00eancias do pr\u00f3prio Scribus (que \u00e9 um programa jovem e ainda tem defici\u00eancia de design) e de meu pr\u00f3prio algoritmo, os estilos de par\u00e1grafos s\u00e3o aplicados apenas nos t\u00edtulos mas estes trechos n\u00e3o s\u00e3o formatados conforme o estilo aplicado. Bug do Scribus. J\u00e1 o corpo do texto fica no formato de par\u00e1grafo default <\/em>mas sem estilo aplicado. O usu\u00e1rio deve aplicar os estilos de par\u00e1grafo pelo editor de texto interno do Scribus (pela barra de ferramentas<\/strong>, n\u00e3o pela coluna de estilos \u00e0 esquerda do texto, para n\u00e3o apagar os it\u00e1licos e negritos). Tamb\u00e9m deve, provavelmente, limpar a formata\u00e7\u00e3o dos t\u00edtulos pela aba “Text” da paleta de controle do programa (tecla F2).<\/p>\n

As fotos importadas devem ser desagrupadas e resselecionadas pela ordem foto-legenda-cr\u00e9dito antes de se aplicar o script de redimensionar fotos<\/a>. Outro bug do Scribus.<\/p>\n

Blogger<\/h3>\n

Esta t\u00e9cnica tamb\u00e9m pode ser aplicada ao Blogger. Aqui est\u00e1 um exemplo de como acessar posts do Blogger:<\/p>\n

# http:\/\/code.google.com\/intl\/pt-BR\/apis\/blogger\/docs\/1.0\/developers_guide_python.html<\/a><\/span>\r\n\r\nimport gdata\r\nimport atom\r\nfrom gdata import service\r\n\r\nblogger_service = service.GDataService('joseantoniorocha@gmail.com', 'xxxxxxxx')\r\nblogger_service.source = 'exampleCo-exampleApp-1.0'\r\nblogger_service.service = 'blogger'\r\nblogger_service.account_type = 'GOOGLE'\r\nblogger_service.server = 'www.blogger.com'\r\nblogger_service.ProgrammaticLogin()\r\n\r\ndef PrintUserBlogTitles(blogger_service):\r\n  query = service.Query()\r\n  query.feed = '\/feeds\/default\/blogs'\r\n  feed = blogger_service.Get(query.ToUri())\r\n  print feed.title.text\r\n  for entry in feed.entry:\r\n  print \"\\t\" + entry.title.text\r\n\r\ndef getBlogId():\r\n  query = service.Query()\r\n  query.feed = '\/feeds\/default\/blogs'\r\n  feed = blogger_service.Get(query.ToUri())\r\n  blog_id = feed.entry[0].GetSelfLink().href.split(\"\/\")[-1]\r\n\r\ndef PrintAllPosts(blogger_service, blog_id):\r\n  feed = blogger_service.GetFeed('\/feeds\/' + blog_id + '\/posts\/default')\r\n\r\n  print feed.title.text\r\n  for entry in feed.entry:\r\n  print \"\\t\" + entry.title.text\r\n  print \"\\t\" + entry.content.text\r\n  print \"\\t\" + entry.updated.text\r\n  print\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\r\ndef PrintPostsInDateRange(blogger_service, blog_id, start_time='2009-01-01', end_time='2010-01-13'):\r\n  query = service.Query()\r\n  query.feed = '\/feeds\/' + blog_id + '\/posts\/default'\r\n  query.published_min = start_time\r\n  query.published_max = end_time\r\n  feed = blogger_service.Get(query.ToUri())\r\n\r\n  print feed.title.text + \" posts between \" + start_time + \" and \" + end_time\r\n  for entry in feed.entry:\r\n  print \"\\t\" + entry.title.text\r\n  print \"\\t\" + entry.content.text\r\n  print \"\\t\" + entry.updated.text\r\n  print\r\n<\/pre>\n

Acabamento Profissional<\/h3>\n

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

Bibliografia<\/h3>\n
    \n
  1. WordPress API support<\/a><\/li>\n
  2. MovebleType API<\/a><\/li>\n
  3. Google Data Protocol Refeference<\/a><\/li>\n
  4. MetaBlog API<\/a><\/li>\n
  5. Blogger API<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"

    Este artigo mostra como importar texto e imagens do CMS de blogs WordPress para o programa livre de editora\u00e7\u00e3o Scribus. H\u00e1 tempos estou pensando sobre um sistema editorial que auxilie […]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24,25,15,14,16],"tags":[],"class_list":["post-951","post","type-post","status-publish","format-standard","hentry","category-design-grafico","category-diagramacao","category-editoracao","category-python","category-scribus"],"_links":{"self":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/951","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=951"}],"version-history":[{"count":0,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/951\/revisions"}],"wp:attachment":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/media?parent=951"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/categories?post=951"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/tags?post=951"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}