sub xmpp_active { shift->xmpp_client->xmpp->is_loggedin }
has $_ => (is => 'ro', required => 1)
- for qw(bridge_name server jabber_config);
+ for qw(bridge_name jabber_config irc_config);
+
+has server => (is => 'ro', required => 1, weak_ref => 1);
has userconfig_set => (
is => 'ro', # Moobug init_arg => undef,
my $conf = $self->jabber_config;
$xmpp->login(
jid => $conf->user, host => $conf->server, password => $conf->pass,
+ on_message => $self->_replace_weakself('handle_message'),
);
$xmpp;
}
+sub BUILD { $_[0]->xmpp_client }
+
sub handle_message {
my ($self, $msg) = @_;
$self->start_chain_for($user)->on_finished(
$self->_capture_weakself(sub {
my ($self, $result) = @_;
+ if ($result->{chain}) {
+ $self->chain_set->add($result->{chain});
+ }
$self->send_xmpp_message({
- to => $from, body => 'Connection result: '.$result
+ to => $from, body => 'Connection result: '.$result->{message}
});
})
);
$self->xmpp_client->compose(%$args)->send;
}
+sub start_chain_for {
+ my ($self, $user) = @_;
+ $self->server->start_chain({
+ jabber_tower => $self,
+ jabber_user => $user->name,
+ irc_tower => {
+ server => $self->irc_config->server,
+ irc_nick => $user->irc_nick
+ },
+ irc_channel => $self->irc_config->channel,
+ });
+}
+
1;
# and later