App-DrivePlayer
view release on metacpan or search on metacpan
lib/App/DrivePlayer/DB.pm view on Meta::CPAN
my ($self, $id, %fields) = @_;
my $row = $self->_rs('Track')->find($id) or return;
my %allowed = map { $_ => 1 }
qw( title artist album track_number year duration_ms genre comment );
my %update = map { $_ => $fields{$_} }
grep { $allowed{$_} } keys %fields;
$row->update(\%update) if %update;
}
# Count tracks whose $field exactly equals $value, optionally excluding one
# track id. Used to decide whether an edit should offer to propagate a
# rename to siblings (e.g. cleaning up mojibake artist/album/genre values
# without having to revisit every track).
sub count_tracks_with_field {
my ($self, $field, $value, $exclude_id) = @_;
return 0 unless defined $value && length $value;
my %where = ($field => $value);
$where{id} = { '!=' => $exclude_id } if defined $exclude_id;
return $self->_rs('Track')->search(\%where)->count;
}
( run in 0.989 second using v1.01-cache-2.11-cpan-c966e8aa7e8 )