【Pythonブログ投稿自動化】投稿メタデータの管理を簡単にする

ブログ

今回の内容

今回は、csv作成の手間を少しでも減らすために、投稿対象となるマークダウンファイルを読み込んで、その内容をcsvに書き込む処理を考えたいと思います。

基本的な機能

作成したい機能は以下になります。
– csvファイルに対象のマークダウンファイルがまだ記録されてない場合は、csvファイルにメタデータを追加(新規)
– csvファイルに対象のマークダウンファイルが既に記録されている場合は、更新を確認して必要に応じて更新(更新)
– メモや下書きに利用したいファイルはCSVに記録しない

これらの機能を実装することで、マークダウンファイルに書き込まれたメタデータを更新できます。

新規登録と投稿

CSVに新しくデータを登録するには、対象のフォルダに存在するマークダウンファイルの一覧を取得して、そのファイルのファイル名が、CSVファイルにすでにあるか確認します。
存在しない場合は、新しいファイルをCSVファイルに追記します。
そして、記事の投稿後は、投稿記事のIDがreturnされるので、その値を記録します。
IDが記録されていないデータはまだ未投稿ということなので、CSVファイルを読み込んで処理するときには、IDが記録されていないものを投稿する処理を行うとよいことになります。

更新

投稿済み記事の編集と更新

wordpress_xmlrpcでは、編集したい記事のidがわかれば、その記事を編集することができます。
記事のidは新規投稿作成時に、記録しているので、そのデータを使うことができます。

記事idをもとに、編集後の記事内容のファイルがあれば、投稿編集が可能です。

更新有無の判定

記事のidを使うことで、更新そのものは可能のようですが、どのように編集する記事を判定するかが次の問題になります。
ここでの考え方は、基本的にメタデータの管理と同様になります。
具体的には、csvへのupadateフラグの追加とマークダウン記事ファイル上部へのupadate記述のいずれかで判断します。

upadate: 1
で記事更新を行うようにします。

更新後の処理

新規投稿の場合は、投稿後、投稿のidを管理することで、投稿済みかどうか判断できました。

では、更新の場合はどうでしょうか?

更新したか判断できないと、ずっとupadateフラグがついていると、更新の必要がないのに、更新を行ってしまいます。

これを解決するには、更新後はcsvの更新フラグを消して、マークダウンファイルのupadateの記述を削除もしくはupadate: 0などとする必要があります。

実装においては、upadate記述を削除する方法を選択しました。

メモとしてのマークダウンファイル

記事フォルダには、まだ投稿できる記事の形にはなっていないメモもあると思います。そのようなファイルは投稿記事を管理するCSVに記録したくありません。
そこで、ファイルのメタデータから、そのようなファイルを判定する方法を考えます。
今回は、単純に、マークダウンファイルの最初にnopostと記述されていれば、そのファイルは処理を行わず無視する仕様にしました。

タイトルとURLをコピーしました