Hatena::ブログ(Diary)

はけの徒然日記 このページをアンテナに追加 RSSフィード

2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 |

2005-06-05(Sun)

アンテナのメンテ?

最近、左メニューのアンテナメンテナンス中になることが多いなぁ。なんでだろ?

yahoonewsTTR - ネット接続を確実に

ヤフーニュース取得ソフトyahoonewsTTRがVer.0.9.0にアップデートしました。

今回の変更点は


コマンドラインからの自動取得する機能は良いですよね、定時に自動でのニュースの取得が行いやすくなりました。特にupdownオプションネット接続中か否かを気にせずに実行できるのでポイント高いですね。


で、試してみたのですが、私の環境(無線LAN)でネットの自動接続を行わせると、なぜか接続完了した後でnetwork errorになって記事の取得に失敗することが多いですね、前のバージョンでは起こらなかったのですけど。

そこでRuby勉強がてらソースを少しいじらせてもらいました、ついでにネット接続が失敗してもリトライするようにもしてみました。例によってRubyはちゃんと理解してないのでかなり怪しいですけどなんとか動作してるみたいです(^^;


通信が確立しているかの判断は、さきらさんのcron_inet.rbを参考にさせていただきました(っていうか、ほとんどそのままです)


まず、online?メソッド(っていうんですか?)をgetyahooの上に追加

   def online?
      if (/^0\.0\.0\.0\s+([^\s]+)\s/ =~ `/sbin/route -n| /bin/grep "^0.0.0.0"`) then
         ip = "www.yahoo.co.jp"
         #ip = $1

         ping_str = `ping -c 3 #{ip}`
         if (/time=/ =~ ping_str) then
            return true
         end
      end
      false
   end

つぎにgetyahooの接続処理部分をコメントアウトして置き換え、systemでqcopコマンド実行させるのにbegin〜endで囲まないと上手く動作しないのは何故だろう?

      if ( ($n1m =~ /true/)  != nil ) | ($netop =~ /up/) then
         @e1.setText(QString::fromUtf8("接続確認"))
         if ( online? ) then
            if ($netop =~ /down/) then
               $netop = "up"
            end
         else
            @e1.setText(QString::fromUtf8("接続待ち"))

            while ( !online? ) do
               @e1.setText(QString::fromUtf8("接続中"))
               begin
                  system("qcop QPE/Network 'connectRequest(QString,QString)'")
               rescue
               end
               sleep 25
            end
            @e1.setText(QString::fromUtf8("接続完了"))
         end
      end


#      begin
#         if ( ($n1m =~ /true/) != nil ) | ( ($netop =~ /up/) )then
#            system("qcop QPE/Network 'connectRequest(QString,QString)'")
#         end
#      rescue
#      end
#
#
#      if ( ($n1m =~ /true/)  != nil ) | ($netop =~ /up/) then
#         begin
#            @e1.setText(QString::fromUtf8("接続確認"))
#             open("http://img.yahoo.co.jp/images/clear.gif") do |f|
#            end
#            if ($netop =~ /down/) then
#               $netop = "up"
#            end
#         rescue
#            @e1.setText(QString::fromUtf8("接続待ち"))
#            sleep 21
#         end
#      end