SIRIUS記事の投稿日をWordPress記事の投稿日へ反映させるための対応。
SIRIUSのテンプレートに<% pagePublicDate %>を入れて、記事中に投稿日を表示させ、それをスクレイプしてWordPressの投稿日に設定してあげる。
ただしWordPressの日時の指定方法はISO8601形式(yyyy-MM-ddThh:mm:ss)なので、ちょっと形を変えてあげないといけない。
(SIRIUSはyyyy/MM/dd hh:mm:ss)
日付の区切りを’/’から’-‘に変えてあげるだけで済むと思った。
そしたら、記事によって形式がおかしいと投稿でレスポンス400が返ってきてエラーになる。
調べてみると、時刻の時が一桁の場合(9時とか)、hhじゃなくてhで表示されている。
ISO8601形式はhhじゃないとダメらしい。
ってことで、フォーマット化して一桁の場合は0パディングしてあげようとこうした。
[h, m, s] = posttime.split(':')
formatedposttime = f'{h:02}:{m:02}:{s:02}'
そしたらフォーマット化するところでエラーになる。
‘=’はフォーマット化した文字列がなんたら…って。
「だからPythonの文字列ってわかんないんだよー」
ってしばし困っていたら、気がついた。
hもmもsもそもそも文字列なのね…と。
数字だけど文字列だよね。
これってPythonがどうという問題じゃなく、ただのおマヌケな間違い。
ということで、こう修正してうまくいきました。
[h, m, s] = posttime.split(':')
formatedposttime = f'{int(h):02}:{int(m):02}:{int(s):02}'
この処理いれるのに、久しぶりにBeautifulSoupさんも使った。
コメント