Changeset 17901

Show
Ignore:
Timestamp:
08/19/08 16:44:27 (5 years ago)
Author:
shunirr
Message:

lang/ruby/net-irc/example/gmail.rb: 機能追加

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/ruby/net-irc/trunk/examples/gmail.rb

    r15750 r17901  
    4848 
    4949        def on_privmsg(m) 
     50                super 
     51                case m[1] 
     52                when 'list' 
     53                        check_mail 
     54                end 
    5055        end 
    5156 
     
    8287                                                        db[id] = "1" 
    8388                                                end 
    84                                                 post server_name, NOTICE, main_channel, "Subject: #{item.text('title')} From: #{item.text('author/name')}" 
    85                                                 post server_name, NOTICE, main_channel, "#{item.text('summary')}" 
     89                                                post server_name, PRIVMSG, main_channel, "Subject: #{item.text('title')} From: #{item.text('author/name')}" 
     90                                                post server_name, PRIVMSG, main_channel, "#{item.text('summary')}" 
    8691                                        end 
    8792                                rescue Exception => e 
     
    9297                                sleep 60 * 5 
    9398                        end 
     99                end 
     100        end 
     101 
     102        def check_mail 
     103                begin 
     104                        @agent.auth(@real, @pass) 
     105                        page = @agent.get(URI.parse("https://gmail.google.com/gmail/feed/atom")) 
     106                        feed = REXML::Document.new page.body 
     107                        db = SDBM.open("#{Dir.tmpdir}/#{@real}.db", 0666) 
     108                        feed.get_elements('/feed/entry').reverse.each do |item| 
     109                                id = item.text('id') 
     110                                if db.include?(id) 
     111                                        #next 
     112                                else 
     113                                        db[id] = "1" 
     114                                end 
     115                                post server_name, PRIVMSG, main_channel, "Subject: #{item.text('title')} From: #{item.text('author/name')}" 
     116                                post server_name, PRIVMSG, main_channel, "#{item.text('summary')}" 
     117                        end 
     118                rescue Exception => e 
     119                        @log.error e.inspect 
     120                ensure 
     121                        db.close rescue nil 
    94122                end 
    95123        end