Есть простейший бот, собственно код:
#!/usr/bin/env ruby
require 'rubygems'
require 'xmpp4r-simple'
require 'session'
# Запускаем сеанс sh, в котором будет происходить выполнение команд
bot.deliver(msg.from, "\n" + stdout.chomp) unless stdout.empty?
@sh = Session::new
# Коннектимся к Jabber-серверу
bot = Jabber::Simple.new('bot-acc@gmail.com', "passw0rd")
while true
# Ожидаем сообщение
bot.received_messages do |msg|
# Проверяем, что сообщение пришло от юзер@gmail.com
if msg && msg.from.to_s.include?('deliver@gmail.com')
# Выполняем команды в сеансе sh
stdout, stderr = @sh.execute(msg.body) if msg.body
# Отправляем в ответном сообщении вывод команды
bot.deliver(msg.from, "\n" + stdout.chomp) unless stdout.empty?
# Отправляем поток ошибок
bot.deliver(msg.from, "\n" + stderr.chomp) unless stderr.empty?
end
end
$ ./gmail-bot:23: syntax error, unexpected $end, expecting keyword_end
^C
[1]+ Exit 1 ./gmail-bot