Archive for the ‘python’ Category
org-modeのデータをvimプラグインでWordPressに投稿するデータファイルを生成するpythonスクリプト
利用の前提ですが、Emacsのorg-modeで対象の部分木を「C-c C-x M-w」でコピーします。Emacsではヤンクされたことになりますが、Ubuntuのシステムではクリップボードではなく文字列の範囲選択と同じセレクションにコピーされた文字列が格納されます。このデータをシステムコマンドのxselで取得し利用します。
org-modeの部分木における見出しの部分からアスタリスクを除去し、ブログのタイトルに設定しています。
コマンドラインの利用では引数を一つとりますが、これはタグの指定になります。引数を省略した場合は”告訴状の下書き”だけがタグとして設定されます。WordPressの仕様としてタグは半角のカンマで区切ることにより複数の指定になります。
記録を兼ねて投稿データをファイルとして保存するようにしていますが、ファイルの並び順とシェルコマンドでの扱いをしやすくするため日時を接頭辞として付加しています(例: 2014-11-11_113536_原告訴訟代理人長谷川紘之弁護士(金沢弁護士会)による犯罪的関与の真相解明と社会的責任追及の必要性について 2014年10月8日.text)。
#!/usr/bin/python3 # -*- coding: utf8 -*- import sys import subprocess import re import datetime argvs = sys.argv if len(argvs) == 2: tags = "告訴状の下書き," + argvs[1] else: tags = "告訴状の下書き" text = subprocess.check_output(["xsel","-o"]) match = re.search('\*\*\*\* (.+)', text.decode('utf-8')) title = match.group(0).replace('**** ','') d = datetime.datetime.today() date = d.strftime("%Y-%m-%d_%H%M%S_") text = """\"=========== Meta ============ \"StrID : \"Title : %s \"Cats : 2014-木梨松嗣弁護士(金沢弁護士会)に対する告訴状(被疑事実殺人未遂)のブログ版 \"Tags : %s \"========== Content ========== %s""" % (title, tags, text.decode('utf-8')) print(text) filename = "%s%s.text" % (date, title) f = open(filename, "w") f.write(text) f.close print("%s を作成しました。" % filename)