サイトアイコン Lonely Mobiler

twitterからmixiボイスにポストするスクリプトがこけたから自分用に修正した。

twitterからmixiボイスにポストするスクリプト関連まとめ+修正版 - 5.1さらうどん

以前のブログで上記スクリプトを使用してmixiボイスにマルチポストしていたのだが、たまたま中国語をpostしたときにこけたので場当たり的に修正した。

エラーメッセージは以下の通り

$ ruby twitter2mixivoice.rb ???? /home/jklryo/.gem/ruby/1.8/gems/mechanize-0.9.3/lib/www/mechanize/util.rb:40:in `iconv': "\350\260\242\350\260\242 from twit"... (Iconv::IllegalSequence)

何故こけたかというとEUC-JPに入っていない文字を入力したからじゃないかと思う。Twitter は UTF-8 だが Mixi は EUC-JP なのでポストするには変換しないといけないのだが、EUC-JPでは中国語は扱えないので変換時にエラーが出るのだろう。それならば例外処理を追加すればいいんじゃね?と思ってそれだけ(たった3行!)追加した。エラー出るようなポストは無視します。ちなみにRubyは全然知らない。以下抜粋

tweets =tweets.reverse for i in 0...(tweets.size) flag =true for j in 0...(posted.size) if tweets[i].gsub("\n","")==posted[j].gsub("\n","") flag = false break end end if /^@/=~tweets[i] flag =false end if flag ==true begin # 追加 agent = WWW::Mechanize.new page = agent.get("http://mixi.jp/") form = page.forms.first form["email"] = mixi_username form["password"] = mixi_password form.submit

page = agent.get('http://mixi.jp/recent_echo.pl') form = page.forms[1]

f = form['body'] =tweets[i]+comment puts tweets[i] form.click_button rescue #追加 end #追加 end end

Sponsored Link
モバイルバージョンを終了