Skip to content

Instantly share code, notes, and snippets.

A MusicBrainz release represents the unique release (i.e. issuing) of a product on a
specific date with specific release information such as the country, label, barcode,
packaging etc. If you walk into a store and purchase an album or single, they're each
represented in MusicBrainz as one release.
Each release belongs to a release group and contains at least one medium (commonly
referred to as a disc when talking about a CD release). Each medium holds a tracklist.
@navap
navap / gist:350070
Created March 31, 2010 08:01
ln() plural stuff
[% l('Expires in {hours}, {minutes}',
{ hours => ln('{num} hour', '{num} hours', num,
{ num => 1 }),
minutes => ln('{num} minute', '{num} minutes', num,
{ num => Countdown.minutes(datetime) }) }) %]
@navap
navap / gist:348548
Created March 29, 2010 23:29
sub countdown
sub countdown
{
my ($self, $future) = @_;
my $now = DateTime->now;
return unless $future > $now;
my $diff = $future->subtract_datetime($now);
my $delta = $now->delta_days($future)->delta_days;
@navap
navap / Browse.pm
Created March 24, 2010 07:34
Browse.pm
sub browse : Path('')
{
my ($self, $c) = @_;
$c->stash( template => 'browse/index.tt' );
}
git clone git://git.musicbrainz.org/musicbrainz-server/core.git mb_server
cd mb_server
cp lib/DBDefs.pm.default lib/DBDefs.pm
=> Modify sub MB_SERVER_ROOT
sudo apt-get install build-essentials
sudo apt-get install postgresql-8.4
sudo apt-get install postgresql-server-dev-8.4
sudo apt-get install postgresql-contrib
perl ./Makefile.PM
sudo make installdeps
(master) navap@hobbit:~/Documents/mb_server$ ./script/musicbrainz_server.pl -r
Couldn't require XML::Feed::Format::Atom : Can't locate XML/Atom/Feed.pm in @INC (@INC contains: /home/navap/Documents/mb_server/script/../lib /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /usr/local/share/perl/5.10.0/XML/Feed/Format/Atom.pm line 7.
BEGIN failed--compilation aborted at /usr/local/share/perl/5.10.0/XML/Feed/Format/Atom.pm line 7.
Compilation failed in require at (eval 1577) line 3.
at /usr/local/lib/perl/5.10.0/Module/Pluggable.pm line 28
Couldn't load class (MusicBrainz::Server) because: Couldn't load class (MusicBrainz::Server::Edit::WithDifferences) because: Can't locate Data/Compare.pm in @INC (@INC contains: /home/navap/Documents/mb_server/script/../lib /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10
- TryCatch ...loaded. (1.002000)
- XML::Feed ...Couldn't require XML::Feed::Format::Atom : Can't locate XML/Atom/Feed.pm in @INC (@INC contains: /home/navap/Documents/mb_server/inc /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl /home/navap/Documents/mb_server) at /usr/local/share/perl/5.10.0/XML/Feed/Format/Atom.pm line 7.
BEGIN failed--compilation aborted at /usr/local/share/perl/5.10.0/XML/Feed/Format/Atom.pm line 7.
Compilation failed in require at (eval 1547) line 3.
at /usr/local/lib/perl/5.10.0/Module/Pluggable.pm line 28
loaded. (0.43 >= 0.410)
- XML::Simple ...loaded. (2.18 >= 2.14)
<snip>
@navap
navap / InitDB.pl failed
Created March 17, 2010 05:30
InitDB.pl failed
Wed Mar 17 01:10:04 2010 : import finished
Loaded 81 tables (56257076 rows) in 1093 seconds
Failed to import dataset.
Wed Mar 17 01:10:06 2010 : InitDb.pl failed
sub open : Local RequireAuth
{
die("in a fire");
my ($self, $c) = @_;
my $edits = $self->_load_paged($c, sub {
$c->model('Edit')->find({ status => $STATUS_OPEN }, shift, shift);
});
$c->model('Edit')->load_all(@$edits);
@navap
navap / gist:325042
Created March 8, 2010 09:57
past/present tense
<p>
[% IF edit.is_open %]
[%- l('This edit is set to a {quality}. It requires {votes}.',
{ quality => quality_name(edit.quality),
votes => ln('1 vote to accept/reject', '{n} unanimous votes to accept/reject',
edit.conditions.votes, { n => edit.conditions.votes })
}) -%]
[% ELSE %]
[% l('This edit was set to a {quality}. It required {votes}.',
{ quality => quality_name(edit.quality),