package sessions::downloader;

use strict;
use warnings;

use JSON;
use POE;

use lib "$FindBin::Bin/lib/";
use utils::Logging;
use sessions::downloader::ddl;

my $log = Logging->new('STDOUT', 1);

local $/;
open CONF, '<', 'playbot.conf';
my $json = <CONF>;
my $conf = decode_json($json);

if ($conf->{download})
{
    POE::Session->create(
        inline_states   => {
            _start          => \&on_start,
            ddl             => \&sessions::downloader::ddl::exec,
            filename        => \&sessions::downloader::ddl::filename,
            signal_filename => \&sessions::downloader::ddl::signal_filename,
            signal_ddl      => \&sessions::downloader::ddl::signal_ddl,
            signal_move     => \&sessions::downloader::ddl::signal_move,
            signal_rm       => \&sessions::downloader::ddl::signal_rm,
            end_task        => \&sessions::downloader::ddl::end_task,
        },
    );
}


sub on_start {
    my ($kernel, $heap) = @_[KERNEL, HEAP];
    $kernel->alias_set('downloader');
    $heap->{ddl}->{tasks} = [];

    $log->info("session started");
}

1;