Zum Inhalt springen

Metafridge Jabber Support: Unterschied zwischen den Versionen

Consti (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Consti (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 14: Zeile 14:
!sense
!sense
!about
!about
!door
!door+time




Zeile 29: Zeile 31:
== Diff: ==
== Diff: ==


:Version 0.6: Added !door (Last 10 Metadoor Videos) and !door+time
:Version 0.5: Added !about (About the Bot) and !events (For the Metalab Event list)
:Version 0.5: Added !about (About the Bot) and !events (For the Metalab Event list)
:Version 0.4: /command wurde zu !command; Added !help und !sense
:Version 0.4: /command wurde zu !command; Added !help und !sense
Zeile 38: Zeile 41:


   #!/usr/bin/env ruby
   #!/usr/bin/env ruby
   version =  "Metafridge Jabber Bot - Version 0.5"
   version =  "Metafridge Jabber Bot - Version 0.6"
   # Consti AT Consti PUNKT de
   # Consti AT Consti PUNKT de
   require 'xmpp4r'
   require 'xmpp4r'
Zeile 67: Zeile 70:
           response  = "!last => Last 10 metafridge messages\n"
           response  = "!last => Last 10 metafridge messages\n"
           response += "!last+time => Last 10 metafridge messages + timestamp\n"
           response += "!last+time => Last 10 metafridge messages + timestamp\n"
          response += "!door => Last 10 metadoor videos\n" 
          response += "!door+time => Last 10 metadoor videos + timestamp\n" 
           response += "!sense => Metasense Status\n"
           response += "!sense => Metasense Status\n"
           response += "!events => List the next Metalab Events\n"
           response += "!events => List the next Metalab Events\n"
Zeile 83: Zeile 88:
         when '!events', '!event'
         when '!events', '!event'
           begin
           begin
             http_request = nil
             http_request = nil  
             Net::HTTP.start('metalab.at', 80) {|http|
             Net::HTTP.start('metalab.at', 80) {|http|
               http_request = http.get('/feeds/events/')     
               http_request = http.get('/feeds/events/')     
Zeile 89: Zeile 94:
             events = http_request.body.to_s
             events = http_request.body.to_s
             events = events.gsub(/<\/title>/,"\n")
             events = events.gsub(/<\/title>/,"\n")
            puts events
             titles = events.scan(/<title>(.*)$/)  
             titles = events.scan(/<title>(.*)$/)  
             response = "The next #{titles.length-1} Events in the Metalab:\n---------------------\n"
             response = "The next #{titles.length-1} Events in the Metalab:\n---------------------\n"
Zeile 121: Zeile 125:
             jabrespond(client, msg, 'Error: sorry. metalab.at seems to be down. try again later.', 'Error')  
             jabrespond(client, msg, 'Error: sorry. metalab.at seems to be down. try again later.', 'Error')  
             puts "timeout metasense/status_lock.txt"
             puts "timeout metasense/status_lock.txt"
          end
        # !door and !door+time, last 10 videos on the door     
        when '!door', '!door+time'
          begin
            http_request = nil
            Net::HTTP.start('metadoor.soup.io', 80) {|http|
              http_request = http.get('/rss/')   
            }
            rss = http_request.body.to_s
            rss_youtube = rss.gsub(/&gt;&lt;/,"\n")
            youtube = rss_youtube.scan(/value="(http:\/\/www.youtube.com\/v\/.*)"$/) 
            rss_title = rss.gsub(/<\/title>/,"\n")
            title = rss_title.scan(/<title>(.*)$/)
            rss_pubdate = rss.gsub(/<\/pubDate>/,"\n")
            pubdate = rss_pubdate.scan(/<pubDate>(.*)$/)
            response = "The last 10 Metadoor Videos:\n---------------------\n"
            for i in 0...10
              j = i+1
              response += "#{j}: '#{title[j]}'\n'#{youtube[i]}'\n"
              if (msg.body == '!door+time')
                response += "(#{pubdate[i]})\n"
                response += "---------------------\n"
              end
            end
            jabrespond(client, msg, response, 'last 10 metadoor videos')
          rescue
            jabrespond(client, msg, 'Error: sorry. metadoor.soup.io seems to be down. try again later.', 'Error')
            puts "timeout"
           end
           end
         # !last and !last+time, last 10 messages on the fridge       
         # !last and !last+time, last 10 messages on the fridge