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. | 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") | ||
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(/></,"\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 |