rubyからxmlrpcで簡単に投稿できるっぽいので投稿するのをほとんどコピペさせて頂いて作ってみた。
投稿のみ。
最終的には、以下のような感じで呼び出して、viで内容を編集して保存したら投稿するような感じです。
[bash]
postl3 ブログタイトル
[/bash]
楽でいいけど、/tmpって色々使われるのだろうから、ファイル名が重複してしまうかもしれない?
ランダムな文字列とかそういうのを付与するようなルールなのかなぁ。
postl3
[bash]
#!/bin/sh
if [ -z $1 ]; then
echo "引数(ブログのタイトル)を指定してください"
exit
fi
FILE="/tmp/$1.txt"
vi $FILE
if [ -f $FILE ]; then
post_wordpress $FILE
rm $FILE
else
echo "ブログへの投稿をキャンセルしました。"
fi
[/bash]
post_wordpress
[ruby]
#!/usr/bin/ruby1.8
require ‘xmlrpc/client’
file=ARGV.first
unless File.exists?(file)
puts "not found #{file}"
exit
end
title=File.basename(file,".txt")
body=File.read(file)
user = ‘username’
pass = ‘password’
publish = 0
server = XMLRPC::Client.new(‘www.lowlevellife.com’, ‘/xmlrpc.php’)
struct = {
‘title’=>title,
‘description’=>body
}
id = server.call("metaWeblog.newPost",1,user,pass,struct,publish)
puts "Post ID: #{id}"
[/ruby]
参考
- RubyでWordPressへXML-RPC投稿 – 黒川仁の文具堂ブログ三昧
- remotehost:80/ FC2ブログはじめたのでXMLRPCクライアントのラッパー書いた
- XML-RPC wp « WordPress Codex