Project

General

Profile

Download (2.37 KB) Statistics
| Branch: | Tag: | Revision:
5e97edd9 Marc Dequènes (Duck)
#!/usr/bin/ruby -Ku

#--
# CyborgHood, a distributed system management software.
# Copyright (c) 2009-2010 Marc Dequènes (Duck) <Duck@DuckCorp.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#++

# to allow in-place run for test
$: << File.join(File.dirname(__FILE__), "..", "lib")

require 'cyborghood/cyborg'


module CyborgHood
module MapMakerHome
include I18nTranslation
bindtextdomain("cyborghood_mapmaker", {:path => Config::L10N_DIR, :charset => "UTF-8"})

class MapMakerClient < Cyborg
e75cca5b Marc Dequènes (Duck)
# load config before modules are included
Config.load

5e97edd9 Marc Dequènes (Duck)
include BotNet

def start_work
contact_peer("MapMaker") do |conv|
35e0fb89 Marc Dequènes (Duck)
if conv
45333094 Marc Dequènes (Duck)
logger.info "Yo ! Conversation ready with MapMaker (#{conv.peer_name}) !"
4afb2001 Marc Dequènes (Duck)
conv.thread("plop") do |conv_thread|
be27f17e Marc Dequènes (Duck)
conv_thread.call("/api_version", 2) do |reply|
case reply[:status]
when :ok
puts "Result:"
pp reply[:result]
when :decline
puts "Declined: #{reply[:reason]}"
when :error
exception = reply[:exception]
puts "EXCEPTION: [#{exception.severity} - #{exception.category}] #{exception.message}"
pp exception.inspect
else
puts "???"
end
4afb2001 Marc Dequènes (Duck)
end
21a7eaf9 Marc Dequènes (Duck)
end
35e0fb89 Marc Dequènes (Duck)
else
logger.error "Could not connect to MapMaker"
45333094 Marc Dequènes (Duck)
stop
35e0fb89 Marc Dequènes (Duck)
end
ef7c04ac Marc Dequènes (Duck)
# in contact loop, in order to wait for conversation registration to happen
# or the bot would stop before contact is done
try_stop
5e97edd9 Marc Dequènes (Duck)
end
end
end
end
end

bot = CyborgHood::MapMakerHome::MapMakerClient.new

trap('INT') do
bot.ask_to_stop
end
trap('TERM') do
bot.ask_to_stop
end

bot.run