]> git.donarmstrong.com Git - bin.git/blob - mpd_remove_duplicates
add mutt alias which executes neomutt if that exists
[bin.git] / mpd_remove_duplicates
1 #!/usr/bin/perl
2
3 use warnings;
4 use strict;
5
6
7 use Audio::MPD;
8
9 my $mpd = Audio::MPD->new;
10
11 my $pl = $mpd->playlist;
12
13 my @items = $pl->as_items;
14
15 my %items_to_delete;
16 my %files;
17 for my $item (@items) {
18     my ($name,$type) = $item->file =~ m/(.+)\.([^\.]+)/;
19     if (exists $files{$name}{$type}) {
20         $items_to_delete{$item->id} = 1;
21         next;
22     }
23     $files{$name}{$type} = $item->id;
24     if (exists $files{$name}{flac}) {
25         $items_to_delete{$_} = 1 foreach values %{$files{$name}};
26         delete $items_to_delete{$files{$name}{flac}}
27     } elsif (exists $files{$name}{ogg}) {
28         $items_to_delete{$_} = 1 foreach values %{$files{$name}};
29         delete $items_to_delete{$files{$name}{ogg}}
30     }
31 }
32
33 $pl->deleteid(keys %items_to_delete);