5 use Transmission::Client;
7 use Data::Dump qw(dump);
11 my ( undef, undef, $uid, $gid, undef, undef, $email, $dir, $shell ) = getpwnam $login;
16 my $worker = Gearman::Worker->new;
17 $worker->job_servers('127.0.0.1:4730');
19 my $tc = Transmission::Client->new( autodie => 1 );
21 my $j = JSON::XS->new;
23 $j->convert_blessed(0);
25 my $name = $ENV{ZSLICE} || die "need ZSLICE";
28 $worker->register_function( $name . '_torrent_list' => sub {
30 my @cols = split(/\s+/,$job->arg);
31 @cols = qw( id name seeders leechers ) unless @cols;
33 for my $torrent ($tc->read_torrents) {
34 warn "## torrent = ",dump($torrent);
36 $hash->{$_} = $torrent->$_ foreach @cols;
39 warn "# torrent_list = ",dump( \@list );
40 return $j->encode( \@list );
43 warn "$0 $name pid $$ waitng for jobs\n";
44 $worker->work while 1;