(以下は「はてなブログライター」で投稿しようとした内容)
以前からときどき「google:はてなブログ はてダラ」を検索していて今回ついにヒットした。
- 「はてなブログライター」を作りました - 児童小銃(http://d.hatena.ne.jp/rna/20170215/p1)
これだ。すばらしい。さっそくダウンロードした。rubyはインストールされているからatomutilをインストール。
gem install atomutil
下の「Windowsセキュリティの重要な警告」ダイアログボックスが表示されたら「プライベートネットワーク」のみオンにして「アクセスを許可する」をクリックする。
(Macでは「sudo gem install atomutil」→Macのアカウントのパスワードを入力)
これで使えるようになった。このエントリはさっそく「はてなブログライター」を試してみているところ。いったんここでアップしてみよう。
ダメだった。
「ruby hbw.rb new」で生成されるテキストファイルがShift_JISだった。UTF-8に変更して保存。
(追記:生成されたテキストファイルに日本語が含まれていなかったためにデフォルトのテキストエンコードで読み込まれたようだ。v0.5で変更された→「fix: Mac, Windows で動作しない #1 · rnanba/HatenaBlogWriter@a98353e」https://github.com/rnanba/HatenaBlogWriter/commit/a98353ee650719faa1bba9a031c4683138bddfa7)
またダメだった。
C:\hbw>hbw.rb 新規エントリファイルが 1 件あります。 C:/hbw/HatenaBlogWriter.rb:118:in `match': invalid byte sequence in Windows-31J (ArgumentError) from C:/hbw/HatenaBlogWriter.rb:118:in `block in parse_file' from C:/hbw/HatenaBlogWriter.rb:115:in `each_line' from C:/hbw/HatenaBlogWriter.rb:115:in `parse_file' from C:/hbw/HatenaBlogWriter.rb:106:in `initialize' from C:/hbw/HatenaBlogWriter.rb:228:in `new' from C:/hbw/HatenaBlogWriter.rb:228:in `post' from C:/hbw/hbw.rb:109:in `block in<main>' from C:/hbw/hbw.rb:105:in `each' from C:/hbw/hbw.rb:105:in `<main>'
「invalid byte sequence in Windows-31J (ArgumentError)」は文字コードのエラーみたい。生成されたテキストファイルの文字コードは確かにUTF-8なんだけれど。(複数のテキストエディタで確認)
Macだとエラーメッセージが違う。
mymac:hbw$ ruby hbw.rb 新規エントリファイルが 1 件あります。 /Library/Ruby/Gems/2.0.0/gems/atomutil-0.1.4/lib/atomutil.rb:1523:in `block in get_contents_except_resources': Failed to get contents. 404 (Atompub::RequestError) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:852:in `start' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:582:in `start' from /Library/Ruby/Gems/2.0.0/gems/atomutil-0.1.4/lib/atomutil.rb:1517:in `get_contents_except_resources' from /Library/Ruby/Gems/2.0.0/gems/atomutil-0.1.4/lib/atomutil.rb:1350:in `get_service' from /Users/hoge/hbw/HatenaBlogWriter.rb:216:in `ensure_get_service' from /Users/hoge/hbw/HatenaBlogWriter.rb:236:in `post' from hbw.rb:109:in `block in <main>' from hbw.rb:105:in `each' from hbw.rb:105:in `<main>'
Windows/Macとも「ruby hbw.rb post 2017-06-06_01.txt」でも同じエラーになる。「ruby hbw.rb check」は動作する。
はてなブログライターでの投稿はいったんあきらめ、ブラウザから直接投稿しよう。
ところで「はてなブログライター」は長いので、「はてダラ」のような略称を考えたい。ここはやっぱり「はてブラ」ですよね?
追記
Windowsのほうはすかさず対応していただきました。ありがとうございます。
- 「はてなブログライター」が Mac/Windows で動かない - 児童小銃(http://d.hatena.ne.jp/rna/20170606/p1)
この追記は更新されたはてブラで投稿できるでしょうか?
→やっぱりダメでした。新しいエラーメッセージは以下です。
C:/Ruby23-x64/lib/ruby/2.3.0/net/http.rb:933:in `connect_nonblock': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError) from C:/Ruby23-x64/lib/ruby/2.3.0/net/http.rb:933:in `connect' from C:/Ruby23-x64/lib/ruby/2.3.0/net/http.rb:863:in `do_start' from C:/Ruby23-x64/lib/ruby/2.3.0/net/http.rb:852:in `start' from C:/Ruby23-x64/lib/ruby/2.3.0/net/http.rb:584:in `start' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/atomutil-0.1.4/lib/atomutil.rb:1517:in `get_contents_except_resources' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/atomutil-0.1.4/lib/atomutil.rb:1350:in `get_service' from C:/hbw/HatenaBlogWriter.rb:222:in `ensure_get_service' from C:/hbw/HatenaBlogWriter.rb:242:in `post' from C:/hbw/hbw.rb:111:in `block in <main>' from C:/hbw/hbw.rb:107:in `each' from C:/hbw/hbw.rb:107:in `<main>'
1行目のエラーメッセージを検索して以下を発見。
- Windows上のRubyでSSL接続時にcertificate verify failedが出る場合の対処 - Qiita(http://qiita.com/whiteleaf7@github/items/4504b208ad2eec1f9357)
「システムの詳細設定」から環境変数「SSL_CERT_FILE」に「cacert.pem」のフルパスを設定するも変わりませんでした。
なおWindows(8.1)で使っているテキストエディタはWZ Editor 5.02Dです。rubyのバージョンは「ruby 2.3.0p0 (2015-12-25 revision 53290) [x64-mingw32]」でした。
Mac(10.11.6)はテキストエディタがmi 2.1.12r5、rubyは「ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]」です。
ここでいったんブラウザから更新します。
追記2
Windows
「システムの詳細設定」から「ユーザー環境変数」への環境変数の追加後、コマンドプロンプトを起動し直すのを忘れていました! 失礼しました。
コマンドプロンプトから「set SSL_CERT_FILE=C:\hbw\cacert.pem」といった指定をする方法では、コマンドプロンプトを開き直したら環境変数も指定し直す必要があります。
Mac
config.yml で blog_domain の値をあり得ない値に設定すると同じエラーが再現しました。config.yml の設定を(改行コード等も)確認してみてください。
「はてなブログライター」が Mac/Windows で動かない(追記あり) - 児童小銃
「blog_domain: ima.hatenablog.jp」と指定するところを「blog_domain: http://ima.hatenablog.jp/」になっていました。失礼しました。
これでひとまず、テキストファイルからはてなブログを更新できるようになりました。ありがとうございます>id:rnaさん
あとは1つのテキストファイルから更新分を切り出す「はてダラスプリッタ」を使えるようになって、はてなブログに長年日記の閲覧機能が追加されれば、自分としてははてなブログを今のはてなダイアリーと同じように更新/利用できるようになります。(長年日記の要望はフィードバック済み)
追記3
「はてダラスプリッタ」をはてなブログライター向けに書き換えるのは結局自分でできた。
- 「はてなブログライタースプリッタ」をGitHubに登録 - ただいま村(http://ima.hatenablog.jp/entry/2019/01/04/060000)