#!/usr/bin/env perl
package TickBot;
use v5.10;
use Bot::Backbone;

use POE;

my $debug = 1;

if ($debug == 1) {
    service tick_chat => (
        service      => 'ConsoleChat',
        bot_username => 'tick',
        bot_nickname => 'tock',
    );
}
else {
    service chat_bot => (
        service  => 'JabberChat',
        username => 'tick',
        domain   => 'example.com',
        resource => 'ticktock',
        password => 'secret',
        host     => 'secret',
    );

    service tick_chat => (
        service     => 'GroupChat',
        chat        => 'chat_bot',
        group       => 'foo',
    );

}

my $bot = TickBot->new;

POE::Session->create(
    inline_states => {
        _start => sub {
            $_[KERNEL]->delay(tick => 1);
        },
        tick => sub {
            if ($bot->has_service('tick_chat')) {
                $bot->get_service('tick_chat')->send_message({ text => 'tick' });
                $_[KERNEL]->delay(tock => 1);
            }
        },
        tock => sub {
            if ($bot->has_service('tick_chat')) {
                $bot->get_service('tick_chat')->send_message({ text => 'tock' });
                $_[KERNEL]->delay(tick => 1);
            }
        },
    },
);

$bot->run;
