Revision 7466fc08
Added by Marc Dequènes over 13 years ago
- ID 7466fc083799a22deae3d56779823c810028f280
lib/cyborghood/cyborg/botnet.rb | ||
---|---|---|
require 'set'
|
||
|
||
module CyborgHood
|
||
# default interface if not overridden
|
||
# a mere "BotClient" would then always have a default basic interface
|
||
class EmptyInterface
|
||
include CyborgServerInterface
|
||
include CyborgServerRootInterfaceAddon
|
||
end
|
||
|
||
module BotNet
|
||
attr_reader :interface
|
||
|
||
... | ... | |
@comm_list = {}
|
||
@comm_list_attempt = {}
|
||
|
||
self.interface.bot = self
|
||
# default empty interface
|
||
define_interface("0") {}
|
||
end
|
||
|
||
def define_interface(version, &block)
|
||
@interface = DSL::ServerApiNode.new(self, &block)
|
||
@interface.add_behavior do
|
||
node "_cyborg_" do
|
||
on_request do |request|
|
||
request.reply.results = {
|
||
:name => bot.name,
|
||
:product_name => PRODUCT,
|
||
:product_version => VERSION,
|
||
:api_version => version
|
||
}
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
def contact_peer(peer, block)
|
||
... | ... | |
super
|
||
end
|
||
|
||
def interface
|
||
EmptyInterface.instance
|
||
end
|
||
|
||
protected
|
||
|
||
def process_system_notification(msg)
|
Also available in: Unified diff
[evol] server API tree reworked using a DSL (reply handling rework is WIP)