Chrome 68 から HTTP 配信だと警告が出るということなので、先週末、慌ててこのブログを常時 SSL 化した。
神記事
前職でカラーミーショップの常時 SSL プロジェクトを主導していたので、やることは分かっていたけど、Mixed Content 対応めんどくさいなーと思っていたところ、神記事をみつけた。必要なやつ全部書いてくれている、わかりやすく。
だいぶ時間を省けた。id:JunichiIto さんに大感謝。
しかも、前職で同じチームで仕事していた後輩のリポジトリが出てきたりして(kymmt90/hatenablog: A Ruby gem for Hatena Blog AtomPub API)、とても誇らしい気持ちになった。がんばってんなー。
補足
もう上の記事が素晴らし過ぎるので何も言うことはないのだけれど、少しだけ補足。
過去記事に対して無変更で「更新」だけを実行するスクリプトを作った
のところで、更新する対象の URL リストをつくる必要があるのだけれど、それを result.txt
(Mixed Content のバリデーションエラーが列挙されている)から作れると便利だなと思った。
result.txt
はこんな感じのフォーマットで、同じ URL が複数並んでいる場合もあるのがミソ。
https://blog.inouetakuya.info/entry/2018/06/30/204134 10257846132596542760 49インチ 4K ディスプレイの感想 img src http://s3.feedly.com/img/follows/feedly-follow-rectangle-flat-medium_2x.png https://blog.inouetakuya.info/entry/2018/06/30/204134 10257846132596542760 49インチ 4K ディスプレイの感想 script src http://b.hatena.ne.jp/js/widget.js https://blog.inouetakuya.info/entry/2018/06/30/204134 10257846132596542760 49インチ 4K ディスプレイの感想 script src http://b.hatena.ne.jp/js/widget.js https://blog.inouetakuya.info/entry/2018/05/31/070600 17391345971652637038 トリップトラップという子ども椅子を買った img src http://s3.feedly.com/img/follows/feedly-follow-rectangle-flat-medium_2x.png https://blog.inouetakuya.info/entry/2018/05/31/070600 17391345971652637038 トリップトラップという子ども椅子を買った script src http://b.hatena.ne.jp/js/widget.js https://blog.inouetakuya.info/entry/2018/05/31/070600 17391345971652637038 トリップトラップという子ども椅子を買った script src http://b.hatena.ne.jp/js/widget.js ...
自分の場合は、下記のようにして、一意の URL のリストを作った。
irb(main):001:0> require 'csv' => true irb(main):002:0> CSV.read('./result.txt', col_sep: "\t", liberal_parsing: true, headers: false).map { |row| row[0] }.uniq.each { |url| puts url }
Ruby CSV の liberal_parsing オプション
ちなみに liberal_parsing: true
オプションを付けているのは、一部のブログタイトルにダブルクォーテーションが含まれていて CSV::MalformedCSVError: Illegal quoting
というエラーが発生したため。詳細については下記参照。
- NEWS for Ruby 2.4.0 (Ruby 2.5.0)
- CSV: liberal_parsing option by bluej100 ・ Pull Request #1160 ・ ruby/ruby
- ruby 2.4.0 CSV の liberal_parsing オプションについて調査してみた - Qiita
以上です。伊藤淳一さん、ありがとうございました!