Revision e321ca6f
Added by Marc Dequènes about 14 years ago
- ID e321ca6f2a16f3d882f0c1008a71b3f55cf9e102
bin/mapmaker_client | ||
---|---|---|
include BotNet
|
||
|
||
def start_work
|
||
contact_peer("MapMaker") do |conv|
|
||
if conv
|
||
logger.info "Yo ! Conversation ready with MapMaker (#{conv.peer_name}) !"
|
||
conv.thread("plop") do |conv_thread|
|
||
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
|
||
# to test the closure through the inner instance_eval calls
|
||
toto = true
|
||
|
||
conversation_with "MapMaker" do
|
||
on_error do
|
||
puts "Halalalala !"
|
||
end
|
||
thread "super taiste" do
|
||
call :ver, "/api_version"
|
||
call :zones, "/DNS/Zones" if toto
|
||
on_error do
|
||
puts "Sniff !"
|
||
pp reply
|
||
end
|
||
on_success do
|
||
puts "Yahou !"
|
||
pp reply
|
||
call :gogogo, "/DNS"
|
||
on_error do
|
||
pp "Plouf"
|
||
pp reply
|
||
end
|
||
on_success do
|
||
pp "Hop!"
|
||
pp reply
|
||
end
|
||
end
|
||
else
|
||
logger.error "Could not connect to MapMaker"
|
||
stop
|
||
end
|
||
# in contact loop, in order to wait for conversation registration to happen
|
||
# or the bot would stop before contact is done
|
||
try_stop
|
||
#stop_bot :at_once
|
||
stop_bot :when_finished
|
||
end
|
||
end
|
||
end
|
Also available in: Unified diff
[evol] created a DSL for client-side calls (several conditions (calls only at the moment) can be joined together in order to exploit parallel tasks via asynchronous calls)