[mp3-info-discuss] pig latin artists
Brought to you by:
pudge
From: Chris N. <pu...@po...> - 2001-03-13 18:12:23
|
So I saw that Napster was filtering names, and someone was changing names to pig-latin variants (like etallicaMay). So here is my contribution to the effort. #!/usr/bin/perl -swl # pu...@po... 2001.03.13 # convert artist names to pig latin: run only once, else you get # double-pig-latin or something # use -remove tag to remove ID3v2 tags (we don't edit those, and they # will continue to have the old name in them) # this script can be considered VERY DANGEROUS; it will # change your MP3 data, and if you use -remove, delete large chunks # of it # this script won't change the filenames; gotta do that yourself use File::Find; use MP3::Info; use strict; use vars '$remove'; find(sub { return unless -f $_; get_mp3info($_) or return; my $tag = get_mp3tag($_); print $tag->{ARTIST}; print my $artist = igpay($tag->{ARTIST}); if ($artist ne "") { $tag->{ARTIST} = $artist; set_mp3tag($_, $tag); } remove_mp3tag($_, 2) if $remove; }, @ARGV); # from http://language.perl.com/ppt/src/pig/pig.feinberg # Dr. Bronner's top secret pig-latin algorithm! # ALL-ONE! ALL-ONE! ALL-ONE! sub igpay { local $_ = shift; my $ordway; my $initcaps = /^[A-Z]/; my $allcaps = /^[A-Z]+$/; if (/^[aeiou]/i) { $ordway = $_ . ($allcaps ? 'WAY' : 'way'); } else { /([^aieou]+)(.*)/i; $ordway = ($2 || '') . lcfirst $1 . 'ay'; $ordway = ucfirst $ordway if $initcaps; $ordway = uc $ordway if $allcaps; } return $ordway; } __END__ #!/usr/bin/perl -w # pu...@po... 2001.03.13 # dump out info about MP3 files, run with `mp3data.plx . | less` # or something, or redirect output to a file use Data::Dumper; use File::Find; use MP3::Info; find(sub { return unless -f $_; my $i = get_mp3info($_) or return; my $t = get_mp3tag($_); print "$File::Find::name\n", Dumper($i); print Dumper($t) if keys %$t; }, @ARGV); -- Chris Nandor pu...@po... http://pudge.net/ Open Source Development Network pu...@os... http://osdn.com/ |