開発環境
- OS X Yosemite - Apple (OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python 3.4 (プログラミング言語)
GoogleCLというのをせっかく知ったから、気軽にBloggerに投稿出来るようにするPythonプログラムを書いてみることに。
コード(BBEdit)
post.py
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
import os
import sys
import subprocess
import tempfile
draft = sys.argv[1] if len(sys.argv) > 1 else 'draft.html'
# 改行が<br>に変換されるみたいなので、改行を削除
file = tempfile.mkstemp(suffix='.html')[1]
with open(draft) as draft, open(file, 'w') as f:
desc4se = draft.readline().strip()
tags = draft.readline().strip()
title = draft.readline().strip()
for line in draft:
print(line.rstrip(), end='', file=f)
try:
subprocess.check_call(
['google', 'blogger', 'post', file, '--tags', tags, '--title', title,
'--draft'], stdout=sys.stdout)
except Exception as err:
os.unlink(file)
print(err)
sys.exit(1)
os.unlink(file)
# 下書き投稿後に開きたいアドレス
# 例えば、すべての投稿ページを開くには
#「blogger.g?blogID=ここにblogIDを入力8#allposts」
# を追加
url = 'https://www.blogger.com/'
try:
subprocess.call(['open', url])
p = subprocess.Popen(['pbcopy'], stdin=subprocess.PIPE)
p.stdin.write(desc4se.encode(encoding='utf-8'))
p.stdin.close()
except Exception as err:
print(err)
これを、
$ sudo mv post.py /user/local/bin$
とかで、環境変数PATHの場所に置いて、次のように投稿。(今いるディレクトリのdraft.htmlに下書き有り。1行目が検索向け説明、2行目がタグ、3行目がタイトル、それ以降が記事本体。)
入出力結果(Terminal, IPython)
$ post.py
下書きを投稿し終わって、urlで指定した、すべての投稿のページをSafari(ブラウザ)が開いたら、クリップボードにある検索向け説明とか、その他、引数で指定できない情報を追加して、下書きを公開。
0 コメント:
コメントを投稿