Testando a Biblioteca WordPressLib do Python

By Flávio Augusto

Que tal montar um sistema automatizado para envio de posts para o seu blog? Eu estava interessado nisso, pois ultimamente tenho tido um certo “relaxo” para com o meu blog no WordPress.

Com a biblioteca WordPressLib do Python é possível montar um serviço automático de postagem em blogs. Basta ter uma conta no WordPress.*, o Python e o WordPressLib instalados (é multiplataforma) e um script de envio de arquivos txt como o que eu vou postar aqui (devidamente configurado, claro), e voilá! Transforme arquivos simples de texto em posts do WordPress!

Combinando com OCR ou ViaVoice deve ficar uma maravilha, não acha? ;)

Clique aqui e confira o WordPressLib (em Italiano e Inglês).

Ah, o script, atualizado:

#!/usr/bin/env python
#-*- encoding: utf-8 -*-

# Informaçoes de desenvolvimento
__author__ = "Flávio Augusto"
__version__ = "$Revision: 1.0 $"
__date__ = "$Date: 2009/05/04 $"
__copyright__ = "Copyup (U) 2009 Flávio Augusto"
__license__ = "GPL"

# Descrição do programa
moreHelp = '''
#
# wp-post.py - Postador automático de artigos em blogs do WordPress.*
#
# Com ele você pode enviar arquivos txt (devidamente organizados,
# claro!) como artigos (posts) para seu blog do WordPress.
#
# Em um arquivo texto .txt coloque o seguinte:
# -> 1a. Linha: O Título;
# -> 2a. Linha: A(s) categoria(s) (cadastrada(s) no WordPress.*);
# -> 3a. Linha em diante: O Texto
#    (Alguns tags HTML e <!--more--> são aceitos, não testei todos).
#
# Para ajustar as configuraçoes de envio para o WordPress:
# 1) Abra o arquivo wp-post.py com um editor de texto (bloco de notas);
# 2) Procure a sessão "CONFIGURAÇÕES DO WORDPRESS";
# 3) Edite as variáveis da seguinte forma, todos com aspas:
#
#    nomeBlog = (Ex.: "meublog.wordpress.com")
#    usuario = (Seu login no WordPress)
#    senha = (Sua senha)
#
'''

######   CONFIGURAÇÕES DO WORDPRESS   ######

nomeBlog =

usuario =

senha =

############################################

# Importando bibliotecas
from sys import argv
from getpass import getpass
try: from wordpresslib import *
except ImportError:
	print '''A biblioteca WordPressLib não está instalada. Baixe-a em:
	\nhttp://www.blackbirdblog.it/programmazione/progetti/28\n'''; exit(1)

# Definindo variáveis globais
urlBlog = 'http://' + nomeBlog + '/xmlrpc.php'
param = argv[1:]

def sendPost(textFile,publish):
	try: wpPostFile = open(textFile,'r') # Arquivo a ser postado
	except IOError:
		print 'Erro ao abrir o arquivo'
		exit(1)

	# Primeira linha == Título
	# Segunda linha == Categoria(s)
	wpPostTitle = wpPostFile.readline().strip('\n')
	wpPostCategs = wpPostFile.readline().strip('\n')

	# O restante do texto será lido e
	# armazenado em uma variável separada
	wpPostContent = ''
	while True:
		wpPostLines = wpPostFile.readline()
		wpPostContent += wpPostLines
		if len(wpPostLines) == 0: break

	# Postando o artigo
	try:
		# Logando no WordPress
		wpClient = WordPressClient(urlBlog,usuario,senha)
		wpClient.selectBlog(0)
		post = WordPressPost()

		# O título e o texto. NOTA: no texto, alguns
		# tags HTML e <!--more--> são aceitos
		post.title = wpPostTitle
		post.description = wpPostContent

		# A partir da variável wpPostCategs, vou gerar
		# a lista com as categorias. NOTA: elas deverão
		# estar previamente cadastradas no WordPress.
		listCategs = []
		categs = wpPostCategs.split(', ')
		for categ in categs:
			if wpClient.getCategoryIdFromName(categ) != None:
				listCategs.append(wpClient.getCategoryIdFromName(categ))

		# Salvando a lista de categorias em uma tupla
		post.categories = tuple(listCategs)

		# Enviando...
		wpClient.newPost(post,publish)
		print 'Artigo enviado'
	except: print 'Erro ao enviar o artigo'; exit(1)

# Ajuda MUITO básica hehehehehe...
def getHelp():
	print '''Uso: wp-post.py -p|-s
     wp-post.py -d
     wp-post.py -h
     wp-post.py -v'''

# Mas, pra quem não se contenta com pouco...
def getDesc(): print moreHelp

# Versão do programa
def getVersion():
	print '''Versão 1.0\n\nDesenvolvido por:
    Flávio Augusto
    flavio20xx arroba gmail ponto com\n
    "JESUS TE AMA. USE LINUX!"\n'''

# Para poder passar parametros livremente
if len(param) == 0: getHelp()
else:
	for i in range(len(param)):
		if param[i] == '-p': sendPost(param[i+1],True)
		elif param[i] == '-s': sendPost(param[i+1],False)
		elif param[i] == '-v': getVersion()
		elif param[i] == '-d': getDesc()
		elif param[i] == '-h': getHelp()
		else: getHelp()
		break

Uma resposta para “Testando a Biblioteca WordPressLib do Python”

  1. Andrey Disse:

    Ola Flavio!

    Vc podia postar mais coisas sobre o TJGO aí… rs

    Tenho saudade do pessoal!

    abraços.

Deixe uma resposta