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
05/05/2009 às 11:42 |
Ola Flavio!
Vc podia postar mais coisas sobre o TJGO aí… rs
Tenho saudade do pessoal!
abraços.