#!/usr/bin/perl -w ## http://www.ruinsofmorning.net/greasemonkey/ ## use strict; ## Define Membership Lists ## my %bglists = ( 0 => {'name' => 'RIAA Member', 'file' => 'RIAAMembers.txt'}, 1 => {'name' => 'MPAA Member', 'file' => 'MPAAMembers.txt'}, 2 => {'name' => 'BPI Member', 'file' => 'BPIMembers.txt'}, 3 => {'name' => 'FACT Member', 'file' => 'FACTMembers.txt'} ); foreach my $bgi (keys%bglists) { ## Get Raw Membership List ## local *LIST; open(LIST, ${$bglists{$bgi}}{'file'}); my @rawlist = ; close(LIST); ## Build List ## my %newlist = (); foreach my $li (@rawlist) { $li =~ s/(^(?:\s+|\n\*+)|(\s+|\n|\*+)$)//g; ## Remove waste chars ## $li =~ s/\s\s+/\s/g; ## Collapse multi-spaces ## ## Anything left? ## next if $li eq ''; ## Title Case ## $li =~ s/(\w+)/\u\L$1/g; $li =~ s/(\sand|of\s)/\L$1/ig; $li =~ s/'(s|t|ll|nt|re)/'\L$1/ig; $newlist{$li} = 1; } ## Organise and Output JavaScript Array ## my @newlist = sort {uc($a) cmp uc($b)} keys%newlist; my $out = join('|',@newlist); $out =~ s/(.{100})/$1"\+\n"/g; $out = ' badguys["' . ${$bglists{$bgi}}{'name'} . '"] = String(' . "''+\n" . '"' . $out . '").split("|");' . "\n\n"; print $out; }