App-MHFS
view release on metacpan or search on metacpan
lib/MHFS/Plugin/MusicLibrary.pm view on Meta::CPAN
my $unthawed;
{
local $@;
unless (eval {
$unthawed = thaw($out);
return 1;
}) {
warn("thaw threw exception");
}
}
if($unthawed){
foreach my $update (@$unthawed) {
say "Updating " . $update->[0];
$self->{$update->[0]} = $update->[1];
}
}
else {
say "failed to thaw, library not updated.";
}
$onUpdateEnd->();
});
}
sub new {
my ($class, $settings) = @_;
my $self = {'settings' => $settings};
bless $self, $class;
my $pstart = __PACKAGE__.":";
# no sources until loaded
$self->{'sources'} = [];
$self->{'html'} = __PACKAGE__.' not loaded';
$self->{'musicdbhtml'} = __PACKAGE__.' not loaded';
$self->{'musicdbjson'} = '{}';
my $musicpageroute = sub {
my ($request) = @_;
return $self->SendLibrary($request);
};
my $musicdlroute = sub {
my ($request) = @_;
return $self->SendFromLibrary($request);
};
my $musicresourcesroute = sub {
my ($request) = @_;
return $self->SendResources($request);
};
$self->{'routes'} = [
['/music', $musicpageroute],
['/music_dl', $musicdlroute],
['/music_resources', $musicresourcesroute],
['/music_art', sub {
my ($request) = @_;
return $self->SendArt($request);
}]
];
$self->{'timers'} = [
# update the library at start and periodically
[0, 300, sub {
my ($timer, $current_time, $evp) = @_;
say "$pstart library timer";
UpdateLibrariesAsync($self, $evp, sub {
say "$pstart library timer done";
});
return 1;
}],
];
return $self;
}
1;
( run in 2.678 seconds using v1.01-cache-2.11-cpan-59e3e3084b8 )